-doxygen
[oweals/gnunet.git] / src / transport / transport_api_blacklist.c
index b1c536a9d66541c5d71dc7c4db4edd1d5beaddad..dcd1ae78180683ccca1e4d46e95bc41a552c9828 100644 (file)
  * @author Christian Grothoff
  */
 #include "platform.h"
-#include "gnunet_client_lib.h"
+#include "gnunet_util_lib.h"
 #include "gnunet_arm_service.h"
 #include "gnunet_hello_lib.h"
 #include "gnunet_protocols.h"
-#include "gnunet_server_lib.h"
-#include "gnunet_time_lib.h"
 #include "gnunet_transport_service.h"
 #include "transport.h"
 
@@ -145,6 +143,7 @@ transmit_blacklist_init (void *cls, size_t size, void *buf)
   struct GNUNET_TRANSPORT_Blacklist *br = cls;
   struct GNUNET_MessageHeader req;
 
+  br->th = NULL;
   if (buf == NULL)
   {
     reconnect (br);
@@ -153,7 +152,6 @@ transmit_blacklist_init (void *cls, size_t size, void *buf)
   req.size = htons (sizeof (struct GNUNET_MessageHeader));
   req.type = htons (GNUNET_MESSAGE_TYPE_TRANSPORT_BLACKLIST_INIT);
   memcpy (buf, &req, sizeof (req));
-  br->th = NULL;
   receive (br);
   return sizeof (req);
 }
@@ -168,7 +166,7 @@ static void
 reconnect (struct GNUNET_TRANSPORT_Blacklist *br)
 {
   if (br->client != NULL)
-    GNUNET_CLIENT_disconnect (br->client, GNUNET_NO);
+    GNUNET_CLIENT_disconnect (br->client);
   br->client = GNUNET_CLIENT_connect ("transport", br->cfg);
   GNUNET_assert (br->client != NULL);
   br->th =
@@ -194,6 +192,7 @@ transmit_blacklist_reply (void *cls, size_t size, void *buf)
   struct GNUNET_TRANSPORT_Blacklist *br = cls;
   struct BlacklistMessage req;
 
+  br->th = NULL;
   if (buf == NULL)
   {
     reconnect (br);
@@ -218,6 +217,7 @@ transmit_blacklist_reply (void *cls, size_t size, void *buf)
 static void
 reply (struct GNUNET_TRANSPORT_Blacklist *br)
 {
+  GNUNET_assert (br->th == NULL);
   br->th =
       GNUNET_CLIENT_notify_transmit_ready (br->client,
                                            sizeof (struct BlacklistMessage),
@@ -261,6 +261,7 @@ GNUNET_TRANSPORT_blacklist (const struct GNUNET_CONFIGURATION_Handle *cfg,
   ret->cfg = cfg;
   ret->cb = cb;
   ret->cb_cls = cb_cls;
+  GNUNET_assert (ret->th == NULL);
   ret->th =
       GNUNET_CLIENT_notify_transmit_ready (client,
                                            sizeof (struct GNUNET_MessageHeader),
@@ -281,8 +282,11 @@ void
 GNUNET_TRANSPORT_blacklist_cancel (struct GNUNET_TRANSPORT_Blacklist *br)
 {
   if (br->th != NULL)
+  {
     GNUNET_CLIENT_notify_transmit_ready_cancel (br->th);
-  GNUNET_CLIENT_disconnect (br->client, GNUNET_NO);
+    br->th = NULL;
+  }
+  GNUNET_CLIENT_disconnect (br->client);
   GNUNET_free (br);
 }