diff options
author | Gerald Carter <jerry@samba.org> | 2003-09-04 19:45:04 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2003-09-04 19:45:04 +0000 |
commit | bf0f3be29dc04f51ebf18425abb41979fdb7897a (patch) | |
tree | a4d7df8591064c28f541edc9330f3edba3822f74 | |
parent | 22831019dcf9dad93256e7104e41bebcbc666c02 (diff) | |
download | samba-bf0f3be29dc04f51ebf18425abb41979fdb7897a.tar.gz samba-bf0f3be29dc04f51ebf18425abb41979fdb7897a.tar.bz2 samba-bf0f3be29dc04f51ebf18425abb41979fdb7897a.zip |
Check in Andrew's fix for bug #305 (always use lp_realm() )
Also make sure thet ads_startup uses lp_realm instead of
just relying on the workgroup name. Fixes bug in net ads join
when the workgroup defaults to "WORKGROUP" and we ignore the
realm name.
(This used to be commit b1763ace4e85f41574894e3807cabb5196fec661)
-rw-r--r-- | source3/nsswitch/winbindd_ads.c | 15 | ||||
-rw-r--r-- | source3/utils/net_ads.c | 9 |
2 files changed, 9 insertions, 15 deletions
diff --git a/source3/nsswitch/winbindd_ads.c b/source3/nsswitch/winbindd_ads.c index 19babae46b..2e01b5043d 100644 --- a/source3/nsswitch/winbindd_ads.c +++ b/source3/nsswitch/winbindd_ads.c @@ -28,10 +28,6 @@ #undef DBGC_CLASS #define DBGC_CLASS DBGC_WINBIND -/* the realm of our primary LDAP server */ -static char *primary_realm; - - /* return our ads connections structure for a domain. We keep the connection open to make things faster @@ -58,10 +54,8 @@ static ADS_STRUCT *ads_cached_connection(struct winbindd_domain *domain) SAFE_FREE(ads->auth.password); ads->auth.password = secrets_fetch_machine_password(lp_workgroup(), NULL, NULL); - if (primary_realm) { - SAFE_FREE(ads->auth.realm); - ads->auth.realm = strdup(primary_realm); - } + SAFE_FREE(ads->auth.realm); + ads->auth.realm = strdup(lp_realm()); status = ads_connect(ads); if (!ADS_ERR_OK(status) || !ads->config.realm) { @@ -84,11 +78,6 @@ static ADS_STRUCT *ads_cached_connection(struct winbindd_domain *domain) return NULL; } - /* remember our primary realm for trusted domain support */ - if (!primary_realm) { - primary_realm = strdup(ads->config.realm); - } - domain->private = (void *)ads; return ads; } diff --git a/source3/utils/net_ads.c b/source3/utils/net_ads.c index 352431a938..0e909a6087 100644 --- a/source3/utils/net_ads.c +++ b/source3/utils/net_ads.c @@ -127,9 +127,14 @@ static ADS_STRUCT *ads_startup(void) ADS_STATUS status; BOOL need_password = False; BOOL second_time = False; - char *cp; + char *cp; - ads = ads_init(NULL, opt_target_workgroup, opt_host); + /* lp_realm() should be handled by a command line param, + However, the join requires that realm be set in smb.conf + and compares our realm with the remote server's so this is + ok until someone needs more flexibility */ + + ads = ads_init(lp_realm(), opt_target_workgroup, opt_host); if (!opt_user_name) { opt_user_name = "administrator"; |