diff options
author | Christian Grothoff <christian@grothoff.org> | 2010-05-19 19:30:06 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2010-05-19 19:30:06 +0000 |
commit | 5a147322d3e1c0d35562038fa43bdde6db2fd9e1 (patch) | |
tree | 73a25d36d9205cde3bc35c744aa7f9f72a8ed983 /src | |
parent | 0fa38ea5dc14501567565e2767cf25be935e3418 (diff) | |
download | gnunet-5a147322d3e1c0d35562038fa43bdde6db2fd9e1.tar.gz gnunet-5a147322d3e1c0d35562038fa43bdde6db2fd9e1.zip |
shutdown fix
Diffstat (limited to 'src')
-rw-r--r-- | src/arm/gnunet-service-manager.c | 14 |
1 files changed, 14 insertions, 0 deletions
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, | |||
441 | struct GNUNET_TIME_Relative rem; | 441 | struct GNUNET_TIME_Relative rem; |
442 | 442 | ||
443 | fc->service_to_client_task = GNUNET_SCHEDULER_NO_TASK; | 443 | fc->service_to_client_task = GNUNET_SCHEDULER_NO_TASK; |
444 | if ( (NULL != tc) && | ||
445 | (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) && | ||
446 | (fc->first_write_done != GNUNET_YES) ) | ||
447 | { | ||
448 | closeClientAndServiceSockets (fc, REASON_ERROR); | ||
449 | return; | ||
450 | } | ||
444 | if (GNUNET_YES != GNUNET_NETWORK_fdset_isset (tc->read_ready, | 451 | if (GNUNET_YES != GNUNET_NETWORK_fdset_isset (tc->read_ready, |
445 | fc->armServiceSocket)) | 452 | fc->armServiceSocket)) |
446 | { | 453 | { |
@@ -537,6 +544,13 @@ forwardToService (void *cls, | |||
537 | struct GNUNET_TIME_Relative rem; | 544 | struct GNUNET_TIME_Relative rem; |
538 | 545 | ||
539 | fc->client_to_service_task = GNUNET_SCHEDULER_NO_TASK; | 546 | fc->client_to_service_task = GNUNET_SCHEDULER_NO_TASK; |
547 | if ( (NULL != tc) && | ||
548 | (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) && | ||
549 | (fc->first_write_done != GNUNET_YES) ) | ||
550 | { | ||
551 | closeClientAndServiceSockets (fc, REASON_ERROR); | ||
552 | return; | ||
553 | } | ||
540 | if (GNUNET_YES != GNUNET_NETWORK_fdset_isset (tc->write_ready, | 554 | if (GNUNET_YES != GNUNET_NETWORK_fdset_isset (tc->write_ready, |
541 | fc->armServiceSocket)) | 555 | fc->armServiceSocket)) |
542 | { | 556 | { |