diff options
author | Christian Grothoff <christian@grothoff.org> | 2021-09-30 14:42:53 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2021-09-30 14:42:53 +0200 |
commit | edd65b2fa2ee029fb670150f92513d20edce0bf1 (patch) | |
tree | d08889a3400117b13abd178523752a3404b9b46b /src/reducer/anastasis_api_redux.c | |
parent | a16b1544ffb8d5a62fb06795abfd9490c6a4376c (diff) | |
download | anastasis-edd65b2fa2ee029fb670150f92513d20edce0bf1.tar.gz anastasis-edd65b2fa2ee029fb670150f92513d20edce0bf1.tar.bz2 anastasis-edd65b2fa2ee029fb670150f92513d20edce0bf1.zip |
allow providers to be enabled/disabled
Diffstat (limited to 'src/reducer/anastasis_api_redux.c')
-rw-r--r-- | src/reducer/anastasis_api_redux.c | 51 |
1 files changed, 15 insertions, 36 deletions
diff --git a/src/reducer/anastasis_api_redux.c b/src/reducer/anastasis_api_redux.c index f55eece..851be12 100644 --- a/src/reducer/anastasis_api_redux.c +++ b/src/reducer/anastasis_api_redux.c @@ -1378,9 +1378,16 @@ ANASTASIS_add_provider_ (json_t *state, ANASTASIS_ActionCallback cb, void *cb_cls) { - json_t *urls; json_t *tlist; + if (NULL == arguments) + { + ANASTASIS_redux_fail_ (cb, + cb_cls, + TALER_EC_ANASTASIS_REDUCER_INPUT_INVALID, + "arguments missing"); + return true; /* cb was invoked */ + } tlist = json_object_get (state, "authentication_providers"); if (NULL == tlist) @@ -1392,47 +1399,19 @@ ANASTASIS_add_provider_ (json_t *state, "authentication_providers", tlist)); } - if (NULL == arguments) - { - ANASTASIS_redux_fail_ (cb, - cb_cls, - TALER_EC_ANASTASIS_REDUCER_INPUT_INVALID, - "arguments missing"); - return true; - } - urls = json_object_get (arguments, - "urls"); - if (NULL == urls) - { - ANASTASIS_redux_fail_ (cb, - cb_cls, - TALER_EC_ANASTASIS_REDUCER_INPUT_INVALID, - "'urls' missing"); - return true; - } { - size_t index; - json_t *url; + json_t *params; + const char *url; - json_array_foreach (urls, index, url) + json_object_foreach (((json_t *) arguments), url, params) { - const char *url_str = json_string_value (url); - - if (NULL == url_str) - { - ANASTASIS_redux_fail_ (cb, - cb_cls, - TALER_EC_ANASTASIS_REDUCER_INPUT_INVALID, - "'urls' must be strings"); - return true; - } GNUNET_assert (0 == - json_object_set_new (tlist, - url_str, - json_object ())); + json_object_set (tlist, + url, + params)); } } - return false; + return false; /* cb not invoked */ } |