From: Christian Grothoff Date: Wed, 19 May 2010 19:30:06 +0000 (+0000) Subject: shutdown fix X-Git-Tag: initial-import-from-subversion-38251~21642 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=5a147322d3e1c0d35562038fa43bdde6db2fd9e1;p=oweals%2Fgnunet.git shutdown fix --- 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)) {