diff options
author | Jeremy Allison <jra@samba.org> | 2020-08-24 11:19:29 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2020-08-25 16:21:32 +0000 |
commit | fa6d5bb3c97f124187f326d408e1fed02bf85ba1 (patch) | |
tree | 9d39f71fe81dd395d7363cfcba6647cd848ae1cb /source3 | |
parent | e3d9962ed3bd732f6adb3609984660f1e2be1173 (diff) | |
download | samba-fa6d5bb3c97f124187f326d408e1fed02bf85ba1.tar.gz |
s3: libsmb: Cleanup - make node_status_query_send() use samba_sockaddr internally.
Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: David Mulder <dmulder@samba.org>
Diffstat (limited to 'source3')
-rw-r--r-- | source3/libsmb/namequery.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/source3/libsmb/namequery.c b/source3/libsmb/namequery.c index 0427eb954db..23ee0b210e9 100644 --- a/source3/libsmb/namequery.c +++ b/source3/libsmb/namequery.c @@ -741,7 +741,7 @@ static NTSTATUS nb_trans_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, struct node_status_query_state { struct samba_sockaddr my_addr; - struct sockaddr_storage addr; + struct samba_sockaddr addr; uint8_t buf[1024]; ssize_t buflen; struct packet_struct *packet; @@ -760,7 +760,7 @@ struct tevent_req *node_status_query_send(TALLOC_CTX *mem_ctx, struct node_status_query_state *state; struct packet_struct p; struct nmb_packet *nmb = &p.packet.nmb; - struct sockaddr_in *in_addr; + bool ok; req = tevent_req_create(mem_ctx, &state, struct node_status_query_state); @@ -774,9 +774,13 @@ struct tevent_req *node_status_query_send(TALLOC_CTX *mem_ctx, return tevent_req_post(req, ev); } - state->addr = *addr; - in_addr = (struct sockaddr_in *)(void *)&state->addr; - in_addr->sin_port = htons(NMB_PORT); + ok = sockaddr_storage_to_samba_sockaddr(&state->addr, addr); + if (!ok) { + /* node status must be IPv4 */ + tevent_req_nterror(req, NT_STATUS_INVALID_ADDRESS); + return tevent_req_post(req, ev); + } + state->addr.u.in.sin_port = htons(NMB_PORT); set_socket_addr_v4(&state->my_addr); @@ -809,7 +813,7 @@ struct tevent_req *node_status_query_send(TALLOC_CTX *mem_ctx, subreq = nb_trans_send(state, ev, &state->my_addr.u.ss, - &state->addr, + &state->addr.u.ss, false, state->buf, state->buflen, |