From e7e10a2931cc19969b2c060a0996506e5b7ce43e Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Mon, 23 Aug 2021 12:50:34 +0200 Subject: -misc bugfixes for IBAN plugin --- src/restclient/anastasis_api_keyshare_lookup.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/restclient/anastasis_api_keyshare_lookup.c') diff --git a/src/restclient/anastasis_api_keyshare_lookup.c b/src/restclient/anastasis_api_keyshare_lookup.c index bb463b6..c0c2812 100644 --- a/src/restclient/anastasis_api_keyshare_lookup.c +++ b/src/restclient/anastasis_api_keyshare_lookup.c @@ -144,13 +144,14 @@ handle_keyshare_lookup_finished (void *cls, GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Backend didn't even return from GET /truth\n"); kdd.status = ANASTASIS_KSD_SERVER_ERROR; + kdd.details.server_failure.ec = TALER_EC_GENERIC_INVALID_RESPONSE; break; case MHD_HTTP_OK: if (sizeof (struct ANASTASIS_CRYPTO_EncryptedKeyShareP) != data_size) { GNUNET_break_op (0); kdd.status = ANASTASIS_KSD_SERVER_ERROR; - kdd.details.server_failure.http_status = MHD_HTTP_ACCEPTED; + kdd.details.server_failure.http_status = MHD_HTTP_OK; kdd.details.server_failure.ec = TALER_EC_GENERIC_INVALID_RESPONSE; break; } @@ -179,6 +180,8 @@ handle_keyshare_lookup_finished (void *cls, (or API version conflict); just pass JSON reply to the application */ GNUNET_break (0); kdd.status = ANASTASIS_KSD_CLIENT_FAILURE; + kdd.details.server_failure.http_status = MHD_HTTP_BAD_REQUEST; + kdd.details.server_failure.ec = TALER_EC_GENERIC_JSON_INVALID; break; case MHD_HTTP_PAYMENT_REQUIRED: { @@ -193,6 +196,8 @@ handle_keyshare_lookup_finished (void *cls, "Failed to parse `%s'\n", kslo->pay_uri); kdd.status = ANASTASIS_KSD_SERVER_ERROR; + kdd.details.server_failure.http_status = MHD_HTTP_PAYMENT_REQUIRED; + kdd.details.server_failure.ec = TALER_EC_GENERIC_REPLY_MALFORMED; break; } if (GNUNET_OK != @@ -204,6 +209,8 @@ handle_keyshare_lookup_finished (void *cls, { GNUNET_break (0); kdd.status = ANASTASIS_KSD_SERVER_ERROR; + kdd.details.server_failure.http_status = MHD_HTTP_PAYMENT_REQUIRED; + kdd.details.server_failure.ec = TALER_EC_GENERIC_REPLY_MALFORMED; TALER_MERCHANT_parse_pay_uri_free (&pd); break; } @@ -245,6 +252,9 @@ handle_keyshare_lookup_finished (void *cls, case MHD_HTTP_EXPECTATION_FAILED: /* Nothing really to verify */ kdd.status = ANASTASIS_KSD_CLIENT_FAILURE; + kdd.details.server_failure.http_status = MHD_HTTP_EXPECTATION_FAILED; + kdd.details.server_failure.ec = TALER_JSON_get_error_code2 (data, + data_size); break; case MHD_HTTP_TOO_MANY_REQUESTS: kdd.status = ANASTASIS_KSD_RATE_LIMIT_EXCEEDED; -- cgit v1.2.3