summaryrefslogtreecommitdiff
path: root/src/reducer
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2021-10-13 17:30:58 +0200
committerFlorian Dold <florian@dold.me>2021-10-13 17:30:58 +0200
commit5dbddafc68643f2b5f03af2fdb10f1cc16d90104 (patch)
tree418ca5d28b5340c79dcd456c61531edb32a60dad /src/reducer
parent71c08423cf2aea30c4a4d06fa8f69ebb286fb050 (diff)
downloadanastasis-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.c39
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);
}