From 7341b21fa3d6328f2c85747824899be54668e891 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Thu, 20 Oct 2016 21:00:40 +0200 Subject: return taler-specific error codes from C API as well (#4497/4705) --- src/exchange-lib/exchange_api_admin.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/exchange-lib/exchange_api_admin.c') diff --git a/src/exchange-lib/exchange_api_admin.c b/src/exchange-lib/exchange_api_admin.c index 524916e6..e17cd780 100644 --- a/src/exchange-lib/exchange_api_admin.c +++ b/src/exchange-lib/exchange_api_admin.c @@ -1,6 +1,6 @@ /* This file is part of TALER - Copyright (C) 2014, 2015 GNUnet e.V. + Copyright (C) 2014, 2015, 2016 GNUnet e.V. TALER is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -29,6 +29,7 @@ #include "taler_json_lib.h" #include "taler_exchange_service.h" #include "exchange_api_handle.h" +#include "exchange_api_common.h" #include "taler_signatures.h" @@ -129,6 +130,7 @@ handle_admin_add_incoming_finished (void *cls, } aai->cb (aai->cb_cls, response_code, + TALER_EXCHANGE_json_get_error_code (json), json); TALER_EXCHANGE_admin_add_incoming_cancel (aai); } -- cgit v1.2.3 From 63c5706b64a5fe2989514c5f18e2926b91e420de Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Thu, 20 Oct 2016 21:11:20 +0200 Subject: remove redundant exchange_api_common.h header --- src/exchange-lib/Makefile.am | 2 +- src/exchange-lib/exchange_api_admin.c | 1 - src/exchange-lib/exchange_api_common.c | 1 - src/exchange-lib/exchange_api_common.h | 53 ----------------------- src/exchange-lib/exchange_api_deposit.c | 1 - src/exchange-lib/exchange_api_refresh.c | 1 - src/exchange-lib/exchange_api_refresh_link.c | 1 - src/exchange-lib/exchange_api_refund.c | 1 - src/exchange-lib/exchange_api_reserve.c | 1 - src/exchange-lib/exchange_api_track_transaction.c | 1 - src/exchange-lib/exchange_api_track_transfer.c | 1 - src/exchange-lib/exchange_api_wire.c | 1 - src/include/taler_exchange_service.h | 12 +++++ 13 files changed, 13 insertions(+), 64 deletions(-) delete mode 100644 src/exchange-lib/exchange_api_common.h (limited to 'src/exchange-lib/exchange_api_admin.c') diff --git a/src/exchange-lib/Makefile.am b/src/exchange-lib/Makefile.am index 83fcf147..19c36744 100644 --- a/src/exchange-lib/Makefile.am +++ b/src/exchange-lib/Makefile.am @@ -14,7 +14,7 @@ libtalerexchange_la_LDFLAGS = \ -no-undefined libtalerexchange_la_SOURCES = \ - exchange_api_common.c exchange_api_common.h \ + exchange_api_common.c \ exchange_api_handle.c exchange_api_handle.h \ exchange_api_admin.c \ exchange_api_deposit.c \ diff --git a/src/exchange-lib/exchange_api_admin.c b/src/exchange-lib/exchange_api_admin.c index e17cd780..d50afdc6 100644 --- a/src/exchange-lib/exchange_api_admin.c +++ b/src/exchange-lib/exchange_api_admin.c @@ -29,7 +29,6 @@ #include "taler_json_lib.h" #include "taler_exchange_service.h" #include "exchange_api_handle.h" -#include "exchange_api_common.h" #include "taler_signatures.h" diff --git a/src/exchange-lib/exchange_api_common.c b/src/exchange-lib/exchange_api_common.c index 445e2f13..bd45619d 100644 --- a/src/exchange-lib/exchange_api_common.c +++ b/src/exchange-lib/exchange_api_common.c @@ -20,7 +20,6 @@ * @author Christian Grothoff */ #include "platform.h" -#include "exchange_api_common.h" #include "taler_json_lib.h" #include #include "exchange_api_handle.h" diff --git a/src/exchange-lib/exchange_api_common.h b/src/exchange-lib/exchange_api_common.h deleted file mode 100644 index bea36258..00000000 --- a/src/exchange-lib/exchange_api_common.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - This file is part of TALER - Copyright (C) 2015 GNUnet e.V. - - TALER is free software; you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the Free Software - Foundation; either version 3, or (at your option) any later version. - - TALER is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - A PARTICULAR PURPOSE. See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along with - TALER; see the file COPYING. If not, see - -*/ -/** - * @file exchange-lib/exchange_api_common.h - * @brief common functions for the exchange API - * @author Christian Grothoff - */ -#include -#include -#include "taler_exchange_service.h" - - -/** - * Extract the Taler error code from the given @a json object. - * Note that #TALER_EC_NONE is returned if no "code" is present. - * - * @param json response to extract the error code from - * @return the "code" value from @a json - */ -enum TALER_ErrorCode -TALER_EXCHANGE_json_get_error_code (const json_t *json); - - -/** - * Verify a coins transaction history as returned by the exchange. - * - * @param currency expected currency for the coin - * @param coin_pub public key of the coin - * @param history history of the coin in json encoding - * @param[out] total how much of the coin has been spent according to @a history - * @return #GNUNET_OK if @a history is valid, #GNUNET_SYSERR if not - */ -int -TALER_EXCHANGE_verify_coin_history (const char *currency, - const struct TALER_CoinSpendPublicKeyP *coin_pub, - json_t *history, - struct TALER_Amount *total); - -/* end of exchange_api_common.h */ diff --git a/src/exchange-lib/exchange_api_deposit.c b/src/exchange-lib/exchange_api_deposit.c index 63ae87d0..416f4419 100644 --- a/src/exchange-lib/exchange_api_deposit.c +++ b/src/exchange-lib/exchange_api_deposit.c @@ -29,7 +29,6 @@ #include #include "taler_json_lib.h" #include "taler_exchange_service.h" -#include "exchange_api_common.h" #include "exchange_api_handle.h" #include "taler_signatures.h" diff --git a/src/exchange-lib/exchange_api_refresh.c b/src/exchange-lib/exchange_api_refresh.c index e185ef98..556a53c4 100644 --- a/src/exchange-lib/exchange_api_refresh.c +++ b/src/exchange-lib/exchange_api_refresh.c @@ -28,7 +28,6 @@ #include #include "taler_json_lib.h" #include "taler_exchange_service.h" -#include "exchange_api_common.h" #include "exchange_api_handle.h" #include "taler_signatures.h" diff --git a/src/exchange-lib/exchange_api_refresh_link.c b/src/exchange-lib/exchange_api_refresh_link.c index c5dbc389..32f3f2ad 100644 --- a/src/exchange-lib/exchange_api_refresh_link.c +++ b/src/exchange-lib/exchange_api_refresh_link.c @@ -27,7 +27,6 @@ #include "taler_exchange_service.h" #include "taler_json_lib.h" #include "exchange_api_handle.h" -#include "exchange_api_common.h" #include "taler_signatures.h" diff --git a/src/exchange-lib/exchange_api_refund.c b/src/exchange-lib/exchange_api_refund.c index 73dd6ce5..0d5656e1 100644 --- a/src/exchange-lib/exchange_api_refund.c +++ b/src/exchange-lib/exchange_api_refund.c @@ -28,7 +28,6 @@ #include #include "taler_json_lib.h" #include "taler_exchange_service.h" -#include "exchange_api_common.h" #include "exchange_api_handle.h" #include "taler_signatures.h" diff --git a/src/exchange-lib/exchange_api_reserve.c b/src/exchange-lib/exchange_api_reserve.c index bcf37258..bbba4f2b 100644 --- a/src/exchange-lib/exchange_api_reserve.c +++ b/src/exchange-lib/exchange_api_reserve.c @@ -29,7 +29,6 @@ #include "taler_exchange_service.h" #include "taler_json_lib.h" #include "exchange_api_handle.h" -#include "exchange_api_common.h" #include "taler_signatures.h" diff --git a/src/exchange-lib/exchange_api_track_transaction.c b/src/exchange-lib/exchange_api_track_transaction.c index cf068573..50e10c44 100644 --- a/src/exchange-lib/exchange_api_track_transaction.c +++ b/src/exchange-lib/exchange_api_track_transaction.c @@ -28,7 +28,6 @@ #include #include "taler_json_lib.h" #include "taler_exchange_service.h" -#include "exchange_api_common.h" #include "exchange_api_handle.h" #include "taler_signatures.h" diff --git a/src/exchange-lib/exchange_api_track_transfer.c b/src/exchange-lib/exchange_api_track_transfer.c index 0b45ecfc..c4ad3fd2 100644 --- a/src/exchange-lib/exchange_api_track_transfer.c +++ b/src/exchange-lib/exchange_api_track_transfer.c @@ -26,7 +26,6 @@ #include #include #include "taler_exchange_service.h" -#include "exchange_api_common.h" #include "taler_json_lib.h" #include "exchange_api_handle.h" #include "taler_signatures.h" diff --git a/src/exchange-lib/exchange_api_wire.c b/src/exchange-lib/exchange_api_wire.c index 60e9113a..71a717d4 100644 --- a/src/exchange-lib/exchange_api_wire.c +++ b/src/exchange-lib/exchange_api_wire.c @@ -28,7 +28,6 @@ #include "taler_exchange_service.h" #include "taler_json_lib.h" #include "taler_wire_plugin.h" -#include "exchange_api_common.h" #include "exchange_api_handle.h" diff --git a/src/include/taler_exchange_service.h b/src/include/taler_exchange_service.h index d1f6dbbe..1629ddcf 100644 --- a/src/include/taler_exchange_service.h +++ b/src/include/taler_exchange_service.h @@ -1262,4 +1262,16 @@ TALER_EXCHANGE_verify_coin_history (const char *currency, json_t *history, struct TALER_Amount *total); + +/** + * Extract the Taler error code from the given @a json object. + * Note that #TALER_EC_NONE is returned if no "code" is present. + * + * @param json response to extract the error code from + * @return the "code" value from @a json + */ +enum TALER_ErrorCode +TALER_EXCHANGE_json_get_error_code (const json_t *json); + + #endif /* _TALER_EXCHANGE_SERVICE_H */ -- cgit v1.2.3 From 19f4c50dabd6a4c29749a9c758e7e0da99d9e31f Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Thu, 20 Oct 2016 21:19:01 +0200 Subject: rename and move TALER_EXCHANGE_json_get_error_code to TALER_JSON_get_error_code --- src/exchange-lib/exchange_api_admin.c | 2 +- src/exchange-lib/exchange_api_common.c | 27 --------------------- src/exchange-lib/exchange_api_deposit.c | 2 +- src/exchange-lib/exchange_api_refresh.c | 6 ++--- src/exchange-lib/exchange_api_refresh_link.c | 2 +- src/exchange-lib/exchange_api_refund.c | 2 +- src/exchange-lib/exchange_api_reserve.c | 4 ++-- src/exchange-lib/exchange_api_track_transaction.c | 2 +- src/exchange-lib/exchange_api_track_transfer.c | 2 +- src/exchange-lib/exchange_api_wire.c | 2 +- src/include/taler_exchange_service.h | 11 --------- src/include/taler_json_lib.h | 12 ++++++++++ src/include/taler_util.h | 2 ++ src/json/json.c | 29 +++++++++++++++++++++++ 14 files changed, 55 insertions(+), 50 deletions(-) (limited to 'src/exchange-lib/exchange_api_admin.c') diff --git a/src/exchange-lib/exchange_api_admin.c b/src/exchange-lib/exchange_api_admin.c index d50afdc6..e6cb8101 100644 --- a/src/exchange-lib/exchange_api_admin.c +++ b/src/exchange-lib/exchange_api_admin.c @@ -129,7 +129,7 @@ handle_admin_add_incoming_finished (void *cls, } aai->cb (aai->cb_cls, response_code, - TALER_EXCHANGE_json_get_error_code (json), + TALER_JSON_get_error_code (json), json); TALER_EXCHANGE_admin_add_incoming_cancel (aai); } diff --git a/src/exchange-lib/exchange_api_common.c b/src/exchange-lib/exchange_api_common.c index bd45619d..a531b1c3 100644 --- a/src/exchange-lib/exchange_api_common.c +++ b/src/exchange-lib/exchange_api_common.c @@ -26,33 +26,6 @@ #include "taler_signatures.h" -/** - * Extract the Taler error code from the given @a json object. - * Note that #TALER_EC_NONE is returned if no "code" is present. - * - * @param json response to extract the error code from - * @return the "code" value from @a json - */ -enum TALER_ErrorCode -TALER_EXCHANGE_json_get_error_code (const json_t *json) -{ - const json_t *jc; - - if (NULL == json) - { - GNUNET_break_op (0); - return TALER_EC_INVALID_RESPONSE; - } - jc = json_object_get (json, "code"); - if (NULL == jc) - return TALER_EC_NONE; - if (json_is_integer (jc)) - return (enum TALER_ErrorCode) json_integer_value (jc); - GNUNET_break_op (0); - return TALER_EC_INVALID; -} - - /** * Verify a coins transaction history as returned by the exchange. * diff --git a/src/exchange-lib/exchange_api_deposit.c b/src/exchange-lib/exchange_api_deposit.c index 416f4419..9282bbfd 100644 --- a/src/exchange-lib/exchange_api_deposit.c +++ b/src/exchange-lib/exchange_api_deposit.c @@ -261,7 +261,7 @@ handle_deposit_finished (void *cls, } dh->cb (dh->cb_cls, response_code, - TALER_EXCHANGE_json_get_error_code (json), + TALER_JSON_get_error_code (json), ep, json); TALER_EXCHANGE_deposit_cancel (dh); diff --git a/src/exchange-lib/exchange_api_refresh.c b/src/exchange-lib/exchange_api_refresh.c index 556a53c4..c3216a6e 100644 --- a/src/exchange-lib/exchange_api_refresh.c +++ b/src/exchange-lib/exchange_api_refresh.c @@ -1114,7 +1114,7 @@ handle_refresh_melt_finished (void *cls, { rmh->melt_cb (rmh->melt_cb_cls, response_code, - TALER_EXCHANGE_json_get_error_code (json), + TALER_JSON_get_error_code (json), noreveal_index, (0 == response_code) ? NULL : &exchange_pub, json); @@ -1160,7 +1160,7 @@ handle_refresh_melt_finished (void *cls, if (NULL != rmh->melt_cb) rmh->melt_cb (rmh->melt_cb_cls, response_code, - TALER_EXCHANGE_json_get_error_code (json), + TALER_JSON_get_error_code (json), UINT16_MAX, NULL, json); @@ -1636,7 +1636,7 @@ handle_refresh_reveal_finished (void *cls, if (NULL != rrh->reveal_cb) rrh->reveal_cb (rrh->reveal_cb_cls, response_code, - TALER_EXCHANGE_json_get_error_code (json), + TALER_JSON_get_error_code (json), 0, NULL, NULL, diff --git a/src/exchange-lib/exchange_api_refresh_link.c b/src/exchange-lib/exchange_api_refresh_link.c index 32f3f2ad..9b825138 100644 --- a/src/exchange-lib/exchange_api_refresh_link.c +++ b/src/exchange-lib/exchange_api_refresh_link.c @@ -346,7 +346,7 @@ handle_refresh_link_finished (void *cls, if (NULL != rlh->link_cb) rlh->link_cb (rlh->link_cb_cls, response_code, - TALER_EXCHANGE_json_get_error_code (json), + TALER_JSON_get_error_code (json), 0, NULL, NULL, diff --git a/src/exchange-lib/exchange_api_refund.c b/src/exchange-lib/exchange_api_refund.c index 0d5656e1..be080c57 100644 --- a/src/exchange-lib/exchange_api_refund.c +++ b/src/exchange-lib/exchange_api_refund.c @@ -195,7 +195,7 @@ handle_refund_finished (void *cls, } rh->cb (rh->cb_cls, response_code, - TALER_EXCHANGE_json_get_error_code (json), + TALER_JSON_get_error_code (json), ep, json); TALER_EXCHANGE_refund_cancel (rh); diff --git a/src/exchange-lib/exchange_api_reserve.c b/src/exchange-lib/exchange_api_reserve.c index bbba4f2b..28f329c4 100644 --- a/src/exchange-lib/exchange_api_reserve.c +++ b/src/exchange-lib/exchange_api_reserve.c @@ -389,7 +389,7 @@ handle_reserve_status_finished (void *cls, if (NULL != wsh->cb) wsh->cb (wsh->cb_cls, response_code, - TALER_EXCHANGE_json_get_error_code (json), + TALER_JSON_get_error_code (json), json, NULL, 0, NULL); @@ -766,7 +766,7 @@ handle_reserve_withdraw_finished (void *cls, if (NULL != wsh->cb) wsh->cb (wsh->cb_cls, response_code, - TALER_EXCHANGE_json_get_error_code (json), + TALER_JSON_get_error_code (json), NULL, json); TALER_EXCHANGE_reserve_withdraw_cancel (wsh); diff --git a/src/exchange-lib/exchange_api_track_transaction.c b/src/exchange-lib/exchange_api_track_transaction.c index 50e10c44..7fd2efb2 100644 --- a/src/exchange-lib/exchange_api_track_transaction.c +++ b/src/exchange-lib/exchange_api_track_transaction.c @@ -238,7 +238,7 @@ handle_deposit_wtid_finished (void *cls, } dwh->cb (dwh->cb_cls, response_code, - TALER_EXCHANGE_json_get_error_code (json), + TALER_JSON_get_error_code (json), ep, json, wtid, diff --git a/src/exchange-lib/exchange_api_track_transfer.c b/src/exchange-lib/exchange_api_track_transfer.c index c4ad3fd2..8ed5865d 100644 --- a/src/exchange-lib/exchange_api_track_transfer.c +++ b/src/exchange-lib/exchange_api_track_transfer.c @@ -253,7 +253,7 @@ handle_track_transfer_finished (void *cls, } wdh->cb (wdh->cb_cls, response_code, - TALER_EXCHANGE_json_get_error_code (json), + TALER_JSON_get_error_code (json), NULL, json, NULL, diff --git a/src/exchange-lib/exchange_api_wire.c b/src/exchange-lib/exchange_api_wire.c index 71a717d4..7401e66d 100644 --- a/src/exchange-lib/exchange_api_wire.c +++ b/src/exchange-lib/exchange_api_wire.c @@ -209,7 +209,7 @@ handle_wire_finished (void *cls, } wh->cb (wh->cb_cls, response_code, - TALER_EXCHANGE_json_get_error_code (json), + TALER_JSON_get_error_code (json), (NULL != keep) ? keep : json); if (NULL != keep) json_decref (keep); diff --git a/src/include/taler_exchange_service.h b/src/include/taler_exchange_service.h index 1629ddcf..e368f954 100644 --- a/src/include/taler_exchange_service.h +++ b/src/include/taler_exchange_service.h @@ -1263,15 +1263,4 @@ TALER_EXCHANGE_verify_coin_history (const char *currency, struct TALER_Amount *total); -/** - * Extract the Taler error code from the given @a json object. - * Note that #TALER_EC_NONE is returned if no "code" is present. - * - * @param json response to extract the error code from - * @return the "code" value from @a json - */ -enum TALER_ErrorCode -TALER_EXCHANGE_json_get_error_code (const json_t *json); - - #endif /* _TALER_EXCHANGE_SERVICE_H */ diff --git a/src/include/taler_json_lib.h b/src/include/taler_json_lib.h index b47aea5b..b247ba1f 100644 --- a/src/include/taler_json_lib.h +++ b/src/include/taler_json_lib.h @@ -25,6 +25,7 @@ #include #include #include "taler_util.h" +#include "taler_error_codes.h" /** * Print JSON parsing related error information @@ -92,6 +93,17 @@ int TALER_JSON_hash (const json_t *json, struct GNUNET_HashCode *hc); +/** + * Extract the Taler error code from the given @a json object. + * Note that #TALER_EC_NONE is returned if no "code" is present. + * + * @param json response to extract the error code from + * @return the "code" value from @a json + */ +enum TALER_ErrorCode +TALER_JSON_get_error_code (const json_t *json); + + #endif /* TALER_JSON_LIB_H_ */ /* End of taler_json_lib.h */ diff --git a/src/include/taler_util.h b/src/include/taler_util.h index 613f860c..c115594f 100644 --- a/src/include/taler_util.h +++ b/src/include/taler_util.h @@ -117,4 +117,6 @@ const struct GNUNET_OS_ProjectData * TALER_project_data_default (void); + + #endif diff --git a/src/json/json.c b/src/json/json.c index 8f21447e..74559e6c 100644 --- a/src/json/json.c +++ b/src/json/json.c @@ -50,4 +50,33 @@ TALER_JSON_hash (const json_t *json, } + +/** + * Extract the Taler error code from the given @a json object. + * Note that #TALER_EC_NONE is returned if no "code" is present. + * + * @param json response to extract the error code from + * @return the "code" value from @a json + */ +enum TALER_ErrorCode +TALER_JSON_get_error_code (const json_t *json) +{ + const json_t *jc; + + if (NULL == json) + { + GNUNET_break_op (0); + return TALER_EC_INVALID_RESPONSE; + } + jc = json_object_get (json, "code"); + if (NULL == jc) + return TALER_EC_NONE; + if (json_is_integer (jc)) + return (enum TALER_ErrorCode) json_integer_value (jc); + GNUNET_break_op (0); + return TALER_EC_INVALID; +} + + + /* End of json/json.c */ -- cgit v1.2.3