From: Uri Simchoni Date: Thu, 3 Mar 2016 07:18:44 +0000 (+0200) Subject: dsgetdcname: return an IP address on rediscovery X-Git-Tag: samba-4.3.12~137 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fb45575e4d14e896c4b171e181b8b04cb091f1d3;p=thirdparty%2Fsamba.git dsgetdcname: return an IP address on rediscovery When dsgetdcname return its result based on discovery process (instead of retrieving cached value), always return the found server's IP address in dc_address field, rather than its netbios name. BUG: https://bugzilla.samba.org/show_bug.cgi?id=11769 Signed-off-by: Uri Simchoni Reviewed-by: Jeremy Allison (cherry picked from commit ef84f4c018424b1fcc232a4780dc2c0435701d86) --- diff --git a/source3/libsmb/dsgetdcname.c b/source3/libsmb/dsgetdcname.c index ac3bfd6c112..673e10b427a 100644 --- a/source3/libsmb/dsgetdcname.c +++ b/source3/libsmb/dsgetdcname.c @@ -800,14 +800,14 @@ static NTSTATUS make_dc_info_from_cldap_reply(TALLOC_CTX *mem_ctx, print_sockaddr(addr, sizeof(addr), ss); dc_address = addr; dc_address_type = DS_ADDRESS_TYPE_INET; - } - - if (!ss && r->sockaddr.pdc_ip) { - dc_address = r->sockaddr.pdc_ip; - dc_address_type = DS_ADDRESS_TYPE_INET; } else { - dc_address = r->pdc_name; - dc_address_type = DS_ADDRESS_TYPE_NETBIOS; + if (r->sockaddr.pdc_ip) { + dc_address = r->sockaddr.pdc_ip; + dc_address_type = DS_ADDRESS_TYPE_INET; + } else { + dc_address = r->pdc_name; + dc_address_type = DS_ADDRESS_TYPE_NETBIOS; + } } map_dc_and_domain_names(flags,