[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r18322 - gnunet/src/core
From: |
gnunet |
Subject: |
[GNUnet-SVN] r18322 - gnunet/src/core |
Date: |
Fri, 25 Nov 2011 17:10:58 +0100 |
Author: grothoff
Date: 2011-11-25 17:10:58 +0100 (Fri, 25 Nov 2011)
New Revision: 18322
Modified:
gnunet/src/core/gnunet-service-core_clients.c
gnunet/src/core/gnunet-service-core_sessions.c
Log:
fixing mantis 1961
Modified: gnunet/src/core/gnunet-service-core_clients.c
===================================================================
--- gnunet/src/core/gnunet-service-core_clients.c 2011-11-25 16:04:36 UTC
(rev 18321)
+++ gnunet/src/core/gnunet-service-core_clients.c 2011-11-25 16:10:58 UTC
(rev 18322)
@@ -606,15 +606,24 @@
struct SendMessageReady smr;
c = car->client_handle;
+ if (GNUNET_YES !=
+ GNUNET_CONTAINER_multihashmap_contains (c->connectmap,
+ &car->
+ target.hashPubKey))
+ {
+ /* connection has gone down since, drop request */
+ GNUNET_assert (0 !=
+ memcmp (&car->target, &GSC_my_identity,
+ sizeof (struct GNUNET_PeerIdentity)));
+ GSC_SESSIONS_dequeue_request (car);
+ GSC_CLIENTS_reject_request (car);
+ return;
+ }
smr.header.size = htons (sizeof (struct SendMessageReady));
smr.header.type = htons (GNUNET_MESSAGE_TYPE_CORE_SEND_READY);
smr.size = htons (car->msize);
smr.smr_id = car->smr_id;
smr.peer = car->target;
- GNUNET_assert (GNUNET_YES ==
- GNUNET_CONTAINER_multihashmap_contains (c->connectmap,
- &car->
- target.hashPubKey));
send_to_client (c, &smr.header, GNUNET_NO);
}
Modified: gnunet/src/core/gnunet-service-core_sessions.c
===================================================================
--- gnunet/src/core/gnunet-service-core_sessions.c 2011-11-25 16:04:36 UTC
(rev 18321)
+++ gnunet/src/core/gnunet-service-core_sessions.c 2011-11-25 16:10:58 UTC
(rev 18322)
@@ -432,12 +432,15 @@
solicit_messages (struct Session *session)
{
struct GSC_ClientActiveRequest *car;
+ struct GSC_ClientActiveRequest *nxt;
size_t so_size;
discard_expired_requests (session);
so_size = 0;
- for (car = session->active_client_request_head; NULL != car; car = car->next)
+ nxt = session->active_client_request_head;
+ while (NULL != (car = nxt) )
{
+ nxt = car->next;
if (so_size + car->msize > GNUNET_CONSTANTS_MAX_ENCRYPTED_MESSAGE_SIZE)
break;
so_size += car->msize;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r18322 - gnunet/src/core,
gnunet <=