merchant

Merchant backend to process payments, run by merchants
Log | Files | Refs | Submodules | README | LICENSE

commit b25d59dcbf1444b5e2c803992b786ba7399a5801
parent 723f096d6e94d02d5ced01c819bd06e82e9dcde6
Author: Florian Dold <dold@inria.fr>
Date:   Fri, 25 Dec 2015 16:07:21 +0100

Fix reference counting bug and contract signature

Diffstat:
Msrc/backend/taler-merchant-httpd_contract.c | 29+++++++++++++++--------------
1 file changed, 15 insertions(+), 14 deletions(-)

diff --git a/src/backend/taler-merchant-httpd_contract.c b/src/backend/taler-merchant-httpd_contract.c @@ -95,7 +95,7 @@ MH_handler_contract (struct TMH_RequestHandler *rh, sizeof (pubkey))); /* create contract signature */ GNUNET_assert (GNUNET_OK == - TALER_hash_json (root, + TALER_hash_json (jcontract, &contract.h_contract)); contract.purpose.purpose = htonl (TALER_SIGNATURE_MERCHANT_CONTRACT); contract.purpose.size = htonl (sizeof (contract)); @@ -103,30 +103,31 @@ MH_handler_contract (struct TMH_RequestHandler *rh, &contract.purpose, &contract_sig); - pay_url = json_object_get (jcontract, "pay_url"); + pay_url = json_object_get (root, "pay_url"); if (NULL == pay_url) { return TMH_RESPONSE_reply_internal_error (connection, "pay url missing"); } - exec_url = json_object_get (jcontract, "exec_url"); + exec_url = json_object_get (root, "exec_url"); if (NULL == exec_url) { return TMH_RESPONSE_reply_internal_error (connection, "exec url missing"); } - /* return final response */ - return TMH_RESPONSE_reply_json_pack (connection, - MHD_HTTP_OK, - "{s:o, s:o, s:o, s:o, s:o}", - "contract", jcontract, - "exec_url", exec_url, - "pay_url", pay_url, - "sig", TALER_json_from_data (&contract_sig, - sizeof (contract_sig)), - "H_contract", TALER_json_from_data (&contract.h_contract, - sizeof (contract.h_contract))); + res = TMH_RESPONSE_reply_json_pack (connection, + MHD_HTTP_OK, + "{s:O, s:O, s:O, s:o, s:o}", + "contract", jcontract, + "exec_url", exec_url, + "pay_url", pay_url, + "sig", TALER_json_from_data (&contract_sig, + sizeof (contract_sig)), + "H_contract", TALER_json_from_data (&contract.h_contract, + sizeof (contract.h_contract))); + json_decref (root); + return res; } /* end of taler-merchant-httpd_contract.c */