diff options
Diffstat (limited to 'src/transport/transport_api_blacklist.c')
-rw-r--r-- | src/transport/transport_api_blacklist.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/transport/transport_api_blacklist.c b/src/transport/transport_api_blacklist.c index b1c536a9d..be52623bb 100644 --- a/src/transport/transport_api_blacklist.c +++ b/src/transport/transport_api_blacklist.c | |||
@@ -145,6 +145,7 @@ transmit_blacklist_init (void *cls, size_t size, void *buf) | |||
145 | struct GNUNET_TRANSPORT_Blacklist *br = cls; | 145 | struct GNUNET_TRANSPORT_Blacklist *br = cls; |
146 | struct GNUNET_MessageHeader req; | 146 | struct GNUNET_MessageHeader req; |
147 | 147 | ||
148 | br->th = NULL; | ||
148 | if (buf == NULL) | 149 | if (buf == NULL) |
149 | { | 150 | { |
150 | reconnect (br); | 151 | reconnect (br); |
@@ -153,7 +154,6 @@ transmit_blacklist_init (void *cls, size_t size, void *buf) | |||
153 | req.size = htons (sizeof (struct GNUNET_MessageHeader)); | 154 | req.size = htons (sizeof (struct GNUNET_MessageHeader)); |
154 | req.type = htons (GNUNET_MESSAGE_TYPE_TRANSPORT_BLACKLIST_INIT); | 155 | req.type = htons (GNUNET_MESSAGE_TYPE_TRANSPORT_BLACKLIST_INIT); |
155 | memcpy (buf, &req, sizeof (req)); | 156 | memcpy (buf, &req, sizeof (req)); |
156 | br->th = NULL; | ||
157 | receive (br); | 157 | receive (br); |
158 | return sizeof (req); | 158 | return sizeof (req); |
159 | } | 159 | } |
@@ -194,6 +194,7 @@ transmit_blacklist_reply (void *cls, size_t size, void *buf) | |||
194 | struct GNUNET_TRANSPORT_Blacklist *br = cls; | 194 | struct GNUNET_TRANSPORT_Blacklist *br = cls; |
195 | struct BlacklistMessage req; | 195 | struct BlacklistMessage req; |
196 | 196 | ||
197 | br->th = NULL; | ||
197 | if (buf == NULL) | 198 | if (buf == NULL) |
198 | { | 199 | { |
199 | reconnect (br); | 200 | reconnect (br); |
@@ -218,6 +219,7 @@ transmit_blacklist_reply (void *cls, size_t size, void *buf) | |||
218 | static void | 219 | static void |
219 | reply (struct GNUNET_TRANSPORT_Blacklist *br) | 220 | reply (struct GNUNET_TRANSPORT_Blacklist *br) |
220 | { | 221 | { |
222 | GNUNET_assert (br->th == NULL); | ||
221 | br->th = | 223 | br->th = |
222 | GNUNET_CLIENT_notify_transmit_ready (br->client, | 224 | GNUNET_CLIENT_notify_transmit_ready (br->client, |
223 | sizeof (struct BlacklistMessage), | 225 | sizeof (struct BlacklistMessage), |
@@ -261,6 +263,7 @@ GNUNET_TRANSPORT_blacklist (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
261 | ret->cfg = cfg; | 263 | ret->cfg = cfg; |
262 | ret->cb = cb; | 264 | ret->cb = cb; |
263 | ret->cb_cls = cb_cls; | 265 | ret->cb_cls = cb_cls; |
266 | GNUNET_assert (ret->th == NULL); | ||
264 | ret->th = | 267 | ret->th = |
265 | GNUNET_CLIENT_notify_transmit_ready (client, | 268 | GNUNET_CLIENT_notify_transmit_ready (client, |
266 | sizeof (struct GNUNET_MessageHeader), | 269 | sizeof (struct GNUNET_MessageHeader), |
@@ -281,7 +284,10 @@ void | |||
281 | GNUNET_TRANSPORT_blacklist_cancel (struct GNUNET_TRANSPORT_Blacklist *br) | 284 | GNUNET_TRANSPORT_blacklist_cancel (struct GNUNET_TRANSPORT_Blacklist *br) |
282 | { | 285 | { |
283 | if (br->th != NULL) | 286 | if (br->th != NULL) |
287 | { | ||
284 | GNUNET_CLIENT_notify_transmit_ready_cancel (br->th); | 288 | GNUNET_CLIENT_notify_transmit_ready_cancel (br->th); |
289 | br->th = NULL; | ||
290 | } | ||
285 | GNUNET_CLIENT_disconnect (br->client, GNUNET_NO); | 291 | GNUNET_CLIENT_disconnect (br->client, GNUNET_NO); |
286 | GNUNET_free (br); | 292 | GNUNET_free (br); |
287 | } | 293 | } |