diff options
Diffstat (limited to 'src/restclient/anastasis_api_keyshare_lookup.c')
-rw-r--r-- | src/restclient/anastasis_api_keyshare_lookup.c | 12 |
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; |