svn commit: samba r14207 - branches/SAMBA_3_0/source/include branches/SAMBA_3_0/source/param branches/SAMBA_3_0/source/smbd trunk/source/include trunk/source/param trunk/source/smbd

jpeach at samba.org jpeach at samba.org
Sat Mar 11 10:59:06 GMT 2006


Author: jpeach
Date: 2006-03-11 10:59:03 +0000 (Sat, 11 Mar 2006)
New Revision: 14207

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=14207

Log:
Convert the lp_acl_compatibility() param into an enum.

Modified:
   branches/SAMBA_3_0/source/include/smb.h
   branches/SAMBA_3_0/source/param/loadparm.c
   branches/SAMBA_3_0/source/smbd/posix_acls.c
   trunk/source/include/smb.h
   trunk/source/param/loadparm.c
   trunk/source/smbd/posix_acls.c


Changeset:
Modified: branches/SAMBA_3_0/source/include/smb.h
===================================================================
--- branches/SAMBA_3_0/source/include/smb.h	2006-03-11 10:45:40 UTC (rev 14206)
+++ branches/SAMBA_3_0/source/include/smb.h	2006-03-11 10:59:03 UTC (rev 14207)
@@ -1441,6 +1441,8 @@
 /* case handling */
 enum case_handling {CASE_LOWER,CASE_UPPER};
 
+/* ACL compatibility */
+enum acl_compatibility {ACL_COMPAT_AUTO, ACL_COMPAT_WINNT, ACL_COMPAT_WIN2K};
 /*
  * Global value meaing that the smb_uid field should be
  * ingored (in share level security and protocol level == CORE)

Modified: branches/SAMBA_3_0/source/param/loadparm.c
===================================================================
--- branches/SAMBA_3_0/source/param/loadparm.c	2006-03-11 10:45:40 UTC (rev 14206)
+++ branches/SAMBA_3_0/source/param/loadparm.c	2006-03-11 10:59:03 UTC (rev 14207)
@@ -622,7 +622,6 @@
 static BOOL handle_netbios_aliases( int snum, const char *pszParmValue, char **ptr );
 static BOOL handle_netbios_scope( int snum, const char *pszParmValue, char **ptr );
 static BOOL handle_charset( int snum, const char *pszParmValue, char **ptr );
-static BOOL handle_acl_compatibility( int snum, const char *pszParmValue, char **ptr);
 static BOOL handle_printing( int snum, const char *pszParmValue, char **ptr);
 
 static void set_server_role(void);
@@ -778,6 +777,13 @@
 	{-1, NULL}
 };
 
+/* ACL compatibility options. */
+static const struct enum_list enum_acl_compat_vals[] = {
+    { ACL_COMPAT_AUTO, "auto" },
+    { ACL_COMPAT_WINNT, "winnt" },
+    { ACL_COMPAT_WIN2K, "win2k" },
+    { -1, NULL}
+};
 
 /* 
    Do you want session setups at user level security with a invalid
@@ -969,7 +975,7 @@
 	{"disable netbios", P_BOOL, P_GLOBAL, &Globals.bDisableNetbios, NULL, NULL, FLAG_ADVANCED}, 
 	{"reset on zero vc", P_BOOL, P_GLOBAL, &Globals.bResetOnZeroVC, NULL, NULL, FLAG_ADVANCED}, 
 
-	{"acl compatibility", P_STRING, P_GLOBAL, &Globals.szAclCompat, handle_acl_compatibility,  NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
+	{"acl compatibility", P_STRING, P_GLOBAL, &Globals.szAclCompat, NULL,  enum_acl_compat_vals, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
 	{"defer sharing violations", P_BOOL, P_GLOBAL, &Globals.bDeferSharingViolations, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL},
 	{"ea support", P_BOOL, P_LOCAL, &sDefault.bEASupport, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
 	{"nt acl support", P_BOOL, P_LOCAL, &sDefault.bNTAclSupport, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
@@ -1832,7 +1838,7 @@
 FN_GLOBAL_CONST_STRING(lp_template_homedir, &Globals.szTemplateHomedir)
 FN_GLOBAL_CONST_STRING(lp_template_shell, &Globals.szTemplateShell)
 FN_GLOBAL_CONST_STRING(lp_winbind_separator, &Globals.szWinbindSeparator)
-FN_GLOBAL_STRING(lp_acl_compatibility, &Globals.szAclCompat)
+FN_GLOBAL_INTEGER(lp_acl_compatibility, &Globals.szAclCompat)
 FN_GLOBAL_BOOL(lp_winbind_enum_users, &Globals.bWinbindEnumUsers)
 FN_GLOBAL_BOOL(lp_winbind_enum_groups, &Globals.bWinbindEnumGroups)
 FN_GLOBAL_BOOL(lp_winbind_use_default_domain, &Globals.bWinbindUseDefaultDomain)
@@ -3305,23 +3311,6 @@
 	return lp_string(Globals.szLdapSuffix);
 }
 
-/***************************************************************************
-***************************************************************************/
-
-static BOOL handle_acl_compatibility(int snum, const char *pszParmValue, char **ptr)
-{
-	if (strequal(pszParmValue, "auto"))
-		string_set(ptr, "");
-	else if (strequal(pszParmValue, "winnt"))
-		string_set(ptr, "winnt");
-	else if (strequal(pszParmValue, "win2k"))
-		string_set(ptr, "win2k");
-	else
-		return False;
-
-	return True;
-}
-
 /****************************************************************************
  set the value for a P_ENUM
  ***************************************************************************/

