git.samba.org
/
metze
/
samba
/
wip.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
7599fb1
)
TODO s4:libcli/raw: don't schedule idle handlers on a dead connection
author
Stefan Metzmacher
<metze@samba.org>
Sun, 17 Feb 2013 21:39:40 +0000
(22:39 +0100)
committer
Stefan Metzmacher
<metze@samba.org>
Tue, 4 Oct 2016 12:51:56 +0000
(14:51 +0200)
source4/libcli/raw/clitransport.c
patch
|
blob
|
history
diff --git
a/source4/libcli/raw/clitransport.c
b/source4/libcli/raw/clitransport.c
index d0dd1f9dee6a987f9d545e7b7daf95f9902db948..f07b092eb8d42f2d0a111c7ffbcf20ac0999f3bf 100644
(file)
--- 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);
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,
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);
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;
transport->idle.func = idle_func;
transport->idle.private_data = private_data;