svn commit: samba r8145 - branches/SAMBA_3_0/source/nsswitch branches/SAMBA_3_0/source/param branches/SAMBA_3_0/source/sam trunk/source/nsswitch trunk/source/param trunk/source/sam

gd at samba.org gd at samba.org
Mon Jul 4 13:57:55 GMT 2005


Author: gd
Date: 2005-07-04 13:57:54 +0000 (Mon, 04 Jul 2005)
New Revision: 8145

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

Log:
When inventing a new parameter for SFU-support, be aware of Volker's
upcoming changes for "unixinfo"-pipe.

Therefor (after speaking with Volker) replace "winbind sfu support" with
the list-parameter "winbind nss info" which defaults to "template". For
SFU-support set it to "winbind nss info = template sfu". 

Note that nss_info_use() is just a dummy function at the moment.

Guenther


Modified:
   branches/SAMBA_3_0/source/nsswitch/winbindd_ads.c
   branches/SAMBA_3_0/source/nsswitch/winbindd_user.c
   branches/SAMBA_3_0/source/param/loadparm.c
   branches/SAMBA_3_0/source/sam/idmap_ad.c
   trunk/source/nsswitch/winbindd_ads.c
   trunk/source/nsswitch/winbindd_user.c
   trunk/source/param/loadparm.c
   trunk/source/sam/idmap_ad.c


Changeset:
Modified: branches/SAMBA_3_0/source/nsswitch/winbindd_ads.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/winbindd_ads.c	2005-07-04 13:51:17 UTC (rev 8144)
+++ branches/SAMBA_3_0/source/nsswitch/winbindd_ads.c	2005-07-04 13:57:54 UTC (rev 8145)
@@ -95,7 +95,7 @@
 		return NULL;
 	}
 
