[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r10483 - gnunet/src/transport
From: |
gnunet |
Subject: |
[GNUnet-SVN] r10483 - gnunet/src/transport |
Date: |
Thu, 4 Mar 2010 11:04:24 +0100 |
Author: nevans
Date: 2010-03-04 11:04:24 +0100 (Thu, 04 Mar 2010)
New Revision: 10483
Modified:
gnunet/src/transport/transport_api.c
Log:
coverity fixes, strange behavior(s) in transport_api.c hopefully resolved
Modified: gnunet/src/transport/transport_api.c
===================================================================
--- gnunet/src/transport/transport_api.c 2010-03-04 09:49:27 UTC (rev
10482)
+++ gnunet/src/transport/transport_api.c 2010-03-04 10:04:24 UTC (rev
10483)
@@ -976,7 +976,7 @@
if (buf == NULL)
{
-#if DEBUG_TRANSPORT
+#if DEBUG_TRANSPORT_TIMEOUT
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
"Timeout while trying to transmit `%s' request.\n",
"HELLO");
@@ -1121,7 +1121,7 @@
* @param cls closure (struct GNUNET_TRANSPORT_Handle *)
* @param msg message received, NULL on timeout or fatal error
*/
-static void demultiplexer (void *cls,
+static void demultiplexer (void *cls,
const struct GNUNET_MessageHeader *msg);
@@ -1138,6 +1138,7 @@
struct GNUNET_TRANSPORT_Handle *h = cls;
struct ControlMessage *pos;
struct NeighbourList *n;
+ struct NeighbourList *next;
h->reconnect_task = GNUNET_SCHEDULER_NO_TASK;
if ( (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
@@ -1149,9 +1150,10 @@
n = h->neighbours;
while (NULL != n)
{
+ next = n->next;
if (n->is_connected)
neighbour_disconnect (n);
- n = n->next;
+ n = next;
}
#if DEBUG_TRANSPORT
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Connecting to transport service.\n");
@@ -1296,6 +1298,7 @@
struct NeighbourList *n;
struct HelloWaitList *hwl;
struct GNUNET_CLIENT_Connection *client;
+ struct ControlMessage *cm;
#if DEBUG_TRANSPORT
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Transport disconnect called!\n");
@@ -1336,6 +1339,25 @@
hwl->rec (hwl->rec_cls, NULL);
GNUNET_free (hwl);
}
+
+ /* Check for still scheduled control messages, cancel delay tasks if so */
+ /* Added because somehow a notify_delay_task is remaining scheduled and is
ever so annoying */
+ while ( (NULL != (cm = handle->control_head)))
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+ _("Disconnect before control message sent!\n"));
+ if (cm->notify_delay_task != GNUNET_SCHEDULER_NO_TASK)
+ {
+ GNUNET_SCHEDULER_cancel (handle->sched, cm->notify_delay_task);
+ cm->notify_delay_task = GNUNET_SCHEDULER_NO_TASK;
+ }
+ GNUNET_CONTAINER_DLL_remove (handle->control_head,
+ handle->control_tail,
+ cm);
+ GNUNET_free (cm);
+ }
+ /* end check */
+
if (handle->reconnect_task != GNUNET_SCHEDULER_NO_TASK)
{
GNUNET_SCHEDULER_cancel (handle->sched, handle->reconnect_task);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r10483 - gnunet/src/transport,
gnunet <=