diff options
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, | |||
1378 | ANASTASIS_ActionCallback cb, | 1378 | ANASTASIS_ActionCallback cb, |
1379 | void *cb_cls) | 1379 | void *cb_cls) |
1380 | { | 1380 | { |
1381 | json_t *urls; | ||
1382 | json_t *tlist; | 1381 | json_t *tlist; |
1383 | 1382 | ||
1383 | if (NULL == arguments) | ||
1384 | { | ||
1385 | ANASTASIS_redux_fail_ (cb, | ||
1386 | cb_cls, | ||
1387 | TALER_EC_ANASTASIS_REDUCER_INPUT_INVALID, | ||
1388 | "arguments missing"); | ||
1389 | return true; /* cb was invoked */ | ||
1390 | } | ||
1384 | tlist = json_object_get (state, | 1391 | tlist = json_object_get (state, |
1385 | "authentication_providers"); | 1392 | "authentication_providers"); |
1386 | if (NULL == tlist) | 1393 | if (NULL == tlist) |
@@ -1392,47 +1399,19 @@ ANASTASIS_add_provider_ (json_t *state, | |||
1392 | "authentication_providers", | 1399 | "authentication_providers", |
1393 | tlist)); | 1400 | tlist)); |
1394 | } | 1401 | } |
1395 | if (NULL == arguments) | ||
1396 | { | ||
1397 | ANASTASIS_redux_fail_ (cb, | ||
1398 | cb_cls, | ||
1399 | TALER_EC_ANASTASIS_REDUCER_INPUT_INVALID, | ||
1400 | "arguments missing"); | ||
1401 | return true; | ||
1402 | } | ||
1403 | urls = json_object_get (arguments, | ||
1404 | "urls"); | ||
1405 | if (NULL == urls) | ||
1406 | { | ||
1407 | ANASTASIS_redux_fail_ (cb, | ||
1408 | cb_cls, | ||
1409 | TALER_EC_ANASTASIS_REDUCER_INPUT_INVALID, | ||
1410 | "'urls' missing"); | ||
1411 | return true; | ||
1412 | } | ||
1413 | { | 1402 | { |
1414 | size_t index; | 1403 | json_t *params; |
1415 | json_t *url; | 1404 | const char *url; |
1416 | 1405 | ||
1417 | json_array_foreach (urls, index, url) | 1406 | json_object_foreach (((json_t *) arguments), url, params) |
1418 | { | 1407 | { |
1419 | const char *url_str = json_string_value (url); | ||
1420 | |||
1421 | if (NULL == url_str) | ||
1422 | { | ||
1423 | ANASTASIS_redux_fail_ (cb, | ||
1424 | cb_cls, | ||
1425 | TALER_EC_ANASTASIS_REDUCER_INPUT_INVALID, | ||
1426 | "'urls' must be strings"); | ||
1427 | return true; | ||
1428 | } | ||
1429 | GNUNET_assert (0 == | 1408 | GNUNET_assert (0 == |
1430 | json_object_set_new (tlist, | 1409 | json_object_set (tlist, |
1431 | url_str, | 1410 | url, |
1432 | json_object ())); | 1411 | params)); |
1433 | } | 1412 | } |
1434 | } | 1413 | } |
1435 | return false; | 1414 | return false; /* cb not invoked */ |
1436 | } | 1415 | } |
1437 | 1416 | ||
1438 | 1417 | ||