aboutsummaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2011-11-25 16:10:58 +0000
committerChristian Grothoff <christian@grothoff.org>2011-11-25 16:10:58 +0000
commit4101d1d0fc562994b2c96516c252902393002bfb (patch)
tree4bcc43f8000cd8e06bf1ac4ff5ca8dc34ef53451 /src/core
parentc1c2b82310ea6f9e7cee367bf1202aae82df6d60 (diff)
downloadgnunet-4101d1d0fc562994b2c96516c252902393002bfb.tar.gz
gnunet-4101d1d0fc562994b2c96516c252902393002bfb.zip
fixing mantis 1961
Diffstat (limited to 'src/core')
-rw-r--r--src/core/gnunet-service-core_clients.c17
-rw-r--r--src/core/gnunet-service-core_sessions.c5
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
432solicit_messages (struct Session *session) 432solicit_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;