merchant

Merchant backend to process payments, run by merchants
Log | Files | Refs | Submodules | README | LICENSE

commit 358182c512f94961faadfde9911f2b7977bc8c29
parent fb7e96e9cc1fcf2a78cec4fa216954e7d83670a9
Author: Christian Grothoff <christian@grothoff.org>
Date:   Mon,  2 May 2016 02:22:07 +0200

fixing #4479 for merchant

Diffstat:
Msrc/backend/taler-merchant-httpd_exchanges.c | 13++++++-------
Msrc/lib/test_merchant_api.c | 39+++++++++++++++++----------------------
2 files changed, 23 insertions(+), 29 deletions(-)

diff --git a/src/backend/taler-merchant-httpd_exchanges.c b/src/backend/taler-merchant-httpd_exchanges.c @@ -234,16 +234,17 @@ keys_mgmt_cb (void *cls, /** * Restart the task that pumps events into curl * with updated file descriptors. + * + * @param cls NULL */ static void -merchant_curl_refresh () +merchant_curl_refresh (void *cls) { if (NULL != merchant_curl_task) { GNUNET_SCHEDULER_cancel (merchant_curl_task); merchant_curl_task = NULL; } - merchant_curl_task = GNUNET_SCHEDULER_add_now (&merchant_curl_cb, NULL); } @@ -332,7 +333,6 @@ return_result (void *cls) (GNUNET_SYSERR == exchange->pending) ? NULL : exchange->conn, exchange->trusted); GNUNET_free (fo); - merchant_curl_refresh (); } @@ -341,7 +341,7 @@ return_result (void *cls) * the closure. * * @param cls the exchange - * + * */ static void retry_exchange (void *cls) @@ -358,7 +358,6 @@ retry_exchange (void *cls) exchange, TALER_EXCHANGE_OPTION_END); GNUNET_break (NULL != exchange->conn); - merchant_curl_refresh (); } @@ -576,7 +575,8 @@ TMH_EXCHANGES_init (const struct GNUNET_CONFIGURATION_Handle *cfg) struct Exchange *exchange; json_t *j_exchange; - merchant_curl_ctx = GNUNET_CURL_init (); + merchant_curl_ctx = GNUNET_CURL_init (&merchant_curl_refresh, + NULL); if (NULL == merchant_curl_ctx) { GNUNET_break (0); @@ -598,7 +598,6 @@ TMH_EXCHANGES_init (const struct GNUNET_CONFIGURATION_Handle *cfg) json_array_append_new (trusted_exchanges, j_exchange); } - merchant_curl_refresh (); return GNUNET_OK; } diff --git a/src/lib/test_merchant_api.c b/src/lib/test_merchant_api.c @@ -392,27 +392,6 @@ struct InterpreterState /** - * Task that runs the context's event loop with the GNUnet scheduler. - * - * @param cls unused - */ -static void -context_task (void *cls); - - -/** - * Run the context task, the working set has changed. - */ -static void -trigger_context_task () -{ - GNUNET_SCHEDULER_cancel (ctx_task); - ctx_task = GNUNET_SCHEDULER_add_now (&context_task, - NULL); -} - - -/** * The testcase failed, return with an error code. * * @param is interpreter state to clean up @@ -1370,6 +1349,21 @@ context_task (void *cls) /** + * Run the context task, the working set has changed. + * + * @param cls NULL + */ +static void +trigger_context_task (void *cls) +{ + if (NULL != ctx_task) + GNUNET_SCHEDULER_cancel (ctx_task); + ctx_task = GNUNET_SCHEDULER_add_now (&context_task, + NULL); +} + + +/** * Main function that will be run by the scheduler. * * @param cls closure @@ -1459,7 +1453,8 @@ run (void *cls) is = GNUNET_new (struct InterpreterState); is->commands = commands; - ctx = GNUNET_CURL_init (); + ctx = GNUNET_CURL_init (&trigger_context_task, + NULL); GNUNET_assert (NULL != ctx); ctx_task = GNUNET_SCHEDULER_add_now (&context_task, ctx);