diff options
Diffstat (limited to 'src/util/mq.c')
-rw-r--r-- | src/util/mq.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/src/util/mq.c b/src/util/mq.c index 265e4744b..43926ed64 100644 --- a/src/util/mq.c +++ b/src/util/mq.c | |||
@@ -368,6 +368,7 @@ GNUNET_MQ_send (struct GNUNET_MQ_Handle *mq, | |||
368 | ev); | 368 | ev); |
369 | return; | 369 | return; |
370 | } | 370 | } |
371 | GNUNET_assert (NULL == mq->envelope_head); | ||
371 | mq->current_envelope = ev; | 372 | mq->current_envelope = ev; |
372 | mq->send_impl (mq, | 373 | mq->send_impl (mq, |
373 | ev->mh, | 374 | ev->mh, |
@@ -960,20 +961,16 @@ GNUNET_MQ_send_cancel (struct GNUNET_MQ_Envelope *ev) | |||
960 | 961 | ||
961 | if (mq->current_envelope == ev) | 962 | if (mq->current_envelope == ev) |
962 | { | 963 | { |
963 | // complex case, we already started with transmitting | 964 | /* complex case, we already started with transmitting |
964 | // the message | 965 | the message using the callbacks. */ |
965 | GNUNET_assert (0 < mq->queue_length); | 966 | GNUNET_assert (0 < mq->queue_length); |
966 | mq->queue_length--; | 967 | mq->queue_length--; |
967 | mq->cancel_impl (mq, | 968 | mq->cancel_impl (mq, |
968 | mq->impl_state); | 969 | mq->impl_state); |
969 | // continue sending the next message, if any | 970 | /* continue sending the next message, if any */ |
970 | if (NULL == mq->envelope_head) | 971 | mq->current_envelope = mq->envelope_head; |
972 | if (NULL != mq->current_envelope) | ||
971 | { | 973 | { |
972 | mq->current_envelope = NULL; | ||
973 | } | ||
974 | else | ||
975 | { | ||
976 | mq->current_envelope = mq->envelope_head; | ||
977 | GNUNET_CONTAINER_DLL_remove (mq->envelope_head, | 974 | GNUNET_CONTAINER_DLL_remove (mq->envelope_head, |
978 | mq->envelope_tail, | 975 | mq->envelope_tail, |
979 | mq->current_envelope); | 976 | mq->current_envelope); |
@@ -984,7 +981,7 @@ GNUNET_MQ_send_cancel (struct GNUNET_MQ_Envelope *ev) | |||
984 | } | 981 | } |
985 | else | 982 | else |
986 | { | 983 | { |
987 | // simple case, message is still waiting in the queue | 984 | /* simple case, message is still waiting in the queue */ |
988 | GNUNET_CONTAINER_DLL_remove (mq->envelope_head, | 985 | GNUNET_CONTAINER_DLL_remove (mq->envelope_head, |
989 | mq->envelope_tail, | 986 | mq->envelope_tail, |
990 | ev); | 987 | ev); |