summaryrefslogtreecommitdiff
path: root/source3/smbd
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2003-09-05 19:59:55 +0000
committerJeremy Allison <jra@samba.org>2003-09-05 19:59:55 +0000
commit94f59f54921174fc156fade575ca114d331b1bd8 (patch)
tree06c2548e853c68c2bb24cce2ce3ba75eb3c8497e /source3/smbd
parent7544b0c77382e300da0e2daf2b325527a23e6ddc (diff)
downloadsamba-94f59f54921174fc156fade575ca114d331b1bd8.tar.gz
samba-94f59f54921174fc156fade575ca114d331b1bd8.tar.bz2
samba-94f59f54921174fc156fade575ca114d331b1bd8.zip
More tuning from cachegrind. Change most trim_string() calls to trim_char(0,
as that's what they do. Fix string_replace() to fast-path ascii. Jeremy. (This used to be commit f35e9a8b909d3c74be47083ccc4a4e91a14938db)
Diffstat (limited to 'source3/smbd')
-rw-r--r--source3/smbd/chgpasswd.c2
-rw-r--r--source3/smbd/filename.c4
-rw-r--r--source3/smbd/statcache.c7
-rw-r--r--source3/smbd/utmp.c4
-rw-r--r--source3/smbd/vfs.c4
5 files changed, 11 insertions, 10 deletions
diff --git a/source3/smbd/chgpasswd.c b/source3/smbd/chgpasswd.c
index 0009f09028..d99570ff7c 100644
--- a/source3/smbd/chgpasswd.c
+++ b/source3/smbd/chgpasswd.c
@@ -259,7 +259,7 @@ static int expect(int master, char *issue, char *expected)
/* Eat leading/trailing whitespace before match. */
pstring str;
pstrcpy( str, buffer);
- trim_string( str, " ", " ");
+ trim_char( str, ' ', ' ');
if ((match = (unix_wild_match(expected, str) == 0)))
timeout = 200;
diff --git a/source3/smbd/filename.c b/source3/smbd/filename.c
index ad107f9c3e..643e315c06 100644
--- a/source3/smbd/filename.c
+++ b/source3/smbd/filename.c
@@ -125,7 +125,7 @@ BOOL unix_convert(pstring name,connection_struct *conn,char *saved_last_componen
* also trim trailing /'s.
*/
- trim_string(name,"/","/");
+ trim_char(name,'/','/');
/*
* If we trimmed down to a single '\0' character
@@ -164,7 +164,7 @@ BOOL unix_convert(pstring name,connection_struct *conn,char *saved_last_componen
return(True);
start = name;
- while (strncmp(start,"./",2) == 0)
+ while (start[0] == '.' && start[1] == '/')
start += 2;
pstrcpy(orig_path, name);
diff --git a/source3/smbd/statcache.c b/source3/smbd/statcache.c
index fbebdb240f..28915a30a0 100644
--- a/source3/smbd/statcache.c
+++ b/source3/smbd/statcache.c
@@ -66,11 +66,12 @@ void stat_cache_add( const char *full_orig_name, const char *orig_translated_pat
return;
/*
- * Don't cache trivial valid directory entries.
+ * Don't cache trivial valid directory entries such as . and ..
*/
- if((*full_orig_name == '\0') || (strcmp(full_orig_name, ".") == 0) ||
- (strcmp(full_orig_name, "..") == 0))
+ if((*full_orig_name == '\0') || (full_orig_name[0] == '.' &&
+ ((full_orig_name[1] == '\0') ||
+ (full_orig_name[1] == '.' && full_orig_name[1] == '\0'))))
return;
/*
diff --git a/source3/smbd/utmp.c b/source3/smbd/utmp.c
index d57e475ce2..a521d0113d 100644
--- a/source3/smbd/utmp.c
+++ b/source3/smbd/utmp.c
@@ -217,13 +217,13 @@ static void uw_pathname(pstring fname, const char *uw_name, const char *uw_defau
/* For w-files, first look for explicit "wtmp dir" */
if (uw_name[0] == 'w') {
pstrcpy(dirname,lp_wtmpdir());
- trim_string(dirname,"","/");
+ trim_char(dirname,'\0','/');
}
/* For u-files and non-explicit w-dir, look for "utmp dir" */
if (dirname == 0 || strlen(dirname) == 0) {
pstrcpy(dirname,lp_utmpdir());
- trim_string(dirname,"","/");
+ trim_char(dirname,'\0','/');
}
/* If explicit directory above, use it */
diff --git a/source3/smbd/vfs.c b/source3/smbd/vfs.c
index 58a8a38792..753db4cece 100644
--- a/source3/smbd/vfs.c
+++ b/source3/smbd/vfs.c
@@ -233,10 +233,10 @@ BOOL vfs_init_custom(connection_struct *conn, const char *vfs_object)
if (p) {
*p = 0;
module_param = p+1;
- trim_string(module_param, " ", " ");
+ trim_char(module_param, ' ', ' ');
}
- trim_string(module_name, " ", " ");
+ trim_char(module_name, ' ', ' ');
/* First, try to load the module with the new module system */
if((entry = vfs_find_backend_entry(module_name)) ||