aboutsummaryrefslogtreecommitdiff
path: root/src/transport/gnunet-service-transport_neighbours.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2012-05-31 17:12:40 +0000
committerChristian Grothoff <christian@grothoff.org>2012-05-31 17:12:40 +0000
commitdc994999f6702effb64e5bfc3eb727ee0f3723ef (patch)
treedf75205459c4158e904d0d1a0efbba85f44294f6 /src/transport/gnunet-service-transport_neighbours.c
parent4050d669768bdb267134a6a6cef9323bd107f79e (diff)
downloadgnunet-dc994999f6702effb64e5bfc3eb727ee0f3723ef.tar.gz
gnunet-dc994999f6702effb64e5bfc3eb727ee0f3723ef.zip
-fix assertion failure
Diffstat (limited to 'src/transport/gnunet-service-transport_neighbours.c')
-rw-r--r--src/transport/gnunet-service-transport_neighbours.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/transport/gnunet-service-transport_neighbours.c b/src/transport/gnunet-service-transport_neighbours.c
index 59132bddc..47e271387 100644
--- a/src/transport/gnunet-service-transport_neighbours.c
+++ b/src/transport/gnunet-service-transport_neighbours.c
@@ -986,7 +986,8 @@ send_disconnect_cont (void *cls, const struct GNUNET_PeerIdentity *target,
986 if (S_DISCONNECT != n->state) 986 if (S_DISCONNECT != n->state)
987 return; /* have created a fresh entry since */ 987 return; /* have created a fresh entry since */
988 n->state = S_DISCONNECT; 988 n->state = S_DISCONNECT;
989 GNUNET_SCHEDULER_cancel (n->task); 989 if (GNUNET_SCHEDULER_NO_TASK != n->task)
990 GNUNET_SCHEDULER_cancel (n->task);
990 n->task = GNUNET_SCHEDULER_add_now (&master_task, n); 991 n->task = GNUNET_SCHEDULER_add_now (&master_task, n);
991} 992}
992 993
@@ -1133,7 +1134,8 @@ transmit_send_continuation (void *cls,
1133 /* this is still "our" neighbour, remove us from its queue 1134 /* this is still "our" neighbour, remove us from its queue
1134 and allow it to send the next message now */ 1135 and allow it to send the next message now */
1135 n->is_active = NULL; 1136 n->is_active = NULL;
1136 GNUNET_SCHEDULER_cancel (n->task); 1137 if (GNUNET_SCHEDULER_NO_TASK != n->task)
1138 GNUNET_SCHEDULER_cancel (n->task);
1137 n->task = GNUNET_SCHEDULER_add_now (&master_task, n); 1139 n->task = GNUNET_SCHEDULER_add_now (&master_task, n);
1138 } 1140 }
1139 GNUNET_assert (bytes_in_send_queue >= mq->message_buf_size); 1141 GNUNET_assert (bytes_in_send_queue >= mq->message_buf_size);
@@ -1487,7 +1489,8 @@ GST_neighbours_send (const struct GNUNET_PeerIdentity *target, const void *msg,
1487 if ( (NULL != n->is_active) || 1489 if ( (NULL != n->is_active) ||
1488 ( (NULL == n->primary_address.session) && (NULL == n->primary_address.address)) ) 1490 ( (NULL == n->primary_address.session) && (NULL == n->primary_address.address)) )
1489 return; 1491 return;
1490 GNUNET_SCHEDULER_cancel (n->task); 1492 if (GNUNET_SCHEDULER_NO_TASK != n->task)
1493 GNUNET_SCHEDULER_cancel (n->task);
1491 n->task = GNUNET_SCHEDULER_add_now (&master_task, n); 1494 n->task = GNUNET_SCHEDULER_add_now (&master_task, n);
1492} 1495}
1493 1496
@@ -2453,10 +2456,10 @@ master_task (void *cls,
2453 } 2456 }
2454 delay = GNUNET_TIME_relative_min (GNUNET_TIME_absolute_get_remaining (n->keep_alive_time), 2457 delay = GNUNET_TIME_relative_min (GNUNET_TIME_absolute_get_remaining (n->keep_alive_time),
2455 delay); 2458 delay);
2456 GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == n->task); 2459 if (GNUNET_SCHEDULER_NO_TASK == n->task)
2457 n->task = GNUNET_SCHEDULER_add_delayed (delay, 2460 n->task = GNUNET_SCHEDULER_add_delayed (delay,
2458 &master_task, 2461 &master_task,
2459 n); 2462 n);
2460} 2463}
2461 2464
2462 2465