diff options
author | Gerald Carter <jerry@samba.org> | 2006-07-07 12:29:10 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2006-07-07 12:29:10 +0000 |
commit | 8a3f5ba7a627c4cacbbc4dc81b3d5921e1c2ecbf (patch) | |
tree | c8cec66ca25f43958a9bac13f7949a0e71400352 /source/libads | |
parent | d124769a4cfc8713f7eeb299a6db95e522ac33b3 (diff) | |
download | samba-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.c | 10 | ||||
-rw-r--r-- | source/libads/ldap.c | 9 |
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; |