-	if (lp_winbind_sfu_support() && (!ads_check_sfu_mapping(ads))) {
+	if (use_nss_info("sfu") && (!ads_check_sfu_mapping(ads))) {
 		DEBUG(0,("ads_cached_connection: failed to check sfu attributes\n"));
 		return NULL;
 	}
@@ -163,7 +163,9 @@
 	i = 0;
 
 	for (msg = ads_first_entry(ads, res); msg; msg = ads_next_entry(ads, msg)) {
-		char *name, *gecos, *homedir, *shell;
+		char *name, *gecos;
+		char *homedir = NULL;
+		char *shell = NULL;
 		uint32 group;
 		uint32 atype;
 
@@ -175,9 +177,11 @@
 
 		name = ads_pull_username(ads, mem_ctx, msg);
 		gecos = ads_pull_string(ads, mem_ctx, msg, "name");
-		homedir = ads_pull_string(ads, mem_ctx, msg, ads->schema.sfu_homedir_attr);
-		shell = ads_pull_string(ads, mem_ctx, msg, ads->schema.sfu_shell_attr);
-
+		if (use_nss_info("sfu")) {
+			homedir = ads_pull_string(ads, mem_ctx, msg, ads->schema.sfu_homedir_attr);
+			shell = ads_pull_string(ads, mem_ctx, msg, ads->schema.sfu_shell_attr);
+		}
+	
 		if (!ads_pull_sid(ads, msg, "objectSid",
 				  &(*info)[i].user_sid)) {
 			DEBUG(1,("No sid for %s !?\n", name));
@@ -418,9 +422,12 @@
 
 	info->acct_name = ads_pull_username(ads, mem_ctx, msg);
 	info->full_name = ads_pull_string(ads, mem_ctx, msg, "name");
-	info->homedir = ads_pull_string(ads, mem_ctx, msg, ads->schema.sfu_homedir_attr);
-	info->shell = ads_pull_string(ads, mem_ctx, msg, ads->schema.sfu_shell_attr);
 
+	if (use_nss_info("sfu")) {
+		info->homedir = ads_pull_string(ads, mem_ctx, msg, ads->schema.sfu_homedir_attr);
+		info->shell = ads_pull_string(ads, mem_ctx, msg, ads->schema.sfu_shell_attr);
+	}
+
 	if (!ads_pull_uint32(ads, msg, "primaryGroupID", &group_rid)) {
 		DEBUG(1,("No primary group for %s !?\n",
 			 sid_string_static(sid)));

Modified: branches/SAMBA_3_0/source/nsswitch/winbindd_user.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/winbindd_user.c	2005-07-04 13:51:17 UTC (rev 8144)
+++ branches/SAMBA_3_0/source/nsswitch/winbindd_user.c	2005-07-04 13:57:54 UTC (rev 8145)
@@ -43,7 +43,7 @@
 	if (out == NULL)
 		return False;
 
-	if (in && !strequal(in,"") && lp_security() == SEC_ADS && lp_winbind_sfu_support()) {
+	if (in && !strequal(in,"") && lp_security() == SEC_ADS && use_nss_info("sfu")) {
 		safe_strcpy(out, in, sizeof(fstring) - 1);
 		return True;
 	}

Modified: branches/SAMBA_3_0/source/param/loadparm.c
===================================================================
--- branches/SAMBA_3_0/source/param/loadparm.c	2005-07-04 13:51:17 UTC (rev 8144)
+++ branches/SAMBA_3_0/source/param/loadparm.c	2005-07-04 13:57:54 UTC (rev 8145)
@@ -225,7 +225,7 @@
 	int oplock_break_wait_time;
 	int winbind_cache_time;
 	int winbind_max_idle_children;
-	BOOL bWinbindSFUSupport;
+	char **szWinbindNssInfo;
 	int iLockSpinCount;
 	int iLockSpinTime;
 	char *szLdapMachineSuffix;
@@ -1237,7 +1237,7 @@
 	{"winbind trusted domains only", P_BOOL, P_GLOBAL, &Globals.bWinbindTrustedDomainsOnly, NULL, NULL, FLAG_ADVANCED}, 
 	{"winbind nested groups", P_BOOL, P_GLOBAL, &Globals.bWinbindNestedGroups, NULL, NULL, FLAG_ADVANCED}, 
 	{"winbind max idle children", P_INTEGER, P_GLOBAL, &Globals.winbind_max_idle_children, NULL, NULL, FLAG_ADVANCED}, 
-	{"winbind sfu support", P_BOOL, P_GLOBAL, &Globals.bWinbindSFUSupport, NULL, NULL, FLAG_ADVANCED}, 
+	{"winbind nss info", P_LIST, P_GLOBAL, &Globals.szWinbindNssInfo, NULL, NULL, FLAG_ADVANCED}, 
 
 	{NULL,  P_BOOL,  P_NONE,  NULL,  NULL,  NULL,  0}
 };
@@ -1583,7 +1583,7 @@
 	Globals.bWinbindTrustedDomainsOnly = False;
 	Globals.bWinbindNestedGroups = False;
 	Globals.winbind_max_idle_children = 3;
-	Globals.bWinbindSFUSupport = False;
+	Globals.szWinbindNssInfo = str_list_make("template", NULL);
 
 	Globals.bEnableRidAlgorithm = True;
 
@@ -2008,7 +2008,7 @@
 FN_LOCAL_CHAR(lp_magicchar, magic_char)
 FN_GLOBAL_INTEGER(lp_winbind_cache_time, &Globals.winbind_cache_time)
 FN_GLOBAL_INTEGER(lp_winbind_max_idle_children, &Globals.winbind_max_idle_children)
-FN_GLOBAL_BOOL(lp_winbind_sfu_support, &Globals.bWinbindSFUSupport)
+FN_GLOBAL_LIST(lp_winbind_nss_info, &Globals.szWinbindNssInfo)
 FN_GLOBAL_INTEGER(lp_algorithmic_rid_base, &Globals.AlgorithmicRidBase)
 FN_GLOBAL_INTEGER(lp_name_cache_timeout, &Globals.name_cache_timeout)
 FN_GLOBAL_INTEGER(lp_client_signing, &Globals.client_signing)

Modified: branches/SAMBA_3_0/source/sam/idmap_ad.c
===================================================================
--- branches/SAMBA_3_0/source/sam/idmap_ad.c	2005-07-04 13:51:17 UTC (rev 8144)
+++ branches/SAMBA_3_0/source/sam/idmap_ad.c	2005-07-04 13:57:54 UTC (rev 8145)
@@ -54,7 +54,7 @@
 		return True;
 	}
 
-	if (lp_winbind_sfu_support()) {
+	if (use_nss_info("sfu")) {
 	
 		if (!ads_check_sfu_mapping(ads)) {
 			DEBUG(0,("ad_idmap_check_attr_mapping: failed to check for SFU schema\n"));

Modified: trunk/source/nsswitch/winbindd_ads.c
===================================================================
--- trunk/source/nsswitch/winbindd_ads.c	2005-07-04 13:51:17 UTC (rev 8144)
+++ trunk/source/nsswitch/winbindd_ads.c	2005-07-04 13:57:54 UTC (rev 8145)
@@ -95,7 +95,7 @@
 		return NULL;
 	}
 
-	if (lp_winbind_sfu_support() && (!ads_check_sfu_mapping(ads))) {
+	if (use_nss_info("sfu") && (!ads_check_sfu_mapping(ads))) {
 		DEBUG(0,("ads_cached_connection: failed to check sfu attributes\n"));
 		return NULL;
 	}
@@ -163,7 +163,9 @@
 	i = 0;
 
 	for (msg = ads_first_entry(ads, res); msg; msg = ads_next_entry(ads, msg)) {
-		char *name, *gecos, *homedir, *shell;
+		char *name, *gecos;
+		char *homedir = NULL;
+		char *shell = NULL;
 		uint32 group;
 		uint32 atype;
 
@@ -175,9 +177,11 @@
 
 		name = ads_pull_username(ads, mem_ctx, msg);
 		gecos = ads_pull_string(ads, mem_ctx, msg, "name");
-		homedir = ads_pull_string(ads, mem_ctx, msg, ads->schema.sfu_homedir_attr);
-		shell = ads_pull_string(ads, mem_ctx, msg, ads->schema.sfu_shell_attr);
-
+		if (use_nss_info("sfu")) {
+			homedir = ads_pull_string(ads, mem_ctx, msg, ads->schema.sfu_homedir_attr);
+			shell = ads_pull_string(ads, mem_ctx, msg, ads->schema.sfu_shell_attr);
+		}
+	
 		if (!ads_pull_sid(ads, msg, "objectSid",
 				  &(*info)[i].user_sid)) {
 			DEBUG(1,("No sid for %s !?\n", name));
@@ -418,9 +422,12 @@
 
 	info->acct_name = ads_pull_username(ads, mem_ctx, msg);
 	info->full_name = ads_pull_string(ads, mem_ctx, msg, "name");
-	info->homedir = ads_pull_string(ads, mem_ctx, msg, ads->schema.sfu_homedir_attr);
-	info->shell = ads_pull_string(ads, mem_ctx, msg, ads->schema.sfu_shell_attr);
 
+	if (use_nss_info("sfu")) {
+		info->homedir = ads_pull_string(ads, mem_ctx, msg, ads->schema.sfu_homedir_attr);
+		info->shell = ads_pull_string(ads, mem_ctx, msg, ads->schema.sfu_shell_attr);
+	}
+
 	if (!ads_pull_uint32(ads, msg, "primaryGroupID", &group_rid)) {
 		DEBUG(1,("No primary group for %s !?\n",
 			 sid_string_static(sid)));

Modified: trunk/source/nsswitch/winbindd_user.c
===================================================================
--- trunk/source/nsswitch/winbindd_user.c	2005-07-04 13:51:17 UTC (rev 8144)
+++ trunk/source/nsswitch/winbindd_user.c	2005-07-04 13:57:54 UTC (rev 8145)
@@ -43,7 +43,7 @@
 	if (out == NULL)
 		return False;
 
-	if (in && !strequal(in,"") && lp_security() == SEC_ADS && lp_winbind_sfu_support()) {
+	if (in && !strequal(in,"") && lp_security() == SEC_ADS && use_nss_info("sfu")) {
 		safe_strcpy(out, in, sizeof(fstring) - 1);
 		return True;
 	}

Modified: trunk/source/param/loadparm.c
===================================================================
--- trunk/source/param/loadparm.c	2005-07-04 13:51:17 UTC (rev 8144)
+++ trunk/source/param/loadparm.c	2005-07-04 13:57:54 UTC (rev 8145)
@@ -227,7 +227,7 @@
 	int oplock_break_wait_time;
 	int winbind_cache_time;
 	int winbind_max_idle_children;
-	BOOL bWinbindSFUSupport;
+	char **szWinbindNssInfo;
 	int iLockSpinCount;
 	int iLockSpinTime;
 	char *szLdapMachineSuffix;
@@ -1241,7 +1241,7 @@
 	{"winbind trusted domains only", P_BOOL, P_GLOBAL, &Globals.bWinbindTrustedDomainsOnly, NULL, NULL, FLAG_ADVANCED}, 
 	{"winbind nested groups", P_BOOL, P_GLOBAL, &Globals.bWinbindNestedGroups, NULL, NULL, FLAG_ADVANCED}, 
 	{"winbind max idle children", P_INTEGER, P_GLOBAL, &Globals.winbind_max_idle_children, NULL, NULL, FLAG_ADVANCED}, 
-	{"winbind sfu support", P_BOOL, P_GLOBAL, &Globals.bWinbindSFUSupport, NULL, NULL, FLAG_ADVANCED}, 
+	{"winbind nss info", P_LIST, P_GLOBAL, &Globals.szWinbindNssInfo, NULL, NULL, FLAG_ADVANCED}, 
 
 	{NULL,  P_BOOL,  P_NONE,  NULL,  NULL,  NULL,  0}
 };
@@ -1590,7 +1590,7 @@
 	Globals.bWinbindTrustedDomainsOnly = False;
 	Globals.bWinbindNestedGroups = False;
 	Globals.winbind_max_idle_children = 3;
-	Globals.bWinbindSFUSupport = False;
+	Globals.szWinbindNssInfo = str_list_make("template", NULL);
 
 	Globals.bEnableRidAlgorithm = True;
 
@@ -2016,7 +2016,7 @@
 FN_LOCAL_CHAR(lp_magicchar, magic_char)
 FN_GLOBAL_INTEGER(lp_winbind_cache_time, &Globals.winbind_cache_time)
 FN_GLOBAL_INTEGER(lp_winbind_max_idle_children, &Globals.winbind_max_idle_children)
-FN_GLOBAL_BOOL(lp_winbind_sfu_support, &Globals.bWinbindSFUSupport)
+FN_GLOBAL_LIST(lp_winbind_nss_info, &Globals.szWinbindNssInfo)
 FN_GLOBAL_INTEGER(lp_algorithmic_rid_base, &Globals.AlgorithmicRidBase)
 FN_GLOBAL_INTEGER(lp_name_cache_timeout, &Globals.name_cache_timeout)
 FN_GLOBAL_INTEGER(lp_client_signing, &Globals.client_signing)

Modified: trunk/source/sam/idmap_ad.c
===================================================================
--- trunk/source/sam/idmap_ad.c	2005-07-04 13:51:17 UTC (rev 8144)
+++ trunk/source/sam/idmap_ad.c	2005-07-04 13:57:54 UTC (rev 8145)
@@ -54,7 +54,7 @@
 		return True;
 	}
 
-	if (lp_winbind_sfu_support()) {
+	if (use_nss_info("sfu")) {
 	
 		if (!ads_check_sfu_mapping(ads)) {
 			DEBUG(0,("ad_idmap_check_attr_mapping: failed to check for SFU schema\n"));



More information about the samba-cvs mailing list