summaryrefslogtreecommitdiffstats
path: root/source/nsswitch/winbindd_cm.c
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>2005-10-28 21:08:31 +0000
committerVolker Lendecke <vlendec@samba.org>2005-10-28 21:08:31 +0000
commit2688309a22a96a66a7f1b25e12a0da24073c3185 (patch)
treec19ea0033a80beda09729a43185c3a7618a03825 /source/nsswitch/winbindd_cm.c
parent0ced07ff9daeb7325da44e97a5f03a02d1d07b50 (diff)
downloadsamba-2688309a22a96a66a7f1b25e12a0da24073c3185.tar.gz
samba-2688309a22a96a66a7f1b25e12a0da24073c3185.tar.xz
samba-2688309a22a96a66a7f1b25e12a0da24073c3185.zip
r11381: Correctly connect to 445 and 139 after a successful getdcname.
Volker
Diffstat (limited to 'source/nsswitch/winbindd_cm.c')
-rw-r--r--source/nsswitch/winbindd_cm.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/source/nsswitch/winbindd_cm.c b/source/nsswitch/winbindd_cm.c
index e38d4cc426e..baef9c71ab7 100644
--- a/source/nsswitch/winbindd_cm.c
+++ b/source/nsswitch/winbindd_cm.c
@@ -766,10 +766,17 @@ static NTSTATUS cm_open_connection(struct winbindd_domain *domain,
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;
}