- try to retransmit in case of core error
authorBart Polot <bart@net.in.tum.de>
Fri, 26 Jun 2015 10:07:06 +0000 (10:07 +0000)
committerBart Polot <bart@net.in.tum.de>
Fri, 26 Jun 2015 10:07:06 +0000 (10:07 +0000)
src/cadet/gnunet-service-cadet_peer.c

index 8003c05cd47c34ebbcde2ace27d9158ea4def394..f99ce482fa31562ffe6ace0d25e70d257f90c7d9 100644 (file)
@@ -754,7 +754,7 @@ peer_destroy (struct CadetPeer *peer)
 
 
 /**
- * Iterator over peer hash map entries to destroy the peer during shutdown.
+ * Iterator over peer hash map entries to destroy the peer during in_shutdown.
  *
  * @param cls closure
  * @param key current key code
@@ -1155,8 +1155,26 @@ queue_send (void *cls, size_t size, void *buf)
   /* Sanity checking */
   if (NULL == buf || 0 == size)
   {
-    peer->tmt_time.abs_value_us = 0;
-    peer->core_transmit = NULL;
+    LOG (GNUNET_ERROR_TYPE_DEBUG, "  not allowed/\n");
+    if (GNUNET_NO == in_shutdown)
+    {
+      queue = peer_get_first_message (peer);
+      dst_id = GNUNET_PEER_resolve2 (peer->id);
+      peer->core_transmit =
+          GNUNET_CORE_notify_transmit_ready (core_handle,
+                                            GNUNET_NO, get_priority (queue),
+                                            GNUNET_TIME_UNIT_FOREVER_REL,
+                                            dst_id,
+                                            get_core_size (queue->size),
+                                            &queue_send,
+                                            peer);
+      peer->tmt_time = GNUNET_TIME_absolute_get ();
+    }
+    else
+    {
+      peer->core_transmit = NULL;
+      peer->tmt_time.abs_value_us = 0;
+    }
     return 0;
   }