- cancel SYNACK retry task when forced to SYNACK by an incoming SYN
[oweals/gnunet.git] / src / mesh / gnunet-service-mesh_channel.c
index 9a81db79eae821943853acbe5f6e23c584cd1c6a..b9e77746b7d92a7a9a2b35b6abbfee36f06cbb77 100644 (file)
@@ -2120,6 +2120,12 @@ GMCH_handle_create (struct MeshTunnel3 *t,
   else
   {
     LOG (GNUNET_ERROR_TYPE_DEBUG, "  duplicate create channel\n");
+    if (GNUNET_SCHEDULER_NO_TASK != ch->dest_rel->retry_task)
+    {
+      /* we were waiting to re-send our 'SYNACK', wait no more! */
+      GNUNET_SCHEDULER_cancel (ch->dest_rel->retry_task);
+      ch->dest_rel->retry_task = GNUNET_SCHEDULER_NO_TASK;
+    }
   }
   send_ack (ch, GNUNET_YES);