-code cleanup
[oweals/gnunet.git] / src / core / gnunet-service-core_kx.c
index 63dd6b7eeccc6416f3296074bff31ce648271b16..ae6b7a183d5135f5a156809f508e860a772114a0 100644 (file)
@@ -62,6 +62,8 @@
 #define MAX_SET_KEY_DELAY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 10)
 
 
+GNUNET_NETWORK_STRUCT_BEGIN
+
 /**
  * We're sending an (encrypted) PING to the other peer to check if he
  * can decrypt.  The other peer should respond with a PONG with the
@@ -213,7 +215,7 @@ struct EncryptedMessage
   struct GNUNET_TIME_AbsoluteNBO timestamp;
 
 };
-
+GNUNET_NETWORK_STRUCT_END
 /**
  * Number of bytes (at the beginning) of "struct EncryptedMessage"
  * that are NOT encrypted.
@@ -601,6 +603,11 @@ process_hello (void *cls, const struct GNUNET_PeerIdentity *peer,
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 _("Error in communication with PEERINFO service\n"));
     kx->pitr = NULL;
+    if (GNUNET_SCHEDULER_NO_TASK != kx->retry_set_key_task)
+      GNUNET_SCHEDULER_cancel (kx->retry_set_key_task);
+    kx->retry_set_key_task =
+        GNUNET_SCHEDULER_add_delayed (kx->set_key_retry_frequency,
+                                      &set_key_retry_task, kx);
     return;
   }
   if (peer == NULL)
@@ -617,6 +624,8 @@ process_hello (void *cls, const struct GNUNET_PeerIdentity *peer,
                               gettext_noop
                               ("# Delayed connecting due to lack of public key"),
                               1, GNUNET_NO);
+    if (GNUNET_SCHEDULER_NO_TASK != kx->retry_set_key_task)
+      GNUNET_SCHEDULER_cancel (kx->retry_set_key_task);
     kx->retry_set_key_task =
         GNUNET_SCHEDULER_add_delayed (kx->set_key_retry_frequency,
                                       &set_key_retry_task, kx);
@@ -1153,9 +1162,11 @@ GSC_KX_handle_pong (struct GSC_KeyExchangeInfo *kx,
                               GNUNET_NO);
     kx->status = KX_STATE_UP;
     GSC_SESSIONS_create (&kx->peer, kx);
-    GNUNET_assert (kx->retry_set_key_task != GNUNET_SCHEDULER_NO_TASK);
-    GNUNET_SCHEDULER_cancel (kx->retry_set_key_task);
-    kx->retry_set_key_task = GNUNET_SCHEDULER_NO_TASK;
+    if (GNUNET_SCHEDULER_NO_TASK != kx->retry_set_key_task)
+    {
+      GNUNET_SCHEDULER_cancel (kx->retry_set_key_task);
+      kx->retry_set_key_task = GNUNET_SCHEDULER_NO_TASK;
+    }
     GNUNET_assert (kx->keep_alive_task == GNUNET_SCHEDULER_NO_TASK);
     if (kx->emsg_received != NULL)
     {