do not dequeue here
authorChristian Grothoff <christian@grothoff.org>
Tue, 11 Oct 2011 13:14:49 +0000 (13:14 +0000)
committerChristian Grothoff <christian@grothoff.org>
Tue, 11 Oct 2011 13:14:49 +0000 (13:14 +0000)
src/core/gnunet-service-core_clients.c
src/core/gnunet-service-core_sessions.c

index 38bea0f42ebd4f8d08fbcbcd3d613179d53e4151..1216988b334201db545924ab0e50a7ee3d432f9e 100644 (file)
@@ -594,7 +594,10 @@ void
 GSC_CLIENTS_reject_request (struct GSC_ClientActiveRequest *car)
 {
   GNUNET_assert (GNUNET_YES ==
-                destroy_active_client_request (NULL, &car->target.hashPubKey, car));  
+                GNUNET_CONTAINER_multihashmap_remove (car->client_handle->requests,
+                                                      &car->target.hashPubKey,
+                                                      car));
+  GNUNET_free (car);
 }
 
 
index cbbc1b850db744548206fd8f92707c4fe91efcda..0e555978657ee648c19f8194b2320815d22900ef 100644 (file)
@@ -174,9 +174,6 @@ GSC_SESSIONS_end (const struct GNUNET_PeerIdentity *pid)
     GNUNET_SCHEDULER_cancel (session->cork_task);
     session->cork_task = GNUNET_SCHEDULER_NO_TASK;
   }
-  GNUNET_assert (GNUNET_YES ==
-                 GNUNET_CONTAINER_multihashmap_remove (sessions,
-                                                       &session->peer.hashPubKey, session));
   while (NULL != (car = session->active_client_request_head))
   {
     GNUNET_CONTAINER_DLL_remove (session->active_client_request_head,
@@ -184,6 +181,9 @@ GSC_SESSIONS_end (const struct GNUNET_PeerIdentity *pid)
                                 car);
     GSC_CLIENTS_reject_request (car);
   }
+  GNUNET_assert (GNUNET_YES ==
+                 GNUNET_CONTAINER_multihashmap_remove (sessions,
+                                                       &session->peer.hashPubKey, session));
   GNUNET_STATISTICS_set (GSC_stats, 
                         gettext_noop ("# established sessions"),
                         GNUNET_CONTAINER_multihashmap_size (sessions),