[SCM] Samba Shared Repository - branch master updated

Volker Lendecke vlendec at samba.org
Sat Nov 21 12:50:02 MST 2009


The branch, master has been updated
       via  c85a4c9... s3: Move the global variable Protocol to struct smbd_server_connection
       via  6a14902... s3: Make the implicit reference to get_Protocol in lp_use_sendfile() explicit
       via  f7b4151... s3: Make the implicit reference to Protocol in is_in_path() explicit
       via  1e22899... s3: Make the implicit reference to Protocol in mask_match_list() explicit
       via  e23d8a3... s3: Make the implicit reference to Protocol in mask_match() explicit
       via  b2db4c5... mount.cifs: Fix a const error
       via  b79bcd9... s3: Fix some nonempty blank lines
       via  97525d0... s3: Avoid two calls to strcmp()
       via  e6f9596... s3: Fix a bool/enum mismatch
      from  ae1e949... s4:lsa RPC - Fix type of variable "atype"

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit c85a4c9ba4a7de65a7850f6f9708df66bd24deea
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Nov 21 19:57:41 2009 +0100

    s3: Move the global variable Protocol to struct smbd_server_connection

commit 6a149022976fe6a5579ec9afc7a4d2dcb44dc8af
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Nov 21 19:37:27 2009 +0100

    s3: Make the implicit reference to get_Protocol in lp_use_sendfile() explicit

commit f7b4151a64d8c6851e62255a7139fd00a5fc63a3
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Nov 21 19:26:25 2009 +0100

    s3: Make the implicit reference to Protocol in is_in_path() explicit

commit 1e22899d268ae5a089f941a204413c07ee64fc78
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Nov 21 19:04:34 2009 +0100

    s3: Make the implicit reference to Protocol in mask_match_list() explicit

commit e23d8a3d1f558a7e98ef2afd71e1d15c5b3a71bc
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Nov 21 19:04:34 2009 +0100

    s3: Make the implicit reference to Protocol in mask_match() explicit

commit b2db4c51625077569ccc0fdf39471a67c3646066
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Nov 21 19:03:45 2009 +0100

    mount.cifs: Fix a const error

commit b79bcd972cd028a494603f7254d3a266904be2d1
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Nov 21 16:17:16 2009 +0100

    s3: Fix some nonempty blank lines

commit 97525d0a0e7e101cad5cbc218aed7fed982f30cc
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Nov 21 16:15:16 2009 +0100

    s3: Avoid two calls to strcmp()

commit e6f95967cc0a4877d62b7656882bbed920b02b2e
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Nov 21 16:10:52 2009 +0100

    s3: Fix a bool/enum mismatch

-----------------------------------------------------------------------

Summary of changes:
 client/mount.cifs.c           |    4 +-
 source3/client/client.c       |    3 +-
 source3/client/clitar.c       |    9 ++++-
 source3/include/proto.h       |   16 ++++++---
 source3/include/smb.h         |    1 +
 source3/include/smb_macros.h  |    3 --
 source3/lib/ms_fnmatch.c      |    2 +-
 source3/lib/substitute.c      |   53 +++++++++++++++---------------
 source3/lib/util.c            |   69 +++++++++++++++++---------------------
 source3/modules/onefs_open.c  |    3 +-
 source3/modules/vfs_preopen.c |    3 +-
 source3/param/loadparm.c      |   72 ++++++++++++++++++++--------------------
 source3/smbd/dir.c            |    4 ++-
 source3/smbd/dosmode.c        |   12 ++++--
 source3/smbd/filename.c       |    3 +-
 source3/smbd/globals.c        |   10 ++++++
 source3/smbd/globals.h        |    1 +
 source3/smbd/negprot.c        |   13 ++++---
 source3/smbd/nttrans.c        |    2 +-
 source3/smbd/open.c           |    5 ++-
 source3/smbd/process.c        |    1 +
 source3/smbd/reply.c          |   28 +++++++++++-----
 source3/smbd/sesssetup.c      |    4 +-
 source3/smbd/smb2_negprot.c   |    2 +-
 source3/smbd/trans2.c         |   11 ++++--
 25 files changed, 185 insertions(+), 149 deletions(-)


