summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-07-30 14:20:39 +0200
committerChristian Grothoff <christian@grothoff.org>2021-07-30 14:20:39 +0200
commitc0d4a35a515b07733e4ba523a910cb41f8dce9af (patch)
treef049fc17469ddf2132b3c48bb78df75a105270d3 /src
parentd821db366a9d2554c59e6450b352cddacd73b398 (diff)
downloadexchange-c0d4a35a515b07733e4ba523a910cb41f8dce9af.tar.gz
exchange-c0d4a35a515b07733e4ba523a910cb41f8dce9af.tar.bz2
exchange-c0d4a35a515b07733e4ba523a910cb41f8dce9af.zip
fix #6967
Diffstat (limited to 'src')
-rw-r--r--src/exchange-tools/taler-exchange-offline.c52
-rw-r--r--src/lib/exchange_api_management_get_keys.c12
2 files changed, 41 insertions, 23 deletions
diff --git a/src/exchange-tools/taler-exchange-offline.c b/src/exchange-tools/taler-exchange-offline.c
index 3bf8f981..460bd8e8 100644
--- a/src/exchange-tools/taler-exchange-offline.c
+++ b/src/exchange-tools/taler-exchange-offline.c
@@ -139,6 +139,12 @@ static json_t *out;
*/
static char *currency;
+/**
+ * URL of the exchange we are interacting with
+ * as per our configuration.
+ */
+static char *CFG_exchange_url;
+
/**
* A subcommand supported by this program.
@@ -1789,11 +1795,12 @@ do_upload (char *const *args)
global_ret = EXIT_FAILURE;
return;
}
- if (GNUNET_OK !=
- GNUNET_CONFIGURATION_get_value_string (kcfg,
- "exchange",
- "BASE_URL",
- &exchange_url))
+ if ( (NULL == CFG_exchange_url) &&
+ (GNUNET_OK !=
+ GNUNET_CONFIGURATION_get_value_string (kcfg,
+ "exchange",
+ "BASE_URL",
+ &CFG_exchange_url)) )
{
GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
"exchange",
@@ -1802,10 +1809,9 @@ do_upload (char *const *args)
test_shutdown ();
return;
}
- trigger_upload (exchange_url);
+ trigger_upload (CFG_exchange_url);
json_decref (out);
out = NULL;
- GNUNET_free (exchange_url);
}
@@ -2264,11 +2270,17 @@ download_cb (void *cls,
case MHD_HTTP_OK:
break;
default:
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "Failed to download keys: %s (HTTP status: %u/%u)\n",
- hr->hint,
- hr->http_status,
- (unsigned int) hr->ec);
+ if (0 != hr->http_status)
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Failed to download keys from `%s': %s (HTTP status: %u/%u)\n",
+ CFG_exchange_url,
+ hr->hint,
+ hr->http_status,
+ (unsigned int) hr->ec);
+ else
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Failed to download keys from `%s' (no HTTP response)\n",
+ CFG_exchange_url);
test_shutdown ();
global_ret = EXIT_FAILURE;
return;
@@ -2298,13 +2310,12 @@ download_cb (void *cls,
static void
do_download (char *const *args)
{
- char *exchange_url;
-
- if (GNUNET_OK !=
- GNUNET_CONFIGURATION_get_value_string (kcfg,
- "exchange",
- "BASE_URL",
- &exchange_url))
+ if ( (NULL == CFG_exchange_url) &&
+ (GNUNET_OK !=
+ GNUNET_CONFIGURATION_get_value_string (kcfg,
+ "exchange",
+ "BASE_URL",
+ &CFG_exchange_url)) )
{
GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
"exchange",
@@ -2314,10 +2325,9 @@ do_download (char *const *args)
return;
}
mgkh = TALER_EXCHANGE_get_management_keys (ctx,
- exchange_url,
+ CFG_exchange_url,
&download_cb,
(void *) args);
- GNUNET_free (exchange_url);
}
diff --git a/src/lib/exchange_api_management_get_keys.c b/src/lib/exchange_api_management_get_keys.c
index 840629a1..e9cab581 100644
--- a/src/lib/exchange_api_management_get_keys.c
+++ b/src/lib/exchange_api_management_get_keys.c
@@ -298,8 +298,16 @@ handle_get_keys_finished (void *cls,
break;
default:
/* unexpected response code */
- hr.ec = TALER_JSON_get_error_code (json);
- hr.hint = TALER_JSON_get_error_hint (json);
+ if (NULL != json)
+ {
+ hr.ec = TALER_JSON_get_error_code (json);
+ hr.hint = TALER_JSON_get_error_hint (json);
+ }
+ else
+ {
+ hr.ec = TALER_EC_GENERIC_INVALID_RESPONSE;
+ hr.hint = TALER_ErrorCode_get_hint (hr.ec);
+ }
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Unexpected response code %u/%d for exchange management get keys\n",
(unsigned int) response_code,