fix
authorChristian Grothoff <christian@grothoff.org>
Thu, 7 Jul 2011 09:30:02 +0000 (09:30 +0000)
committerChristian Grothoff <christian@grothoff.org>
Thu, 7 Jul 2011 09:30:02 +0000 (09:30 +0000)
src/util/client.c

index b57b7bb4a3660b6fca9818092c5b89414eeba9ef..629e8c8729d81cdadada2d2038eff7665c42cdbf 100644 (file)
@@ -426,27 +426,27 @@ GNUNET_CLIENT_disconnect (struct GNUNET_CLIENT_Connection *sock,
       GNUNET_CONNECTION_receive_cancel (sock->sock);
       sock->in_receive = GNUNET_NO;
     }
+  if (sock->th != NULL)
+    {
+      GNUNET_CLIENT_notify_transmit_ready_cancel (sock->th);
+      sock->th = NULL;
+    }
   if (NULL != sock->sock)
     {
       GNUNET_CONNECTION_destroy (sock->sock, finish_pending_write);
       sock->sock = NULL;
     }
+  if (sock->receive_task != GNUNET_SCHEDULER_NO_TASK)
+    {
+      GNUNET_SCHEDULER_cancel (sock->receive_task);
+      sock->receive_task = GNUNET_SCHEDULER_NO_TASK;
+    }
   if (sock->tag != NULL)
     {
       GNUNET_free (sock->tag);
       sock->tag = NULL;
     }
   sock->receiver_handler = NULL;
-  if (sock->th != NULL)
-    {
-      GNUNET_CLIENT_notify_transmit_ready_cancel (sock->th);
-      sock->th = NULL;
-    }
-  if (sock->receive_task != GNUNET_SCHEDULER_NO_TASK)
-    {
-      GNUNET_SCHEDULER_cancel (sock->receive_task);
-      sock->receive_task = GNUNET_SCHEDULER_NO_TASK;
-    }
   GNUNET_array_grow (sock->received_buf, sock->received_size, 0);
   GNUNET_free (sock->service_name);
   GNUNET_free (sock);