diff options
author | Günther Deschner <gd@samba.org> | 2005-07-04 13:57:54 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 10:58:12 -0500 |
commit | 944ecbdbb05f87270430efbef0ddc7cc388e5d36 (patch) | |
tree | 8946acd061c9de7f1c0e304d20b8edf9939e467c /source3/nsswitch | |
parent | 665909539572c48555916425729a25e158ac5255 (diff) | |
download | samba-944ecbdbb05f87270430efbef0ddc7cc388e5d36.tar.gz samba-944ecbdbb05f87270430efbef0ddc7cc388e5d36.tar.bz2 samba-944ecbdbb05f87270430efbef0ddc7cc388e5d36.zip |
r8145: 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
(This used to be commit 91596330ea3c4ba0fb9ddc52ad9d4a7c8e5b2d3f)
Diffstat (limited to 'source3/nsswitch')
-rw-r--r-- | source3/nsswitch/winbindd_ads.c | 21 | ||||
-rw-r--r-- | source3/nsswitch/winbindd_user.c | 2 |
2 files changed, 15 insertions, 8 deletions
diff --git a/source3/nsswitch/winbindd_ads.c b/source3/nsswitch/winbindd_ads.c index 868a7bc2ac..3041b736f7 100644 --- a/source3/nsswitch/winbindd_ads.c +++ b/source3/nsswitch/winbindd_ads.c @@ -95,7 +95,7 @@ static ADS_STRUCT *ads_cached_connection(struct winbindd_domain *domain) 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 @@ static NTSTATUS query_user_list(struct winbindd_domain *domain, 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 @@ static NTSTATUS query_user_list(struct winbindd_domain *domain, 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,8 +422,11 @@ static NTSTATUS query_user(struct winbindd_domain *domain, 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", diff --git a/source3/nsswitch/winbindd_user.c b/source3/nsswitch/winbindd_user.c index f849bff42d..ab5da3edd0 100644 --- a/source3/nsswitch/winbindd_user.c +++ b/source3/nsswitch/winbindd_user.c @@ -43,7 +43,7 @@ static BOOL fillup_pw_field(const char *lp_template, 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; } |