Author: vlendec Date: 2005-10-28 21:08:31 +0000 (Fri, 28 Oct 2005) New Revision: 11381
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=11381 Log: Correctly connect to 445 and 139 after a successful getdcname. Volker Modified: branches/SAMBA_3_0/source/nsswitch/winbindd_cm.c trunk/source/nsswitch/winbindd_cm.c Changeset: Modified: branches/SAMBA_3_0/source/nsswitch/winbindd_cm.c =================================================================== --- branches/SAMBA_3_0/source/nsswitch/winbindd_cm.c 2005-10-28 20:36:27 UTC (rev 11380) +++ branches/SAMBA_3_0/source/nsswitch/winbindd_cm.c 2005-10-28 21:08:31 UTC (rev 11381) @@ -766,10 +766,17 @@ result = NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND; if ((strlen(domain->dcname) > 0) && - NT_STATUS_IS_OK(check_negative_conn_cache(domain->name, - domain->dcname))) { + NT_STATUS_IS_OK(check_negative_conn_cache( + domain->name, domain->dcname)) && + (resolve_name(domain->dcname, &domain->dcaddr.sin_addr, + 0x20))) { int dummy; - if (!open_any_socket_out(&domain->dcaddr, 1, 10000, + struct sockaddr_in addrs[2]; + addrs[0] = domain->dcaddr; + addrs[0].sin_port = htons(445); + addrs[1] = domain->dcaddr; + addrs[1].sin_port = htons(139); + if (!open_any_socket_out(addrs, 2, 10000, &dummy, &fd)) { fd = -1; } Modified: trunk/source/nsswitch/winbindd_cm.c =================================================================== --- trunk/source/nsswitch/winbindd_cm.c 2005-10-28 20:36:27 UTC (rev 11380) +++ trunk/source/nsswitch/winbindd_cm.c 2005-10-28 21:08:31 UTC (rev 11381) @@ -766,10 +766,17 @@ result = NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND; if ((strlen(domain->dcname) > 0) && - NT_STATUS_IS_OK(check_negative_conn_cache(domain->name, - domain->dcname))) { + NT_STATUS_IS_OK(check_negative_conn_cache( + domain->name, domain->dcname)) && + (resolve_name(domain->dcname, &domain->dcaddr.sin_addr, + 0x20))) { int dummy; - if (!open_any_socket_out(&domain->dcaddr, 1, 10000, + struct sockaddr_in addrs[2]; + addrs[0] = domain->dcaddr; + addrs[0].sin_port = htons(445); + addrs[1] = domain->dcaddr; + addrs[1].sin_port = htons(139); + if (!open_any_socket_out(addrs, 2, 10000, &dummy, &fd)) { fd = -1; }