summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libcli/nbt/libnbt.h2
-rw-r--r--libcli/nbt/nbtsocket.c3
-rw-r--r--libcli/nbt/pynbt.c3
-rw-r--r--libcli/nbt/tools/nmblookup.c4
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,