diff options
author | Stefan Metzmacher <metze@samba.org> | 2008-12-17 17:25:40 +0100 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2008-12-17 20:28:40 +0100 |
commit | 116fbd6b5a82a2e9f2440aae4ad56cf8a457c85b (patch) | |
tree | 713fd94f73e03ab088206a6af1b9b81ad32832a9 /source4/libcli/resolve/dns_ex.c | |
parent | 7d0e78a52cfed797100696725611655227cf01ac (diff) | |
download | samba-116fbd6b5a82a2e9f2440aae4ad56cf8a457c85b.tar.gz samba-116fbd6b5a82a2e9f2440aae4ad56cf8a457c85b.tar.bz2 samba-116fbd6b5a82a2e9f2440aae4ad56cf8a457c85b.zip |
s4:libcli/resolve: specify the port for the resulting socket_addresses
metze
Diffstat (limited to 'source4/libcli/resolve/dns_ex.c')
-rw-r--r-- | source4/libcli/resolve/dns_ex.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/source4/libcli/resolve/dns_ex.c b/source4/libcli/resolve/dns_ex.c index cfe4531654..5f08201978 100644 --- a/source4/libcli/resolve/dns_ex.c +++ b/source4/libcli/resolve/dns_ex.c @@ -44,6 +44,7 @@ struct dns_ex_state { bool do_fallback; bool do_srv; uint32_t flags; + uint16_t port; struct nbt_name name; struct socket_address **addrs; char **names; @@ -235,7 +236,7 @@ static void run_child_dns_lookup(struct dns_ex_state *state, int fd) addrs = talloc_asprintf_append_buffer(addrs, "%s%s:%u/%s", first?"":",", inet_ntoa(*addrs_rr[i]->u.a), - srv_rr[i]?srv_rr[i]->u.srv->port:0, + state->port, addrs_rr[i]->domain); if (!addrs) { goto done; @@ -294,7 +295,8 @@ static void run_child_getaddrinfo(struct dns_ex_state *state, int fd) addrs = talloc_asprintf_append_buffer(addrs, "%s%s:%u/%s", first?"":",", inet_ntoa(in->sin_addr), - 0, state->name.name); + state->port, + state->name.name); if (!addrs) { goto done; } @@ -400,7 +402,8 @@ static void pipe_handler(struct event_context *ev, struct fd_event *fde, } port = strtoul(p, NULL, 10); if (port > UINT16_MAX) { - port = 0; + composite_error(c, NT_STATUS_OBJECT_NAME_NOT_FOUND); + return; } state->addrs[i] = socket_address_from_strings(state->addrs, "ipv4", @@ -424,6 +427,7 @@ struct composite_context *resolve_name_dns_ex_send(TALLOC_CTX *mem_ctx, struct event_context *event_ctx, void *privdata, uint32_t flags, + uint16_t port, struct nbt_name *name, bool do_getaddrinfo, bool do_fallback, @@ -457,6 +461,7 @@ struct composite_context *resolve_name_dns_ex_send(TALLOC_CTX *mem_ctx, state->do_fallback = do_fallback; state->do_srv = do_srv; state->flags = flags; + state->port = port; state->child_fd = fd[0]; state->event_ctx = c->event_ctx; |