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"));