libnbt: Add an explicit "mem_ctx" to name_request_send
authorVolker Lendecke <vl@samba.org>
Sun, 4 Feb 2018 12:16:14 +0000 (12:16 +0000)
committerStefan Metzmacher <metze@samba.org>
Fri, 13 Apr 2018 16:14:41 +0000 (18:14 +0200)
Implicitly hanging requests off nbtsock is too inflexible for future use

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
libcli/nbt/namequery.c
libcli/nbt/namerefresh.c
libcli/nbt/nameregister.c
libcli/nbt/namerelease.c
libcli/nbt/nbt_proto.h
libcli/nbt/nbtsocket.c

index e344235faa8fd8f8ec470c3b854a7b96317375c0..49ab10c3c02c7899546ad3a2c9e03f72c3b35472 100644 (file)
@@ -56,7 +56,7 @@ _PUBLIC_ struct nbt_name_request *nbt_name_query_send(struct nbt_name_socket *nb
        dest = socket_address_from_strings(packet, nbtsock->sock->backend_name,
                                           io->in.dest_addr, io->in.dest_port);
        if (dest == NULL) goto failed;
-       req = nbt_name_request_send(nbtsock, dest, packet,
+       req = nbt_name_request_send(nbtsock, nbtsock, dest, packet,
                                    io->in.timeout, io->in.retries, false);
        if (req == NULL) goto failed;
 
@@ -160,7 +160,7 @@ _PUBLIC_ struct nbt_name_request *nbt_name_status_send(struct nbt_name_socket *n
        dest = socket_address_from_strings(packet, nbtsock->sock->backend_name,
                                           io->in.dest_addr, io->in.dest_port);
        if (dest == NULL) goto failed;
-       req = nbt_name_request_send(nbtsock, dest, packet,
+       req = nbt_name_request_send(nbtsock, nbtsock, dest, packet,
                                    io->in.timeout, io->in.retries, false);
        if (req == NULL) goto failed;
 
index b525356c7470ce05f6ca04d2528796e4f9336065..b3aef76a5c6203f14ecc9187f7b5d7e470fd2c43 100644 (file)
@@ -72,7 +72,7 @@ struct nbt_name_request *nbt_name_refresh_send(struct nbt_name_socket *nbtsock,
                                           nbtsock->sock->backend_name,
                                           io->in.dest_addr, io->in.dest_port);
        if (dest == NULL) goto failed;
-       req = nbt_name_request_send(nbtsock, dest, packet,
+       req = nbt_name_request_send(nbtsock, nbtsock, dest, packet,
                                    io->in.timeout, io->in.retries, false);
        if (req == NULL) goto failed;
 
index ff5418c85e570e57e7812ccf349e394271d2590a..8e8271d5731579ff2eefa6783efa4d69821d99d6 100644 (file)
@@ -80,7 +80,7 @@ struct nbt_name_request *nbt_name_register_send(struct nbt_name_socket *nbtsock,
        dest = socket_address_from_strings(packet, nbtsock->sock->backend_name,
                                           io->in.dest_addr, io->in.dest_port);
        if (dest == NULL) goto failed;
-       req = nbt_name_request_send(nbtsock, dest, packet,
+       req = nbt_name_request_send(nbtsock, nbtsock, dest, packet,
                                    io->in.timeout, io->in.retries, false);
        if (req == NULL) goto failed;
 
index 8f4698169d803e25ef4b310f0b91f978d5e9d5ed..68c8252078b0c936eff59218d775c1416f004ac2 100644 (file)
@@ -69,7 +69,7 @@ _PUBLIC_ struct nbt_name_request *nbt_name_release_send(struct nbt_name_socket *
        dest = socket_address_from_strings(packet, nbtsock->sock->backend_name,
                                           io->in.dest_addr, io->in.dest_port);
        if (dest == NULL) goto failed;
-       req = nbt_name_request_send(nbtsock, dest, packet,
+       req = nbt_name_request_send(nbtsock, nbtsock, dest, packet,
                                    io->in.timeout, io->in.retries, false);
        if (req == NULL) goto failed;
 
index 281ce25a8646c936bd811cb3aaee2c029620fb6d..e6ee46bab86c5c3f53c89820bd6f50a1c94ee0ea 100644 (file)
@@ -33,7 +33,8 @@
 
 /* The following definitions come from ../libcli/nbt/nbtsocket.c  */
 
-struct nbt_name_request *nbt_name_request_send(struct nbt_name_socket *nbtsock,
+struct nbt_name_request *nbt_name_request_send(TALLOC_CTX *mem_ctx,
+                                              struct nbt_name_socket *nbtsock,
                                               struct socket_address *dest,
                                               struct nbt_name_packet *request,
                                               int timeout, int retries,
index 711e39cbdc5a08c7714eda137dd8a2f5eb8d3b25..94ec4627d801bd1e371ff0821ddd385646026075 100644 (file)
@@ -367,7 +367,8 @@ failed:
 /*
   send off a nbt name request
 */
-struct nbt_name_request *nbt_name_request_send(struct nbt_name_socket *nbtsock,
+struct nbt_name_request *nbt_name_request_send(TALLOC_CTX *mem_ctx,
+                                              struct nbt_name_socket *nbtsock,
                                               struct socket_address *dest,
                                               struct nbt_name_packet *request,
                                               int timeout, int retries,
@@ -377,7 +378,7 @@ struct nbt_name_request *nbt_name_request_send(struct nbt_name_socket *nbtsock,
        int id;
        enum ndr_err_code ndr_err;
 
-       req = talloc_zero(nbtsock, struct nbt_name_request);
+       req = talloc_zero(mem_ctx, struct nbt_name_request);
        if (req == NULL) goto failed;
 
        req->nbtsock                = nbtsock;