diff options
author | Christian Grothoff <christian@grothoff.org> | 2011-11-25 16:10:58 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2011-11-25 16:10:58 +0000 |
commit | 4101d1d0fc562994b2c96516c252902393002bfb (patch) | |
tree | 4bcc43f8000cd8e06bf1ac4ff5ca8dc34ef53451 /src | |
parent | c1c2b82310ea6f9e7cee367bf1202aae82df6d60 (diff) | |
download | gnunet-4101d1d0fc562994b2c96516c252902393002bfb.tar.gz gnunet-4101d1d0fc562994b2c96516c252902393002bfb.zip |
fixing mantis 1961
Diffstat (limited to 'src')
-rw-r--r-- | src/core/gnunet-service-core_clients.c | 17 | ||||
-rw-r--r-- | src/core/gnunet-service-core_sessions.c | 5 |
2 files changed, 17 insertions, 5 deletions
diff --git a/src/core/gnunet-service-core_clients.c b/src/core/gnunet-service-core_clients.c index 98a55bef9..5d06af640 100644 --- a/src/core/gnunet-service-core_clients.c +++ b/src/core/gnunet-service-core_clients.c | |||
@@ -606,15 +606,24 @@ GSC_CLIENTS_solicit_request (struct GSC_ClientActiveRequest *car) | |||
606 | struct SendMessageReady smr; | 606 | struct SendMessageReady smr; |
607 | 607 | ||
608 | c = car->client_handle; | 608 | c = car->client_handle; |
609 | if (GNUNET_YES != | ||
610 | GNUNET_CONTAINER_multihashmap_contains (c->connectmap, | ||
611 | &car-> | ||
612 | target.hashPubKey)) | ||
613 | { | ||
614 | /* connection has gone down since, drop request */ | ||
615 | GNUNET_assert (0 != | ||
616 | memcmp (&car->target, &GSC_my_identity, | ||
617 | sizeof (struct GNUNET_PeerIdentity))); | ||
618 | GSC_SESSIONS_dequeue_request (car); | ||
619 | GSC_CLIENTS_reject_request (car); | ||
620 | return; | ||
621 | } | ||
609 | smr.header.size = htons (sizeof (struct SendMessageReady)); | 622 | smr.header.size = htons (sizeof (struct SendMessageReady)); |
610 | smr.header.type = htons (GNUNET_MESSAGE_TYPE_CORE_SEND_READY); | 623 | smr.header.type = htons (GNUNET_MESSAGE_TYPE_CORE_SEND_READY); |
611 | smr.size = htons (car->msize); | 624 | smr.size = htons (car->msize); |
612 | smr.smr_id = car->smr_id; | 625 | smr.smr_id = car->smr_id; |
613 | smr.peer = car->target; | 626 | smr.peer = car->target; |
614 | GNUNET_assert (GNUNET_YES == | ||
615 | GNUNET_CONTAINER_multihashmap_contains (c->connectmap, | ||
616 | &car-> | ||
617 | target.hashPubKey)); | ||
618 | send_to_client (c, &smr.header, GNUNET_NO); | 627 | send_to_client (c, &smr.header, GNUNET_NO); |
619 | } | 628 | } |
620 | 629 | ||
diff --git a/src/core/gnunet-service-core_sessions.c b/src/core/gnunet-service-core_sessions.c index 51bd03279..219272809 100644 --- a/src/core/gnunet-service-core_sessions.c +++ b/src/core/gnunet-service-core_sessions.c | |||
@@ -432,12 +432,15 @@ static void | |||
432 | solicit_messages (struct Session *session) | 432 | solicit_messages (struct Session *session) |
433 | { | 433 | { |
434 | struct GSC_ClientActiveRequest *car; | 434 | struct GSC_ClientActiveRequest *car; |
435 | struct GSC_ClientActiveRequest *nxt; | ||
435 | size_t so_size; | 436 | size_t so_size; |
436 | 437 | ||
437 | discard_expired_requests (session); | 438 | discard_expired_requests (session); |
438 | so_size = 0; | 439 | so_size = 0; |
439 | for (car = session->active_client_request_head; NULL != car; car = car->next) | 440 | nxt = session->active_client_request_head; |
441 | while (NULL != (car = nxt) ) | ||
440 | { | 442 | { |
443 | nxt = car->next; | ||
441 | if (so_size + car->msize > GNUNET_CONSTANTS_MAX_ENCRYPTED_MESSAGE_SIZE) | 444 | if (so_size + car->msize > GNUNET_CONSTANTS_MAX_ENCRYPTED_MESSAGE_SIZE) |
442 | break; | 445 | break; |
443 | so_size += car->msize; | 446 | so_size += car->msize; |