- send payload on AX key receive
authorBart Polot <bart@net.in.tum.de>
Wed, 15 Jul 2015 11:45:13 +0000 (11:45 +0000)
committerBart Polot <bart@net.in.tum.de>
Wed, 15 Jul 2015 11:45:13 +0000 (11:45 +0000)
src/cadet/gnunet-service-cadet_tunnel.c

index aad80af0b81b1a418510cd7b444d411e87831720..8fa13dffde773df6226ef8b4bb59940ab80902dd 100644 (file)
@@ -624,10 +624,15 @@ static int
 is_ready (struct CadetTunnel *t)
 {
   int ready;
-
-  ready = CADET_TUNNEL_READY == t->cstate
-          && (CADET_TUNNEL_KEY_OK == t->estate
-              || CADET_TUNNEL_KEY_REKEY == t->estate);
+  int conn_ok;
+  int enc_ok;
+
+  conn_ok = CADET_TUNNEL_READY == t->cstate;
+  enc_ok = CADET_TUNNEL_KEY_OK == t->estate
+           || CADET_TUNNEL_KEY_REKEY == t->estate
+           || (CADET_TUNNEL_KEY_PING == t->estate
+               && CADET_Axolotl == t->enc_type);
+  ready = conn_ok && enc_ok;
   ready = ready || GCT_is_loopback (t);
   return ready;
 }
@@ -2977,6 +2982,8 @@ handle_kx_ax (struct CadetTunnel *t, const struct GNUNET_CADET_AX_KX *msg)
     ax->ratchet_expiration =
       GNUNET_TIME_absolute_add (GNUNET_TIME_absolute_get(), ratchet_time);
   }
+  GCT_change_estate (t, CADET_TUNNEL_KEY_PING);
+  send_queued_data (t);
 }