summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2020-08-24 11:19:29 -0700
committerJeremy Allison <jra@samba.org>2020-08-25 16:21:32 +0000
commitfa6d5bb3c97f124187f326d408e1fed02bf85ba1 (patch)
tree9d39f71fe81dd395d7363cfcba6647cd848ae1cb /source3
parente3d9962ed3bd732f6adb3609984660f1e2be1173 (diff)
downloadsamba-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.c16
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,