Changeset truncated at 500 lines:

diff --git a/client/mount.cifs.c b/client/mount.cifs.c
index a9c1827..459a9f3 100644
--- a/client/mount.cifs.c
+++ b/client/mount.cifs.c
@@ -121,7 +121,7 @@ static char * user_name = NULL;
 static char * mountpassword = NULL;
 char * domain_name = NULL;
 char * prefixpath = NULL;
-char *cifs_fstype = "cifs";
+const char *cifs_fstype = "cifs";
 
 /* glibc doesn't have strlcpy, strlcat. Ensure we do. JRA. We
  * don't link to libreplace so need them here. */
@@ -1637,7 +1637,7 @@ mount_retry:
 	}
 	mountent.mnt_fsname = dev_name;
 	mountent.mnt_dir = mountpoint;
-	mountent.mnt_type = cifs_fstype;
+	mountent.mnt_type = (char *)(void *)cifs_fstype;
 	mountent.mnt_opts = (char *)malloc(220);
 	if(mountent.mnt_opts) {
 		char * mount_user = getusername();
diff --git a/source3/client/client.c b/source3/client/client.c
index 6773e6d..19efa03 100644
--- a/source3/client/client.c
+++ b/source3/client/client.c
@@ -472,7 +472,8 @@ static bool do_this_one(file_info *finfo)
 	}
 
 	if (*client_get_fileselection() &&
-	    !mask_match(finfo->name,client_get_fileselection(),false)) {
+	    !mask_match(finfo->name, client_get_fileselection(),
+			PROTOCOL_NONE, false)) {
 		DEBUG(3,("mask_match %s failed\n", finfo->name));
 		return false;
 	}
