diff options
author | Christian Grothoff <christian@grothoff.org> | 2013-12-20 13:44:03 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2013-12-20 13:44:03 +0000 |
commit | 7637d72d283a77cb85ea336a37157e7bdf43d2e4 (patch) | |
tree | d14502b100ca34ec1429f916ec8e2034e96627cc /src/util/client.c | |
parent | 7a361fb147b80bab6308bb2457fb590f777936c5 (diff) | |
download | gnunet-7637d72d283a77cb85ea336a37157e7bdf43d2e4.tar.gz gnunet-7637d72d283a77cb85ea336a37157e7bdf43d2e4.zip |
-set receiver handler to NULL on timeout
Diffstat (limited to 'src/util/client.c')
-rw-r--r-- | src/util/client.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/util/client.c b/src/util/client.c index 1d1c94402..fbdf881da 100644 --- a/src/util/client.c +++ b/src/util/client.c | |||
@@ -168,7 +168,7 @@ struct GNUNET_CLIENT_Connection | |||
168 | GNUNET_CLIENT_MessageHandler receiver_handler; | 168 | GNUNET_CLIENT_MessageHandler receiver_handler; |
169 | 169 | ||
170 | /** | 170 | /** |
171 | * Closure for receiver_handler. | 171 | * Closure for @e receiver_handler. |
172 | */ | 172 | */ |
173 | void *receiver_handler_cls; | 173 | void *receiver_handler_cls; |
174 | 174 | ||
@@ -545,8 +545,11 @@ receive_helper (void *cls, const void *buf, size_t available, | |||
545 | if (0 == remaining.rel_value_us) | 545 | if (0 == remaining.rel_value_us) |
546 | { | 546 | { |
547 | /* signal timeout! */ | 547 | /* signal timeout! */ |
548 | if (NULL != client->receiver_handler) | 548 | if (NULL != (receive_handler = client->receiver_handler)) |
549 | client->receiver_handler (client->receiver_handler_cls, NULL); | 549 | { |
550 | client->receiver_handler = NULL; | ||
551 | receiver_handler (client->receiver_handler_cls, NULL); | ||
552 | } | ||
550 | return; | 553 | return; |
551 | } | 554 | } |
552 | /* back to receive -- either for more data or to call callback! */ | 555 | /* back to receive -- either for more data or to call callback! */ |