diff options
author | Florian Dold <florian@dold.me> | 2021-10-13 17:30:58 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2021-10-13 17:30:58 +0200 |
commit | 5dbddafc68643f2b5f03af2fdb10f1cc16d90104 (patch) | |
tree | 418ca5d28b5340c79dcd456c61531edb32a60dad /src/reducer | |
parent | 71c08423cf2aea30c4a4d06fa8f69ebb286fb050 (diff) | |
download | anastasis-5dbddafc68643f2b5f03af2fdb10f1cc16d90104.tar.gz anastasis-5dbddafc68643f2b5f03af2fdb10f1cc16d90104.tar.bz2 anastasis-5dbddafc68643f2b5f03af2fdb10f1cc16d90104.zip |
return error response instead of tagging state
Diffstat (limited to 'src/reducer')
-rw-r--r-- | src/reducer/anastasis_api_recovery_redux.c | 39 |
1 files changed, 19 insertions, 20 deletions
diff --git a/src/reducer/anastasis_api_recovery_redux.c b/src/reducer/anastasis_api_recovery_redux.c index 14cb657..85a9c50 100644 --- a/src/reducer/anastasis_api_recovery_redux.c +++ b/src/reducer/anastasis_api_recovery_redux.c @@ -2463,31 +2463,30 @@ static void return_no_policy (struct RecoverSecretState *rss, bool offline) { - json_t *msg; + json_t *estate; + const char *detail; + enum TALER_ErrorCode ec; + ec = TALER_EC_ANASTASIS_REDUCER_NETWORK_FAILED; GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "No provider online, need user to manually specify providers!\n"); - msg = GNUNET_JSON_PACK ( + + if (offline) + detail = "could not contact provider (offline)"; + else + detail = "provider does not know you"; + + estate = GNUNET_JSON_PACK ( + GNUNET_JSON_pack_allow_null ( + GNUNET_JSON_pack_string ("detail", + detail)), + GNUNET_JSON_pack_uint64 ("code", + ec), GNUNET_JSON_pack_string ("hint", - offline - ? "could not contact provider" - : "provider does not know you"), - GNUNET_JSON_pack_bool ("offline", - offline)); - GNUNET_assert (0 == - json_object_set_new (rss->state, - "recovery_error", - msg)); - /* In case there are old ones, remove them! */ - (void) json_object_del (rss->state, - "recovery_document"); - (void) json_object_del (rss->state, - "recovery_information"); - set_state (rss->state, - ANASTASIS_RECOVERY_STATE_SECRET_SELECTING); + TALER_ErrorCode_get_hint (ec))); rss->cb (rss->cb_cls, - TALER_EC_NONE, - rss->state); + ec, + estate); free_rss (rss); } |