diff --git a/source3/client/clitar.c b/source3/client/clitar.c
index d973329..7a956f9 100644
--- a/source3/client/clitar.c
+++ b/source3/client/clitar.c
@@ -827,7 +827,9 @@ static void do_tar(file_info *finfo, const char *dir)
 		DEBUG(5, ("...tar_re_search: %d\n", tar_re_search));
 
 		if ((!tar_re_search && clipfind(cliplist, clipn, exclaim)) ||
-				(tar_re_search && mask_match_list(exclaim, cliplist, clipn, True))) {
+		    (tar_re_search
+		     && mask_match_list(exclaim, cliplist, clipn,
+					PROTOCOL_NONE, True))) {
 			DEBUG(3,("Skipping file %s\n", exclaim));
 			TALLOC_FREE(exclaim);
 			return;
@@ -1210,7 +1212,10 @@ static void do_tarput(void)
 		/* Well, now we have a header, process the file ...            */
 		/* Should we skip the file? We have the long name as well here */
 		skip = clipn && ((!tar_re_search && clipfind(cliplist, clipn, finfo.name) ^ tar_excl) ||
-					(tar_re_search && mask_match_list(finfo.name, cliplist, clipn, True)));
+				 (tar_re_search
+				  && mask_match_list(finfo.name, cliplist,
+						     clipn, PROTOCOL_NONE,
+						     True)));
 
 		DEBUG(5, ("Skip = %i, cliplist=%s, file=%s\n", skip, (cliplist?cliplist[0]:NULL), finfo.name));
 		if (skip) {
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 92cb997..8cf4769 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -1075,8 +1075,8 @@ struct passwd *Get_Pwnam_alloc(TALLOC_CTX *mem_ctx, const char *user);
 
 /* The following definitions come from lib/util.c  */
 
-enum protocol_types get_Protocol(void);
-void set_Protocol(enum protocol_types  p);
+enum protocol_types get_Protocol(const struct smbd_server_connection *c);
+void set_Protocol(struct smbd_server_connection *c, enum protocol_types p);
 bool all_zero(const uint8_t *ptr, size_t size);
 bool set_global_myname(const char *myname);
 const char *global_myname(void);
@@ -1158,7 +1158,8 @@ gid_t nametogid(const char *name);
 void smb_panic(const char *const why);
 void log_stack_trace(void);
 const char *readdirname(SMB_STRUCT_DIR *p);
-bool is_in_path(const char *name, name_compare_entry *namelist, bool case_sensitive);
+bool is_in_path(const char *name, name_compare_entry *namelist,
+		enum protocol_types proto, bool case_sensitive);
 void set_namearray(name_compare_entry **ppname_array, const char *namelist);
 void free_namearray(name_compare_entry *name_array);
 bool fcntl_lock(int fd, int op, SMB_OFF_T offset, SMB_OFF_T count, int type);
@@ -1188,9 +1189,11 @@ bool parent_dirname(TALLOC_CTX *mem_ctx, const char *dir, char **parent,
 		    const char **name);
 bool ms_has_wild(const char *s);
 bool ms_has_wild_w(const smb_ucs2_t *s);
-bool mask_match(const char *string, const char *pattern, bool is_case_sensitive);
+bool mask_match(const char *string, const char *pattern,
+		enum protocol_types proto, bool is_case_sensitive);
 bool mask_match_search(const char *string, const char *pattern, bool is_case_sensitive);
-bool mask_match_list(const char *string, char **list, int listLen, bool is_case_sensitive);
+bool mask_match_list(const char *string, char **list, int listLen,
+		     enum protocol_types proto, bool is_case_sensitive);
 bool unix_wild_match(const char *pattern, const char *string);
 bool name_to_fqdn(fstring fqdn, const char *name);
 void *talloc_append_blob(TALLOC_CTX *mem_ctx, void *buf, DATA_BLOB blob);
@@ -4386,7 +4389,8 @@ const char *lp_printcapname(void);
 bool lp_disable_spoolss( void );
 void lp_set_spoolss_state( uint32 state );
 uint32 lp_get_spoolss_state( void );
-bool lp_use_sendfile(int snum, struct smb_signing_state *signing_state);
+bool lp_use_sendfile(int snum, enum protocol_types proto,
+		     struct smb_signing_state *signing_state);
 void set_use_sendfile(int snum, bool val);
 void set_store_dos_attributes(int snum, bool val);
 void lp_set_mangling_method(const char *new_method);
diff --git a/source3/include/smb.h b/source3/include/smb.h
index a3acb7c..94d2aa2 100644
--- a/source3/include/smb.h
+++ b/source3/include/smb.h
@@ -652,6 +652,7 @@ struct smb_request {
 	size_t unread_bytes;
 	bool encrypted;
 	connection_struct *conn;
+	struct smbd_server_connection *sconn;
 	struct smb_perfcount_data pcd;
 
 	/*
diff --git a/source3/include/smb_macros.h b/source3/include/smb_macros.h
index 10ee78b..95f427c 100644
--- a/source3/include/smb_macros.h
+++ b/source3/include/smb_macros.h
@@ -79,9 +79,6 @@
 #define MAP_HIDDEN(conn)   ((conn) && lp_map_hidden(SNUM(conn)))
 #define MAP_SYSTEM(conn)   ((conn) && lp_map_system(SNUM(conn)))
 #define MAP_ARCHIVE(conn)   ((conn) && lp_map_archive(SNUM(conn)))
-#define IS_HIDDEN_PATH(conn,path)  ((conn) && is_in_path((path),(conn)->hide_list,(conn)->case_sensitive))
-#define IS_VETO_PATH(conn,path)  ((conn) && is_in_path((path),(conn)->veto_list,(conn)->case_sensitive))
-#define IS_VETO_OPLOCK_PATH(conn,path)  ((conn) && is_in_path((path),(conn)->veto_oplock_list,(conn)->case_sensitive))
 
 /* 
  * Used by the stat cache code to check if a returned
diff --git a/source3/lib/ms_fnmatch.c b/source3/lib/ms_fnmatch.c
index 1eac9fa..bff7382 100644
--- a/source3/lib/ms_fnmatch.c
+++ b/source3/lib/ms_fnmatch.c
@@ -234,5 +234,5 @@ int ms_fnmatch(const char *pattern, const char *string, bool translate_pattern,
 /* a generic fnmatch function - uses for non-CIFS pattern matching */
 int gen_fnmatch(const char *pattern, const char *string)
 {
-	return ms_fnmatch(pattern, string, PROTOCOL_NT1, False);
+	return ms_fnmatch(pattern, string, true, False);
 }
diff --git a/source3/lib/substitute.c b/source3/lib/substitute.c
index c9dc1d2..55acdd9 100644
--- a/source3/lib/substitute.c
+++ b/source3/lib/substitute.c
@@ -3,17 +3,17 @@
    string substitution functions
    Copyright (C) Andrew Tridgell 1992-2000
    Copyright (C) Gerald Carter   2006
-   
+
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
@@ -276,12 +276,12 @@ static char * realloc_expand_env_var(char *str, char *p)
 
 	r = p + 3;
 	copylen = q - r;
-	
+
 	/* reserve space for use later add %$() chars */
 	if ( (envname = (char *)SMB_MALLOC(copylen + 1 + 4)) == NULL ) {
 		return NULL;
 	}
-	
+
 	strncpy(envname,r,copylen);
 	envname[copylen] = '\0';
 
@@ -301,7 +301,7 @@ static char * realloc_expand_env_var(char *str, char *p)
 	envname[copylen] = '\0';
 	r = realloc_string_sub(str, envname, envval);
 	SAFE_FREE(envname);
-		
+
 	return r;
 }
 
@@ -313,17 +313,17 @@ static char *longvar_domainsid( void )
 	DOM_SID sid;
 	fstring tmp;
 	char *sid_string;
-	
+
 	if ( !secrets_fetch_domain_sid( lp_workgroup(), &sid ) ) {
 		return NULL;
 	}
-	
+
 	sid_string = SMB_STRDUP( sid_to_fstring( tmp, &sid ) );
-	
+
 	if ( !sid_string ) {
 		DEBUG(0,("longvar_domainsid: failed to dup SID string!\n"));
 	}
-	
+
 	return sid_string;
 }
 
