aboutsummaryrefslogtreecommitdiff
path: root/src/arm/test_exponential_backoff.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/arm/test_exponential_backoff.c')
-rw-r--r--src/arm/test_exponential_backoff.c88
1 files changed, 38 insertions, 50 deletions
diff --git a/src/arm/test_exponential_backoff.c b/src/arm/test_exponential_backoff.c
index edd5cbf..77bd9e2 100644
--- a/src/arm/test_exponential_backoff.c
+++ b/src/arm/test_exponential_backoff.c
@@ -113,59 +113,47 @@ service_shutdown_handler (void *cls, const struct GNUNET_MessageHeader *msg)
{
struct ShutdownContext *shutdown_ctx = cls;
- if ((msg == NULL) && (shutdown_ctx->confirmed != GNUNET_YES))
- {
- /* Means the other side closed the connection and never confirmed a shutdown */
- GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
- "Service handle shutdown before ACK!\n");
- if (shutdown_ctx->cont != NULL)
- shutdown_ctx->cont (shutdown_ctx->cont_cls, GNUNET_SYSERR);
- GNUNET_SCHEDULER_cancel (shutdown_ctx->cancel_task);
- GNUNET_CLIENT_disconnect (shutdown_ctx->sock, GNUNET_NO);
- GNUNET_free (shutdown_ctx);
- }
- else if ((msg == NULL) && (shutdown_ctx->confirmed == GNUNET_YES))
- {
+ if (msg == NULL)
+ {
#if VERBOSE
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Service shutdown complete.\n");
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Service shutdown complete.\n");
#endif
- if (shutdown_ctx->cont != NULL)
- shutdown_ctx->cont (shutdown_ctx->cont_cls, GNUNET_NO);
-
- GNUNET_SCHEDULER_cancel (shutdown_ctx->cancel_task);
- GNUNET_CLIENT_disconnect (shutdown_ctx->sock, GNUNET_NO);
- GNUNET_free (shutdown_ctx);
- }
- else
- {
- GNUNET_assert (ntohs (msg->size) ==
- sizeof (struct GNUNET_MessageHeader));
- switch (ntohs (msg->type))
- {
- case GNUNET_MESSAGE_TYPE_ARM_SHUTDOWN:
+ if (shutdown_ctx->cont != NULL)
+ shutdown_ctx->cont (shutdown_ctx->cont_cls, GNUNET_NO);
+
+ GNUNET_SCHEDULER_cancel (shutdown_ctx->cancel_task);
+ GNUNET_CLIENT_disconnect (shutdown_ctx->sock);
+ GNUNET_free (shutdown_ctx);
+ return;
+ }
+ GNUNET_assert (ntohs (msg->size) ==
+ sizeof (struct GNUNET_MessageHeader));
+ switch (ntohs (msg->type))
+ {
+ case GNUNET_MESSAGE_TYPE_ARM_SHUTDOWN:
#if VERBOSE
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Received confirmation for service shutdown.\n");
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Received confirmation for service shutdown.\n");
#endif
- shutdown_ctx->confirmed = GNUNET_YES;
- GNUNET_CLIENT_receive (shutdown_ctx->sock,
- &service_shutdown_handler, shutdown_ctx,
- GNUNET_TIME_UNIT_FOREVER_REL);
- break;
- default: /* Fall through */
- GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
- "Service shutdown refused!\n");
- if (shutdown_ctx->cont != NULL)
- shutdown_ctx->cont (shutdown_ctx->cont_cls, GNUNET_YES);
-
- GNUNET_SCHEDULER_cancel (shutdown_ctx->cancel_task);
- GNUNET_CLIENT_disconnect (shutdown_ctx->sock, GNUNET_NO);
- GNUNET_free (shutdown_ctx);
- break;
- }
- }
+ shutdown_ctx->confirmed = GNUNET_YES;
+ GNUNET_CLIENT_receive (shutdown_ctx->sock,
+ &service_shutdown_handler, shutdown_ctx,
+ GNUNET_TIME_UNIT_FOREVER_REL);
+ break;
+ default: /* Fall through */
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+ "Service shutdown refused!\n");
+ if (shutdown_ctx->cont != NULL)
+ shutdown_ctx->cont (shutdown_ctx->cont_cls, GNUNET_YES);
+
+ GNUNET_SCHEDULER_cancel (shutdown_ctx->cancel_task);
+ GNUNET_CLIENT_disconnect (shutdown_ctx->sock);
+ GNUNET_free (shutdown_ctx);
+ break;
+ }
}
+
/**
* Shutting down took too long, cancel receive and return error.
*
@@ -180,7 +168,7 @@ service_shutdown_cancel (void *cls,
GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "service_shutdown_cancel called!\n");
shutdown_ctx->cont (shutdown_ctx->cont_cls, GNUNET_SYSERR);
- GNUNET_CLIENT_disconnect (shutdown_ctx->sock, GNUNET_NO);
+ GNUNET_CLIENT_disconnect (shutdown_ctx->sock);
GNUNET_free (shutdown_ctx);
}
@@ -205,7 +193,7 @@ write_shutdown (void *cls, size_t size, void *buf)
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
_("Failed to transmit shutdown request to client.\n"));
shutdown_ctx->cont (shutdown_ctx->cont_cls, GNUNET_SYSERR);
- GNUNET_CLIENT_disconnect (shutdown_ctx->sock, GNUNET_NO);
+ GNUNET_CLIENT_disconnect (shutdown_ctx->sock);
GNUNET_free (shutdown_ctx);
return 0; /* client disconnected */
}
@@ -358,7 +346,7 @@ kill_task (void *cbData, const struct GNUNET_SCHEDULER_TaskContext *tc)
GNUNET_assert (doNothingConnection != NULL);
if (trialCount == 12)
{
- GNUNET_CLIENT_disconnect (doNothingConnection, GNUNET_NO);
+ GNUNET_CLIENT_disconnect (doNothingConnection);
GNUNET_ARM_stop_service (arm, "do-nothing", TIMEOUT, &arm_notify_stop,
NULL);
ok = 0;