diff options
author | Andrew Tridgell <tridge@samba.org> | 2005-07-26 07:23:11 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:30:04 -0500 |
commit | 528bb470bd138df2de742be696bb31191f9da492 (patch) | |
tree | d3263aaea9a21d4ebeda710c4c0e68e7ae1ab480 /source4/libcli | |
parent | 41b6e94665dd1586ba483ee4a98b059c90531f3c (diff) | |
download | samba-528bb470bd138df2de742be696bb31191f9da492.tar.gz samba-528bb470bd138df2de742be696bb31191f9da492.tar.bz2 samba-528bb470bd138df2de742be696bb31191f9da492.zip |
r8776: fixed SMB connections for IP addresses, even when name resolve order
doesn't include 'host'
(This used to be commit 77a1e3076a8d5c711fc96a69dd1a58c00d1f9604)
Diffstat (limited to 'source4/libcli')
-rw-r--r-- | source4/libcli/composite/connect.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/source4/libcli/composite/connect.c b/source4/libcli/composite/connect.c index b1d2eb2847..d6d87380ec 100644 --- a/source4/libcli/composite/connect.c +++ b/source4/libcli/composite/connect.c @@ -341,17 +341,24 @@ struct composite_context *smb_composite_connect_send(struct smb_composite_connec if (state->sock == NULL) goto failed; state->io = io; - state->stage = CONNECT_RESOLVE; c->state = SMBCLI_REQUEST_SEND; c->event_ctx = talloc_reference(c, state->sock->event.ctx); c->private = state; - make_nbt_name_server(&name, io->in.dest_host); + /* if the destination is an IP address, then skip the name resolution part */ + if (is_ipaddress(io->in.dest_host)) { + state->stage = CONNECT_SOCKET; + state->creq = smbcli_sock_connect_send(state->sock, io->in.dest_host, + state->io->in.port, + io->in.dest_host); + } else { + state->stage = CONNECT_RESOLVE; + make_nbt_name_server(&name, io->in.dest_host); + state->creq = resolve_name_send(&name, c->event_ctx, lp_name_resolve_order()); + } - state->creq = resolve_name_send(&name, c->event_ctx, lp_name_resolve_order()); if (state->creq == NULL) goto failed; - state->creq->async.private = c; state->creq->async.fn = composite_handler; |