Modified: branches/SAMBA_3_0/source/smbd/posix_acls.c
===================================================================
--- branches/SAMBA_3_0/source/smbd/posix_acls.c	2006-03-11 10:45:40 UTC (rev 14206)
+++ branches/SAMBA_3_0/source/smbd/posix_acls.c	2006-03-11 10:59:03 UTC (rev 14207)
@@ -783,15 +783,15 @@
 
 static BOOL nt4_compatible_acls(void)
 {
-	const char *compat = lp_acl_compatibility();
+	int compat = lp_acl_compatibility();
 
-	if (*compat == '\0') {
+	if (compat == ACL_COMPAT_AUTO) {
 		enum remote_arch_types ra_type = get_remote_arch();
 
 		/* Automatically adapt to client */
 		return (ra_type <= RA_WINNT);
 	} else
-		return (strequal(compat, "winnt"));
+		return (compat == ACL_COMPAT_WINNT);
 }
 
 

Modified: trunk/source/include/smb.h
===================================================================
--- trunk/source/include/smb.h	2006-03-11 10:45:40 UTC (rev 14206)
+++ trunk/source/include/smb.h	2006-03-11 10:59:03 UTC (rev 14207)
@@ -1455,6 +1455,8 @@
 /* case handling */
 enum case_handling {CASE_LOWER,CASE_UPPER};
 
+/* ACL compatibility */
+enum acl_compatibility {ACL_COMPAT_AUTO, ACL_COMPAT_WINNT, ACL_COMPAT_WIN2K};
 /*
  * Global value meaing that the smb_uid field should be
  * ingored (in share level security and protocol level == CORE)

Modified: trunk/source/param/loadparm.c
===================================================================
--- trunk/source/param/loadparm.c	2006-03-11 10:45:40 UTC (rev 14206)
+++ trunk/source/param/loadparm.c	2006-03-11 10:59:03 UTC (rev 14207)
@@ -622,7 +622,6 @@
 static BOOL handle_netbios_aliases( int snum, const char *pszParmValue, char **ptr );
 static BOOL handle_netbios_scope( int snum, const char *pszParmValue, char **ptr );
 static BOOL handle_charset( int snum, const char *pszParmValue, char **ptr );
-static BOOL handle_acl_compatibility( int snum, const char *pszParmValue, char **ptr);
 static BOOL handle_printing( int snum, const char *pszParmValue, char **ptr);
 
 static void set_server_role(void);
@@ -778,6 +777,13 @@
 	{-1, NULL}
 };
 
+/* ACL compatibility options. */
+static const struct enum_list enum_acl_compat_vals[] = {
+    { ACL_COMPAT_AUTO, "auto" },
+    { ACL_COMPAT_WINNT, "winnt" },
+    { ACL_COMPAT_WIN2K, "win2k" },
+    { -1, NULL}
+};
 
 /* 
    Do you want session setups at user level security with a invalid
@@ -969,7 +975,7 @@
 	{"disable netbios", P_BOOL, P_GLOBAL, &Globals.bDisableNetbios, NULL, NULL, FLAG_ADVANCED}, 
 	{"reset on zero vc", P_BOOL, P_GLOBAL, &Globals.bResetOnZeroVC, NULL, NULL, FLAG_ADVANCED}, 
 
-	{"acl compatibility", P_STRING, P_GLOBAL, &Globals.szAclCompat, handle_acl_compatibility,  NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
+	{"acl compatibility", P_STRING, P_GLOBAL, &Globals.szAclCompat, NULL,  enum_acl_compat_vals, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
 	{"defer sharing violations", P_BOOL, P_GLOBAL, &Globals.bDeferSharingViolations, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL},
 	{"ea support", P_BOOL, P_LOCAL, &sDefault.bEASupport, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
 	{"nt acl support", P_BOOL, P_LOCAL, &sDefault.bNTAclSupport, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE | FLAG_GLOBAL}, 
@@ -1832,7 +1838,7 @@
 FN_GLOBAL_CONST_STRING(lp_template_homedir, &Globals.szTemplateHomedir)
 FN_GLOBAL_CONST_STRING(lp_template_shell, &Globals.szTemplateShell)
 FN_GLOBAL_CONST_STRING(lp_winbind_separator, &Globals.szWinbindSeparator)
-FN_GLOBAL_STRING(lp_acl_compatibility, &Globals.szAclCompat)
+FN_GLOBAL_INTEGER(lp_acl_compatibility, &Globals.szAclCompat)
 FN_GLOBAL_BOOL(lp_winbind_enum_users, &Globals.bWinbindEnumUsers)
 FN_GLOBAL_BOOL(lp_winbind_enum_groups, &Globals.bWinbindEnumGroups)
 FN_GLOBAL_BOOL(lp_winbind_use_default_domain, &Globals.bWinbindUseDefaultDomain)
@@ -3305,23 +3311,6 @@
 	return lp_string(Globals.szLdapSuffix);
 }
 
-/***************************************************************************
-***************************************************************************/
-
-static BOOL handle_acl_compatibility(int snum, const char *pszParmValue, char **ptr)
-{
-	if (strequal(pszParmValue, "auto"))
-		string_set(ptr, "");
-	else if (strequal(pszParmValue, "winnt"))
-		string_set(ptr, "winnt");
-	else if (strequal(pszParmValue, "win2k"))
-		string_set(ptr, "win2k");
-	else
-		return False;
-
-	return True;
-}
-
 /****************************************************************************
  set the value for a P_ENUM
  ***************************************************************************/

Modified: trunk/source/smbd/posix_acls.c
===================================================================
--- trunk/source/smbd/posix_acls.c	2006-03-11 10:45:40 UTC (rev 14206)
+++ trunk/source/smbd/posix_acls.c	2006-03-11 10:59:03 UTC (rev 14207)
@@ -783,15 +783,15 @@
 
 static BOOL nt4_compatible_acls(void)
 {
-	const char *compat = lp_acl_compatibility();
+	int compat = lp_acl_compatibility();
 
-	if (*compat == '\0') {
+	if (compat == ACL_COMPAT_AUTO) {
 		enum remote_arch_types ra_type = get_remote_arch();
 
 		/* Automatically adapt to client */
 		return (ra_type <= RA_WINNT);
 	} else
-		return (strequal(compat, "winnt"));
+		return (compat == ACL_COMPAT_WINNT);
 }
 
 



More information about the samba-cvs mailing list