[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r17726 - gnunet/src/transport
From: |
gnunet |
Subject: |
[GNUnet-SVN] r17726 - gnunet/src/transport |
Date: |
Mon, 24 Oct 2011 17:20:25 +0200 |
Author: wachs
Date: 2011-10-24 17:20:25 +0200 (Mon, 24 Oct 2011)
New Revision: 17726
Modified:
gnunet/src/transport/gnunet-service-transport_neighbours.c
Log:
fixing 1841
- transmission_task scheduled 2x without checking on task_identifier
- added assertion to see if bug is still existing
- schedule task on if transmission was succesful
Modified: gnunet/src/transport/gnunet-service-transport_neighbours.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport_neighbours.c 2011-10-24
14:34:22 UTC (rev 17725)
+++ gnunet/src/transport/gnunet-service-transport_neighbours.c 2011-10-24
15:20:25 UTC (rev 17726)
@@ -349,12 +349,15 @@
mq = cls;
n = mq->n;
- if (NULL != n)
+ if ((NULL != n))
{
GNUNET_assert (n->is_active == mq);
n->is_active = NULL;
- GNUNET_assert (n->transmission_task == GNUNET_SCHEDULER_NO_TASK);
- n->transmission_task = GNUNET_SCHEDULER_add_now (&transmission_task, n);
+ if (success == GNUNET_YES)
+ {
+ GNUNET_assert (n->transmission_task == GNUNET_SCHEDULER_NO_TASK);
+ n->transmission_task = GNUNET_SCHEDULER_add_now (&transmission_task, n);
+ }
}
if (NULL != mq->cont)
mq->cont (mq->cont_cls, success);
@@ -408,6 +411,7 @@
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "No address for peer `%s'\n",
GNUNET_i2s (&n->id));
transmit_send_continuation (mq, &n->id, GNUNET_SYSERR);
+ GNUNET_assert (n->transmission_task == GNUNET_SCHEDULER_NO_TASK);
n->transmission_task = GNUNET_SCHEDULER_add_now (&transmission_task, n);
return;
}
@@ -422,7 +426,6 @@
/* failure, but 'send' would not call continuation in this case,
* so we need to do it here! */
transmit_send_continuation (mq, &n->id, GNUNET_SYSERR);
- n->transmission_task = GNUNET_SCHEDULER_add_now (&transmission_task, n);
}
}
@@ -437,7 +440,7 @@
transmission_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
struct NeighbourMapEntry *n = cls;
-
+ GNUNET_assert (NULL != lookup_neighbour(&n->id));
n->transmission_task = GNUNET_SCHEDULER_NO_TASK;
try_transmission_to_peer (n);
}
@@ -640,6 +643,7 @@
{
struct NeighbourMapEntry *n = cls;
+ GNUNET_assert (n != NULL);
if (GNUNET_YES == n->in_disconnect)
return; /* neighbour is going away */
if (GNUNET_YES != success)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r17726 - gnunet/src/transport,
gnunet <=