From: Stefan Metzmacher Date: Sun, 17 Feb 2013 21:39:40 +0000 (+0100) Subject: TODO s4:libcli/raw: don't schedule idle handlers on a dead connection X-Git-Url: http://git.samba.org/?p=metze%2Fsamba%2Fwip.git;a=commitdiff_plain;h=3d57010659ef8af2f87512631d04dee35a603e25 TODO s4:libcli/raw: don't schedule idle handlers on a dead connection --- diff --git a/source4/libcli/raw/clitransport.c b/source4/libcli/raw/clitransport.c index d0dd1f9dee6a..f07b092eb8d4 100644 --- a/source4/libcli/raw/clitransport.c +++ b/source4/libcli/raw/clitransport.c @@ -137,6 +137,14 @@ static void idle_handler(struct tevent_context *ev, transport->idle.func(transport, transport->idle.private_data); + if (transport->idle.func == NULL) { + return; + } + + if (!smbXcli_conn_is_connected(transport->conn)) { + return; + } + next = timeval_current_ofs_usec(transport->idle.period); transport->idle.te = tevent_add_timer(transport->ev, @@ -156,6 +164,15 @@ _PUBLIC_ void smbcli_transport_idle_handler(struct smbcli_transport *transport, void *private_data) { TALLOC_FREE(transport->idle.te); + ZERO_STRUCT(transport->idle); + + if (idle_func == NULL) { + return; + } + + if (!smbXcli_conn_is_connected(transport->conn)) { + return; + } transport->idle.func = idle_func; transport->idle.private_data = private_data;