summaryrefslogtreecommitdiff
path: root/src/restclient/anastasis_api_keyshare_lookup.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/restclient/anastasis_api_keyshare_lookup.c')
-rw-r--r--src/restclient/anastasis_api_keyshare_lookup.c12
1 files changed, 11 insertions, 1 deletions
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;