summaryrefslogtreecommitdiff
path: root/src/exchange/taler-exchange-httpd_admin.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2016-11-18 18:29:18 +0100
committerChristian Grothoff <christian@grothoff.org>2016-11-18 18:29:18 +0100
commit7d6b8d53d5a6ee6ca1545fb5d458199c6249edc5 (patch)
treef44f7afb792184ef46e6d4882cb20de0e2d8b519 /src/exchange/taler-exchange-httpd_admin.c
parentde68a7b301fd78a89c4f5e6f34791c8debab36e0 (diff)
downloadexchange-7d6b8d53d5a6ee6ca1545fb5d458199c6249edc5.tar.gz
exchange-7d6b8d53d5a6ee6ca1545fb5d458199c6249edc5.tar.bz2
exchange-7d6b8d53d5a6ee6ca1545fb5d458199c6249edc5.zip
addressing #4803: nicer error messages for invalid wire formats
Diffstat (limited to 'src/exchange/taler-exchange-httpd_admin.c')
-rw-r--r--src/exchange/taler-exchange-httpd_admin.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/exchange/taler-exchange-httpd_admin.c b/src/exchange/taler-exchange-httpd_admin.c
index 72cdcb7d6..8bb4b4988 100644
--- a/src/exchange/taler-exchange-httpd_admin.c
+++ b/src/exchange/taler-exchange-httpd_admin.c
@@ -50,6 +50,8 @@ TEH_ADMIN_handler_admin_add_incoming (struct TEH_RequestHandler *rh,
struct TALER_ReservePublicKeyP reserve_pub;
struct TALER_Amount amount;
struct GNUNET_TIME_Absolute at;
+ enum TALER_ErrorCode ec;
+ char *emsg;
json_t *sender_account_details;
json_t *transfer_details;
json_t *root;
@@ -82,15 +84,17 @@ TEH_ADMIN_handler_admin_add_incoming (struct TEH_RequestHandler *rh,
json_decref (root);
return (GNUNET_SYSERR == res) ? MHD_NO : MHD_YES;
}
- if (GNUNET_YES !=
- TEH_json_validate_wireformat (sender_account_details,
- GNUNET_NO))
+ if (TALER_EC_NONE !=
+ (ec = TEH_json_validate_wireformat (sender_account_details,
+ GNUNET_NO,
+ &emsg)))
{
- GNUNET_break_op (0);
GNUNET_JSON_parse_free (spec);
- return TEH_RESPONSE_reply_arg_unknown (connection,
- TALER_EC_ADMIN_ADD_INCOMING_WIREFORMAT_UNSUPPORTED,
- "sender_account_details");
+ res = TEH_RESPONSE_reply_external_error (connection,
+ ec,
+ emsg);
+ GNUNET_free (emsg);
+ return res;
}
if (0 != strcasecmp (amount.currency,
TEH_exchange_currency_string))