diff options
author | Christian Grothoff <christian@grothoff.org> | 2024-02-09 21:25:27 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2024-02-09 21:25:27 +0100 |
commit | a8e20fe04d0ab35ab7a881f8a4ec72aa9d06b314 (patch) | |
tree | 6e46fb81962658f7533c84919c0616f7df65eecd /src/lib/merchant_api_merchant_get_order.c | |
parent | 0f936b4aac6e9fa6c0304bca7aff2103cfd1f3d4 (diff) | |
download | merchant-a8e20fe04d0ab35ab7a881f8a4ec72aa9d06b314.tar.gz merchant-a8e20fe04d0ab35ab7a881f8a4ec72aa9d06b314.tar.bz2 merchant-a8e20fe04d0ab35ab7a881f8a4ec72aa9d06b314.zip |
set curl timeout when long-polling
Diffstat (limited to 'src/lib/merchant_api_merchant_get_order.c')
-rw-r--r-- | src/lib/merchant_api_merchant_get_order.c | 31 |
1 files changed, 10 insertions, 21 deletions
diff --git a/src/lib/merchant_api_merchant_get_order.c b/src/lib/merchant_api_merchant_get_order.c index 9f10c347..f410ee50 100644 --- a/src/lib/merchant_api_merchant_get_order.c +++ b/src/lib/merchant_api_merchant_get_order.c @@ -409,17 +409,10 @@ TALER_MERCHANT_merchant_order_get (struct GNUNET_CURL_Context *ctx, void *cb_cls) { struct TALER_MERCHANT_OrderMerchantGetHandle *omgh; - unsigned long long tms; - long tlong; - - tms = (unsigned long long) (timeout.rel_value_us - / GNUNET_TIME_UNIT_MILLISECONDS.rel_value_us); - /* set curl timeout to *our* long poll timeout plus one minute - (for network latency and processing delays) */ - tlong = (long) (GNUNET_TIME_relative_add (timeout, - GNUNET_TIME_UNIT_MINUTES). - rel_value_us - / GNUNET_TIME_UNIT_MILLISECONDS.rel_value_us); + unsigned int tms; + + tms = (unsigned int) (timeout.rel_value_us + / GNUNET_TIME_UNIT_MILLISECONDS.rel_value_us); omgh = GNUNET_new (struct TALER_MERCHANT_OrderMerchantGetHandle); omgh->ctx = ctx; omgh->cb = cb; @@ -430,7 +423,7 @@ TALER_MERCHANT_merchant_order_get (struct GNUNET_CURL_Context *ctx, GNUNET_snprintf (timeout_ms, sizeof (timeout_ms), - "%llu", + "%u", tms); GNUNET_asprintf (&path, "private/orders/%s", @@ -461,16 +454,12 @@ TALER_MERCHANT_merchant_order_get (struct GNUNET_CURL_Context *ctx, GNUNET_free (omgh); return NULL; } - if (CURLE_OK != - curl_easy_setopt (eh, - CURLOPT_TIMEOUT_MS, - tlong)) + if (0 != tms) { - GNUNET_break (0); - curl_easy_cleanup (eh); - GNUNET_free (omgh->url); - GNUNET_free (omgh); - return NULL; + GNUNET_break (CURLE_OK == + curl_easy_setopt (eh, + CURLOPT_TIMEOUT_MS, + (long) (tms + 100L))); } GNUNET_log (GNUNET_ERROR_TYPE_INFO, |