diff options
-rw-r--r-- | libcli/nbt/libnbt.h | 2 | ||||
-rw-r--r-- | libcli/nbt/nbtsocket.c | 3 | ||||
-rw-r--r-- | libcli/nbt/pynbt.c | 3 | ||||
-rw-r--r-- | libcli/nbt/tools/nmblookup.c | 4 |
4 files changed, 9 insertions, 3 deletions
diff --git a/libcli/nbt/libnbt.h b/libcli/nbt/libnbt.h index 4ef4e9d60d..e03352d7cf 100644 --- a/libcli/nbt/libnbt.h +++ b/libcli/nbt/libnbt.h @@ -122,6 +122,8 @@ struct nbt_name_socket { struct socket_address *); void *private_data; } unexpected; + + uint32_t wack_timeout; }; diff --git a/libcli/nbt/nbtsocket.c b/libcli/nbt/nbtsocket.c index dbbdc1b02a..65ed872533 100644 --- a/libcli/nbt/nbtsocket.c +++ b/libcli/nbt/nbtsocket.c @@ -247,7 +247,7 @@ static void nbt_name_socket_recv(struct nbt_name_socket *nbtsock) req->received_wack = true; /* although there can be a timeout in the packet, w2k3 screws it up, so better to set it ourselves */ - req->timeout = lp_parm_int(global_loadparm, NULL, "nbt", "wack_timeout", 30); + req->timeout = nbtsock->wack_timeout; req->te = event_add_timed(req->nbtsock->event_ctx, req, timeval_current_ofs(req->timeout, 0), nbt_name_socket_timeout, req); @@ -334,6 +334,7 @@ _PUBLIC_ struct nbt_name_socket *nbt_name_socket_init(TALLOC_CTX *mem_ctx, nbtsock->send_queue = NULL; nbtsock->num_pending = 0; + nbtsock->wack_timeout = 30; nbtsock->incoming.handler = NULL; nbtsock->unexpected.handler = NULL; nbtsock->iconv_convenience = iconv_convenience; diff --git a/libcli/nbt/pynbt.c b/libcli/nbt/pynbt.c index 9179245e88..6750ad7b4e 100644 --- a/libcli/nbt/pynbt.c +++ b/libcli/nbt/pynbt.c @@ -48,7 +48,8 @@ static PyObject *py_nbt_node_init(PyTypeObject *self, PyObject *args, PyObject * return NULL; ev = s4_event_context_init(ret->mem_ctx); - ret->socket = nbt_name_socket_init(ret->mem_ctx, ev, py_iconv_convenience(ret->mem_ctx)); + ret->socket = nbt_name_socket_init(ret->mem_ctx, ev, + py_iconv_convenience(ret->mem_ctx)); return (PyObject *)ret; } diff --git a/libcli/nbt/tools/nmblookup.c b/libcli/nbt/tools/nmblookup.c index 0d98cb99de..94768f7cb6 100644 --- a/libcli/nbt/tools/nmblookup.c +++ b/libcli/nbt/tools/nmblookup.c @@ -212,7 +212,9 @@ static bool process_one(struct loadparm_context *lp_ctx, struct event_context *e node_name = talloc_strdup(tmp_ctx, name); } - nbtsock = nbt_name_socket_init(tmp_ctx, ev, lp_iconv_convenience(lp_ctx)); + nbtsock = nbt_name_socket_init(tmp_ctx, ev, lp_iconv_convenience(lp_ctx), + lp_parm_int(lp_ctx, NULL, "nbt", "wack_timeout", 30) + ); if (options.root_port) { all_zero_addr = socket_address_from_strings(tmp_ctx, nbtsock->sock->backend_name, |