From 37f4dcbcb4fcb6d7390346cf86f84281b38b5ab6 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Mon, 30 May 2011 15:57:15 +0000 Subject: [PATCH] do not reset in_receive unless called from receive --- src/datastore/datastore_api.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/datastore/datastore_api.c b/src/datastore/datastore_api.c index 65c14f673..6bf9abaca 100644 --- a/src/datastore/datastore_api.c +++ b/src/datastore/datastore_api.c @@ -371,14 +371,17 @@ timeout_queue_entry (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { struct GNUNET_DATASTORE_QueueEntry *qe = cls; + int in_receive; GNUNET_STATISTICS_update (qe->h->stats, gettext_noop ("# queue entry timeouts"), 1, GNUNET_NO); qe->task = GNUNET_SCHEDULER_NO_TASK; - GNUNET_assert (qe->was_transmitted == GNUNET_NO); + GNUNET_assert (qe->was_transmitted == GNUNET_NO); + in_receive = qe->h->in_receive; qe->response_proc (qe->h, NULL); + qe->h->in_receive = in_receive; } @@ -408,6 +411,7 @@ make_queue_entry (struct GNUNET_DATASTORE_Handle *h, struct GNUNET_DATASTORE_QueueEntry *ret; struct GNUNET_DATASTORE_QueueEntry *pos; unsigned int c; + int in_receive; c = 0; pos = h->queue_head; @@ -462,6 +466,7 @@ make_queue_entry (struct GNUNET_DATASTORE_Handle *h, ret->task = GNUNET_SCHEDULER_add_delayed (timeout, &timeout_queue_entry, ret); + in_receive = h->in_receive; pos = ret->next; while (pos != NULL) { @@ -486,6 +491,7 @@ make_queue_entry (struct GNUNET_DATASTORE_Handle *h, } pos = pos->next; } + h->in_receive = in_receive; return ret; } -- 2.25.1