From 5a147322d3e1c0d35562038fa43bdde6db2fd9e1 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Wed, 19 May 2010 19:30:06 +0000 Subject: shutdown fix --- src/arm/gnunet-service-manager.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src') diff --git a/src/arm/gnunet-service-manager.c b/src/arm/gnunet-service-manager.c index d97ce7ffd..346ee182a 100644 --- a/src/arm/gnunet-service-manager.c +++ b/src/arm/gnunet-service-manager.c @@ -441,6 +441,13 @@ receiveFromService (void *cls, struct GNUNET_TIME_Relative rem; fc->service_to_client_task = GNUNET_SCHEDULER_NO_TASK; + if ( (NULL != tc) && + (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) && + (fc->first_write_done != GNUNET_YES) ) + { + closeClientAndServiceSockets (fc, REASON_ERROR); + return; + } if (GNUNET_YES != GNUNET_NETWORK_fdset_isset (tc->read_ready, fc->armServiceSocket)) { @@ -537,6 +544,13 @@ forwardToService (void *cls, struct GNUNET_TIME_Relative rem; fc->client_to_service_task = GNUNET_SCHEDULER_NO_TASK; + if ( (NULL != tc) && + (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) && + (fc->first_write_done != GNUNET_YES) ) + { + closeClientAndServiceSockets (fc, REASON_ERROR); + return; + } if (GNUNET_YES != GNUNET_NETWORK_fdset_isset (tc->write_ready, fc->armServiceSocket)) { -- cgit v1.2.3