gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r24629 - in gnunet/src: include stream


From: gnunet
Subject: [GNUnet-SVN] r24629 - in gnunet/src: include stream
Date: Wed, 31 Oct 2012 11:13:31 +0100

Author: harsha
Date: 2012-10-31 11:13:31 +0100 (Wed, 31 Oct 2012)
New Revision: 24629

Modified:
   gnunet/src/include/gnunet_stream_lib.h
   gnunet/src/stream/stream_api.c
Log:
fixes

Modified: gnunet/src/include/gnunet_stream_lib.h
===================================================================
--- gnunet/src/include/gnunet_stream_lib.h      2012-10-31 10:12:42 UTC (rev 
24628)
+++ gnunet/src/include/gnunet_stream_lib.h      2012-10-31 10:13:31 UTC (rev 
24629)
@@ -124,10 +124,9 @@
     GNUNET_STREAM_OPTION_LISTEN_TIMEOUT,
 
     /**
-     * Option to register a callback when stream listening is
-     * successfull. Takes parameter of the form
-     * GNUNET_STREAM_ListenSuccessCallback. The callback is only called if
-     * listen is successful
+     * Option to register a callback when stream listening is successfull. 
Takes
+     * parameter of the form GNUNET_STREAM_ListenSuccessCallback. The callback
+     * is only called if listening is successful
      */
     GNUNET_STREAM_OPTION_SIGNAL_LISTEN_SUCCESS,
 

Modified: gnunet/src/stream/stream_api.c
===================================================================
--- gnunet/src/stream/stream_api.c      2012-10-31 10:12:42 UTC (rev 24628)
+++ gnunet/src/stream/stream_api.c      2012-10-31 10:13:31 UTC (rev 24629)
@@ -2104,7 +2104,7 @@
   GNUNET_assert (socket->tunnel == tunnel);
   LOG_DEBUG ("%s: Received HELLO from %s\n", GNUNET_i2s (&socket->other_peer),
              GNUNET_i2s (&socket->other_peer));
-  switch (socket->status)
+  switch (socket->state)
   {
   case STATE_INIT:
     reply = generate_hello_ack (socket, GNUNET_YES);
@@ -2765,6 +2765,7 @@
                 void *tunnel_ctx)
 {
   struct GNUNET_STREAM_Socket *socket = tunnel_ctx;
+  struct MessageQueue *head;
 
   GNUNET_assert (tunnel == socket->tunnel);
   GNUNET_break_op(0);
@@ -2789,8 +2790,27 @@
   {
     GNUNET_SCHEDULER_cancel (socket->data_retransmission_task_id);
     socket->data_retransmission_task_id = GNUNET_SCHEDULER_NO_TASK;
+  }  
+  /* Terminate the control retransmission tasks */
+  if (GNUNET_SCHEDULER_NO_TASK != socket->control_retransmission_task_id)
+  {
+    GNUNET_SCHEDULER_cancel (socket->control_retransmission_task_id);
+    socket->control_retransmission_task_id = GNUNET_SCHEDULER_NO_TASK;
   }
-  /* FIXME: Cancel all other tasks using socket->tunnel */
+  /* Clear Transmit handles */
+  if (NULL != socket->transmit_handle)
+  {
+    GNUNET_MESH_notify_transmit_ready_cancel (socket->transmit_handle);
+    socket->transmit_handle = NULL;
+  }
+  /* Clear existing message queue */
+  while (NULL != (head = socket->queue_head)) {
+    GNUNET_CONTAINER_DLL_remove (socket->queue_head,
+                                socket->queue_tail,
+                                head);
+    GNUNET_free (head->message);
+    GNUNET_free (head);
+  }
   socket->tunnel = NULL;
 }
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]