summaryrefslogtreecommitdiffstats
path: root/source/libads
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2006-07-07 12:29:10 +0000
committerGerald Carter <jerry@samba.org>2006-07-07 12:29:10 +0000
commit8a3f5ba7a627c4cacbbc4dc81b3d5921e1c2ecbf (patch)
treec8cec66ca25f43958a9bac13f7949a0e71400352 /source/libads
parentd124769a4cfc8713f7eeb299a6db95e522ac33b3 (diff)
downloadsamba-8a3f5ba7a627c4cacbbc4dc81b3d5921e1c2ecbf.tar.gz
samba-8a3f5ba7a627c4cacbbc4dc81b3d5921e1c2ecbf.tar.xz
samba-8a3f5ba7a627c4cacbbc4dc81b3d5921e1c2ecbf.zip
r16863: Pull in a few changes from Guenther, Simo, & Volker
Update the release notes
Diffstat (limited to 'source/libads')
-rw-r--r--source/libads/cldap.c10
-rw-r--r--source/libads/ldap.c9
2 files changed, 12 insertions, 7 deletions
diff --git a/source/libads/cldap.c b/source/libads/cldap.c
index 11c083a56a7..f67372805f3 100644
--- a/source/libads/cldap.c
+++ b/source/libads/cldap.c
@@ -115,10 +115,12 @@ static int send_cldap_netlogon(int sock, const char *domain,
asn1_write_BOOLEAN2(&data, False);
asn1_push_tag(&data, ASN1_CONTEXT(0));
- asn1_push_tag(&data, ASN1_CONTEXT(3));
- asn1_write_OctetString(&data, "DnsDomain", 9);
- asn1_write_OctetString(&data, domain, strlen(domain));
- asn1_pop_tag(&data);
+ if (domain) {
+ asn1_push_tag(&data, ASN1_CONTEXT(3));
+ asn1_write_OctetString(&data, "DnsDomain", 9);
+ asn1_write_OctetString(&data, domain, strlen(domain));
+ asn1_pop_tag(&data);
+ }
asn1_push_tag(&data, ASN1_CONTEXT(3));
asn1_write_OctetString(&data, "Host", 4);
diff --git a/source/libads/ldap.c b/source/libads/ldap.c
index 397d8c02f07..719805f86d0 100644
--- a/source/libads/ldap.c
+++ b/source/libads/ldap.c
@@ -122,14 +122,15 @@ BOOL ads_try_connect(ADS_STRUCT *ads, const char *server )
return False;
}
- DEBUG(5,("ads_try_connect: sending CLDAP request to %s\n", server));
+ DEBUG(5,("ads_try_connect: sending CLDAP request to %s (realm: %s)\n",
+ server, ads->server.realm));
/* this copes with inet_ntoa brokenness */
srv = SMB_STRDUP(server);
ZERO_STRUCT( cldap_reply );
-
+
if ( !ads_cldap_netlogon( srv, ads->server.realm, &cldap_reply ) ) {
DEBUG(3,("ads_try_connect: CLDAP request %s failed.\n", srv));
return False;
@@ -149,18 +150,20 @@ BOOL ads_try_connect(ADS_STRUCT *ads, const char *server )
SAFE_FREE(ads->config.realm);
SAFE_FREE(ads->config.bind_path);
SAFE_FREE(ads->config.ldap_server_name);
+ SAFE_FREE(ads->server.workgroup);
ads->config.ldap_server_name = SMB_STRDUP(cldap_reply.hostname);
strupper_m(cldap_reply.domain);
ads->config.realm = SMB_STRDUP(cldap_reply.domain);
ads->config.bind_path = ads_build_dn(ads->config.realm);
+ ads->server.workgroup = SMB_STRDUP(cldap_reply.netbios_domain);
ads->ldap_port = LDAP_PORT;
ads->ldap_ip = *interpret_addr2(srv);
SAFE_FREE(srv);
/* cache the successful connection */
-
+
saf_store( ads->server.workgroup, server );
return True;