diff options
author | Christian Grothoff <christian@grothoff.org> | 2011-10-24 08:39:44 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2011-10-24 08:39:44 +0000 |
commit | 6063cbea42d6c8a5de4d3b98d47ab60d7cb3311a (patch) | |
tree | 6d0f9a36cd205996a8019db29f4fe43fc56ff23e /src/core/gnunet-service-core_clients.c | |
parent | 6cb165524b50f52824c76a08bd3f1101b48dad21 (diff) | |
download | gnunet-6063cbea42d6c8a5de4d3b98d47ab60d7cb3311a.tar.gz gnunet-6063cbea42d6c8a5de4d3b98d47ab60d7cb3311a.zip |
fixing 1845
Diffstat (limited to 'src/core/gnunet-service-core_clients.c')
-rw-r--r-- | src/core/gnunet-service-core_clients.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/core/gnunet-service-core_clients.c b/src/core/gnunet-service-core_clients.c index 8f77c62a6..22201514a 100644 --- a/src/core/gnunet-service-core_clients.c +++ b/src/core/gnunet-service-core_clients.c | |||
@@ -443,9 +443,16 @@ handle_client_send (void *cls, struct GNUNET_SERVER_Client *client, | |||
443 | tc.car = GNUNET_CONTAINER_multihashmap_get (c->requests, &sm->peer.hashPubKey); | 443 | tc.car = GNUNET_CONTAINER_multihashmap_get (c->requests, &sm->peer.hashPubKey); |
444 | if (NULL == tc.car) | 444 | if (NULL == tc.car) |
445 | { | 445 | { |
446 | /* client did not request transmission first! */ | 446 | /* Must have been that we first approved the request, then got disconnected |
447 | GNUNET_break (0); | 447 | (which triggered removal of the 'car') and now the client gives us a message |
448 | GNUNET_SERVER_receive_done (client, GNUNET_SYSERR); | 448 | just *before* the client learns about the disconnect. Theoretically, we |
449 | might also now be *again* connected. So this can happen (but should be | ||
450 | rare). If it does happen, the message is discarded. */ | ||
451 | GNUNET_STATISTICS_update (GSC_stats, | ||
452 | gettext_noop ("# messages discarded (session disconnected)"), | ||
453 | 1, | ||
454 | GNUNET_NO); | ||
455 | GNUNET_SERVER_receive_done (client, GNUNET_OK); | ||
449 | return; | 456 | return; |
450 | } | 457 | } |
451 | GNUNET_assert (GNUNET_YES == | 458 | GNUNET_assert (GNUNET_YES == |