From a1674c252f97d7dae2035ed0db388882a4c4bd2f Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Tue, 11 Oct 2011 11:35:20 +0000 Subject: fixes --- src/core/gnunet-service-core_sessions.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/core') diff --git a/src/core/gnunet-service-core_sessions.c b/src/core/gnunet-service-core_sessions.c index 360b558e4..ab83532c0 100644 --- a/src/core/gnunet-service-core_sessions.c +++ b/src/core/gnunet-service-core_sessions.c @@ -484,12 +484,15 @@ try_transmission (struct Session *session) size_t used; used = 0; - pos = session->sme_head; - while ( (NULL != pos) && + while ( (NULL != (pos = session->sme_head)) && (used + pos->size <= msize) ) { memcpy (&pbuf[used], &pos[1], pos->size); used += pos->size; + GNUNET_CONTAINER_DLL_remove (session->sme_head, + session->sme_tail, + pos); + GNUNET_free (pos); } /* compute average payload size */ total_bytes += used; @@ -737,7 +740,10 @@ GSC_SESSIONS_add_to_typemap (const struct GNUNET_PeerIdentity *peer, struct Session *session; struct GSC_TypeMap *nmap; + if (0 == memcmp (peer, &GSC_my_identity, sizeof (struct GNUNET_PeerIdentity))) + return; session = find_session (peer); + GNUNET_assert (NULL != session); if (GNUNET_YES == GSC_TYPEMAP_test_match (session->tmap, &type, 1)) -- cgit v1.2.3