@@ -343,15 +343,15 @@ static struct api_longvar longvar_table[] = {
 static char *get_longvar_val( const char *varname )
 {
 	int i;
-	
+
 	DEBUG(7,("get_longvar_val: expanding variable [%s]\n", varname));
-	
+
 	for ( i=0; longvar_table[i].name; i++ ) {
 		if ( strequal( longvar_table[i].name, varname ) ) {
 			return longvar_table[i].fn();
 		}
 	}
-	
+
 	return NULL;
 }
 
@@ -515,13 +515,12 @@ void standard_sub_basic(const char *smb_name, const char *domain_name,
 			char *str, size_t len)
 {
 	char *s;
-	
+
 	if ( (s = alloc_sub_basic( smb_name, domain_name, str )) != NULL ) {
 		strncpy( str, s, len );
 	}
-	
+
 	SAFE_FREE( s );
-	
 }
 
 /****************************************************************************
@@ -533,7 +532,7 @@ char *talloc_sub_basic(TALLOC_CTX *mem_ctx, const char *smb_name,
 		       const char *domain_name, const char *str)
 {
 	char *a, *t;
-	
+
 	if ( (a = alloc_sub_basic(smb_name, domain_name, str)) == NULL ) {
 		return NULL;
 	}
@@ -555,12 +554,12 @@ char *alloc_sub_basic(const char *smb_name, const char *domain_name,
 	TALLOC_CTX *tmp_ctx = NULL;
 
 	/* workaround to prevent a crash while looking at bug #687 */
-	
+
 	if (!str) {
 		DEBUG(0,("alloc_sub_basic: NULL source string!  This should not happen\n"));
 		return NULL;
 	}
-	
+
 	a_string = SMB_STRDUP(str);
 	if (a_string == NULL) {
 		DEBUG(0, ("alloc_sub_basic: Out of memory!\n"));
@@ -722,11 +721,11 @@ char *talloc_sub_specified(TALLOC_CTX *mem_ctx,
 		DEBUG(0, ("talloc_sub_specified: Out of memory!\n"));
 		goto done;
 	}
-	
+
 	for (b = s = a_string; (p = strchr_m(s, '%')); s = a_string + (p - b)) {
-		
+
 		b = a_string;
-		
+
 		switch (*(p+1)) {
 		case 'U' : 
 			a_string = talloc_string_sub(
@@ -802,11 +801,11 @@ static char *alloc_sub_advanced(const char *servicename, const char *user,
 		DEBUG(0, ("alloc_sub_advanced: Out of memory!\n"));
 		return NULL;
 	}
-	
+
 	for (b = s = a_string; (p = strchr_m(s, '%')); s = a_string + (p - b)) {
-		
+
 		b = a_string;
-		
+
 		switch (*(p+1)) {
 		case 'N' :
 			a_string = realloc_string_sub(a_string, "%N", automount_server(user));
@@ -830,7 +829,7 @@ static char *alloc_sub_advanced(const char *servicename, const char *user,
 		case 'u': 
 			a_string = realloc_string_sub(a_string, "%u", user); 
 			break;
-			
+
 			/* Patch from jkf at soton.ac.uk Left the %N (NIS
 			 * server name) in standard_sub_basic as it is
 			 * a feature for logon servers, hence uses the
@@ -842,7 +841,7 @@ static char *alloc_sub_advanced(const char *servicename, const char *user,
 			a_string = realloc_string_sub(a_string, "%p",
 						      automount_path(servicename)); 
 			break;
-			
+
 		default: 
 			break;
 		}
diff --git a/source3/lib/util.c b/source3/lib/util.c
index 9d12e5b..d194c3a 100644
--- a/source3/lib/util.c
+++ b/source3/lib/util.c
@@ -11,12 +11,12 @@
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
@@ -55,18 +55,6 @@ extern unsigned int global_clobber_region_line;
 #endif /* WITH_NISPLUS_HOME */
 #endif /* HAVE_NETGROUP && WITH_AUTOMOUNT */
 
-static enum protocol_types Protocol = PROTOCOL_COREPLUS;
-
-enum protocol_types get_Protocol(void)
-{
-	return Protocol;
-}
-
-void set_Protocol(enum protocol_types  p)
-{
-	Protocol = p;
-}
-
 static enum remote_arch_types ra_type = RA_UNKNOWN;
 
 /***********************************************************************
@@ -532,7 +520,7 @@ bool file_exist_stat(const char *fname,SMB_STRUCT_STAT *sbuf)
 	SMB_STRUCT_STAT st;
 	if (!sbuf)
 		sbuf = &st;
-  
+
 	if (sys_stat(fname,sbuf) != 0) 
 		return(False);
 
@@ -626,7 +614,7 @@ void show_msg(char *buf)
 
 	if (!DEBUGLVL(5))
 		return;
-	
+
 	DEBUG(5,("size=%d\nsmb_com=0x%x\nsmb_rcls=%d\nsmb_reh=%d\nsmb_err=%d\nsmb_flg=%d\nsmb_flg2=%d\n",
 			smb_len(buf),
 			(int)CVAL(buf,smb_com),
@@ -645,7 +633,7 @@ void show_msg(char *buf)
 	for (i=0;i<(int)CVAL(buf,smb_wct);i++)
 		DEBUGADD(5,("smb_vwv[%2d]=%5d (0x%X)\n",i,
 			SVAL(buf,smb_vwv+2*i),SVAL(buf,smb_vwv+2*i)));
-	
+
 	bcc = (int)SVAL(buf,smb_vwv+2*(CVAL(buf,smb_wct)));
 
 	DEBUGADD(5,("smb_bcc=%d\n",bcc));
@@ -896,7 +884,7 @@ void smb_msleep(unsigned int t)
 
 	GetTimeOfDay(&t1);
 	t2 = t1;
-  
+
 	while (tdiff < t) {
 		tval.tv_sec = (t-tdiff)/1000;
 		tval.tv_usec = 1000*((t-tdiff)%1000);
@@ -1217,9 +1205,9 @@ int interpret_protocol(const char *str,int def)
 		return(PROTOCOL_COREPLUS);
 	if (strequal(str,"CORE+"))
 		return(PROTOCOL_COREPLUS);
-  
+
 	DEBUG(0,("Unrecognised protocol level %s\n",str));
-  
+
 	return(def);
 }
 
@@ -1577,7 +1565,7 @@ libunwind_failed:
 
 	DEBUG(0, ("BACKTRACE: %lu stack frames:\n", 
 		  (unsigned long)backtrace_size));
-	
+
 	if (backtrace_strings) {
 		int i;
 
@@ -1641,7 +1629,7 @@ const char *readdirname(SMB_STRUCT_DIR *p)
 
 	if (!p)
 		return(NULL);
-  
+
 	ptr = (SMB_STRUCT_DIRENT *)sys_readdir(p);
 	if (!ptr)
 		return(NULL);
@@ -1666,7 +1654,8 @@ const char *readdirname(SMB_STRUCT_DIR *p)
  of a path matches a (possibly wildcarded) entry in a namelist.
 ********************************************************************/
 
-bool is_in_path(const char *name, name_compare_entry *namelist, bool case_sensitive)
+bool is_in_path(const char *name, name_compare_entry *namelist,
+		enum protocol_types proto, bool case_sensitive)
 {
 	const char *last_component;
 
@@ -1687,7 +1676,8 @@ bool is_in_path(const char *name, name_compare_entry *namelist, bool case_sensit
 
 	for(; namelist->name != NULL; namelist++) {
 		if(namelist->is_wild) {
-			if (mask_match(last_component, namelist->name, case_sensitive)) {
+			if (mask_match(last_component, namelist->name,
+				       proto, case_sensitive)) {
 				DEBUG(8,("is_in_path: mask match succeeded\n"));
 				return True;
 			}
@@ -1715,7 +1705,7 @@ bool is_in_path(const char *name, name_compare_entry *namelist, bool case_sensit
  remove a potentially expensive call to mask_match
  if possible.
 ********************************************************************/
- 
+
 void set_namearray(name_compare_entry **ppname_array, const char *namelist)
 {
 	char *name_end;
@@ -1791,7 +1781,7 @@ void set_namearray(name_compare_entry **ppname_array, const char *namelist)
 		nameptr = name_end + 1;
 		i++;
 	}
-  
+
 	(*ppname_array)[i].name = NULL;
 
 	return;
@@ -1851,7 +1841,7 @@ bool fcntl_getlock(int fd, SMB_OFF_T *poffset, SMB_OFF_T *pcount, int *ptype, pi
 	*poffset = lock.l_start;
 	*pcount = lock.l_len;
 	*ppid = lock.l_pid;
-	
+
 	DEBUG(3,("fcntl_getlock: fd %d is returned info %d pid %u\n",
 			fd, (int)lock.l_type, (unsigned int)lock.l_pid));
 	return True;
@@ -2310,7 +2300,7 @@ bool parent_dirname(TALLOC_CTX *mem_ctx, const char *dir, char **parent,
 {
 	char *p;
 	ptrdiff_t len;
- 
+
 	p = strrchr_m(dir, '/'); /* Find final '/', if any */
 
 	if (p == NULL) {
@@ -2384,14 +2374,16 @@ bool ms_has_wild_w(const smb_ucs2_t *s)
  of the ".." name.
 *******************************************************************/
 
-bool mask_match(const char *string, const char *pattern, bool is_case_sensitive)
+bool mask_match(const char *string, const char *pattern,
+		enum protocol_types proto, bool is_case_sensitive)
 {
-	if (strcmp(string,"..") == 0)
+	if (ISDOTDOT(string))
 		string = ".";
-	if (strcmp(pattern,".") == 0)
+	if (ISDOT(pattern))


-- 
Samba Shared Repository


More information about the samba-cvs mailing list