fixed retransmission task
authorSree Harsha Totakura <totakura@in.tum.de>
Sat, 10 Mar 2012 09:13:20 +0000 (09:13 +0000)
committerSree Harsha Totakura <totakura@in.tum.de>
Sat, 10 Mar 2012 09:13:20 +0000 (09:13 +0000)
src/stream/stream_api.c
src/stream/test_stream_local.c

index bb50f69bc3fc11949b6c3bd748b5f1f121919ae8..d488b4c802a121cadf2dba6e53244516084b7c30 100644 (file)
@@ -791,10 +791,12 @@ write_data (struct GNUNET_STREAM_Socket *socket)
       packet++;
     }
 
-  GNUNET_SCHEDULER_add_delayed
-    (GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5),
-     &retransmission_timeout_task,
-     socket);                                
+  if (GNUNET_SCHEDULER_NO_TASK == socket->retransmission_timeout_task_id)
+    socket->retransmission_timeout_task_id = 
+      GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply 
+                                    (GNUNET_TIME_UNIT_SECONDS, 5),
+                                    &retransmission_timeout_task,
+                                    socket);
 }
 
 
@@ -1837,6 +1839,11 @@ handle_ack (struct GNUNET_STREAM_Socket *socket,
         }
       /* FIXME: include the case when write_handle is cancelled - ignore the 
          acks */
+
+      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                  "%x: Received DATA_ACK from %x\n",
+                  socket->our_id,
+                  socket->other_peer);
       
       /* Cancel the retransmission task */
       if (GNUNET_SCHEDULER_NO_TASK != socket->retransmission_timeout_task_id)
@@ -1845,7 +1852,7 @@ handle_ack (struct GNUNET_STREAM_Socket *socket,
           socket->retransmission_timeout_task_id = 
             GNUNET_SCHEDULER_NO_TASK;
         }
-         
+
       socket->write_handle->ack_bitmap = GNUNET_ntohll (ack->bitmap);
       socket->receiver_window_available = 
         ntohl (ack->receive_window_remaining);
@@ -1868,7 +1875,6 @@ handle_ack (struct GNUNET_STREAM_Socket *socket,
         }
       else      /* We have to call the write continuation callback now */
         {
-
           /* Free the packets */
           for (packet=0; packet < 64; packet++)
             {
@@ -1879,6 +1885,9 @@ handle_ack (struct GNUNET_STREAM_Socket *socket,
               (socket->write_handle->write_cont_cls,
                socket->status,
                socket->write_handle->size);
+          GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                      "%x: Write completion callback completed\n",
+                      socket->our_id);
           /* We are done with the write handle - Freeing it */
           GNUNET_free (socket->write_handle);
           socket->write_handle = NULL;
index af4e057d796fa2f0e1b51c5a607b363475f5fbe0..125fc6df894997670ba43ffd3c8c71849e828733 100644 (file)
@@ -204,6 +204,9 @@ write_completion (void *cls,
   GNUNET_assert (size <= strlen (data));
   peer->bytes_wrote += size;
 
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "Writing completed\n");
+
   if (peer->bytes_wrote < strlen(data)) /* Have more data to send */
     {
       peer->io_write_handle =
@@ -319,7 +322,7 @@ input_processor (void *cls,
         {
           GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
         }
-    } 
+    }
   return size;
 }