summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Buchanan <jonathan.russ.buchanan@gmail.com>2020-07-29 18:23:51 -0400
committerJonathan Buchanan <jonathan.russ.buchanan@gmail.com>2020-07-29 18:23:51 -0400
commit26085c8712c509d1384d1de99fec1bc9d3d15386 (patch)
treefb37abf5e692ae0f32889ca03133e3ca10682f2b
parent91c676ddc756cdebd374a9c4fe3e40afba643a00 (diff)
downloadmerchant-26085c8712c509d1384d1de99fec1bc9d3d15386.tar.gz
merchant-26085c8712c509d1384d1de99fec1bc9d3d15386.tar.bz2
merchant-26085c8712c509d1384d1de99fec1bc9d3d15386.zip
remove allocations and pointers from claim token client/test code
-rw-r--r--src/include/taler_merchant_service.h6
-rw-r--r--src/lib/merchant_api_post_order_claim.c6
-rw-r--r--src/lib/merchant_api_post_orders.c17
-rw-r--r--src/testing/testing_api_cmd_claim_order.c8
-rw-r--r--src/testing/testing_api_cmd_post_orders.c12
5 files changed, 21 insertions, 28 deletions
diff --git a/src/include/taler_merchant_service.h b/src/include/taler_merchant_service.h
index 783520c1..f706ada9 100644
--- a/src/include/taler_merchant_service.h
+++ b/src/include/taler_merchant_service.h
@@ -1114,7 +1114,7 @@ struct TALER_MERCHANT_PostOrdersOperation;
* @param cls closure
* @param hr HTTP response details
* @param order_id order id of the newly created order
- * @param token the claim token generated by the merchant (NULL if
+ * @param token the claim token generated by the merchant (zeroed if
* it wasn't generated).
*/
typedef void
@@ -1122,7 +1122,7 @@ typedef void
void *cls,
const struct TALER_MERCHANT_HttpResponse *hr,
const char *order_id,
- const struct TALER_ClaimTokenP *token);
+ struct TALER_ClaimTokenP token);
/**
@@ -1824,7 +1824,7 @@ TALER_MERCHANT_order_claim (struct GNUNET_CURL_Context *ctx,
const char *backend_url,
const char *order_id,
const struct GNUNET_CRYPTO_EddsaPublicKey *nonce,
- const struct TALER_ClaimTokenP *claim_token,
+ const struct TALER_ClaimTokenP claim_token,
TALER_MERCHANT_OrderClaimCallback cb,
void *cb_cls);
diff --git a/src/lib/merchant_api_post_order_claim.c b/src/lib/merchant_api_post_order_claim.c
index 5ec2e243..58e2f4bf 100644
--- a/src/lib/merchant_api_post_order_claim.c
+++ b/src/lib/merchant_api_post_order_claim.c
@@ -185,7 +185,7 @@ TALER_MERCHANT_order_claim (struct GNUNET_CURL_Context *ctx,
const char *backend_url,
const char *order_id,
const struct GNUNET_CRYPTO_EddsaPublicKey *nonce,
- const struct TALER_ClaimTokenP *claim_token,
+ const struct TALER_ClaimTokenP claim_token,
TALER_MERCHANT_OrderClaimCallback cb,
void *cb_cls)
{
@@ -200,12 +200,12 @@ TALER_MERCHANT_order_claim (struct GNUNET_CURL_Context *ctx,
GNUNET_break (0);
return NULL;
}
- if (NULL != claim_token)
+ if (0 != GNUNET_is_zero (&claim_token))
{
GNUNET_assert (0 ==
json_object_set_new (req_obj,
"token",
- GNUNET_JSON_from_data_auto (claim_token)));
+ GNUNET_JSON_from_data_auto (&claim_token)));
}
och = GNUNET_new (struct TALER_MERCHANT_OrderClaimHandle);
och->ctx = ctx;
diff --git a/src/lib/merchant_api_post_orders.c b/src/lib/merchant_api_post_orders.c
index 1dafeb7f..e7f83ef3 100644
--- a/src/lib/merchant_api_post_orders.c
+++ b/src/lib/merchant_api_post_orders.c
@@ -87,7 +87,7 @@ handle_post_order_finished (void *cls,
{
struct TALER_MERCHANT_PostOrdersOperation *po = cls;
const char *order_id = NULL;
- struct TALER_ClaimTokenP token;
+ struct TALER_ClaimTokenP token = {0};
const json_t *json = response;
struct TALER_MERCHANT_HttpResponse hr = {
.http_status = (unsigned int) response_code,
@@ -170,15 +170,10 @@ handle_post_order_finished (void *cls,
GNUNET_break_op (0);
break;
}
- {
- const struct TALER_ClaimTokenP *token_ptr = &token;
- if (!has_token)
- token_ptr = NULL;
- po->cb (po->cb_cls,
- &hr,
- order_id,
- token_ptr);
- }
+ po->cb (po->cb_cls,
+ &hr,
+ order_id,
+ token);
if (MHD_HTTP_OK == response_code)
GNUNET_JSON_parse_free (spec);
TALER_MERCHANT_orders_post_cancel (po);
@@ -334,7 +329,7 @@ TALER_MERCHANT_orders_post2 (
"lock_uuids",
ua));
}
- if (true != create_token)
+ if (! create_token)
{
GNUNET_assert (0 ==
json_object_set_new (req,
diff --git a/src/testing/testing_api_cmd_claim_order.c b/src/testing/testing_api_cmd_claim_order.c
index ab95f592..ecdd1078 100644
--- a/src/testing/testing_api_cmd_claim_order.c
+++ b/src/testing/testing_api_cmd_claim_order.c
@@ -187,9 +187,9 @@ order_claim_run (void *cls,
struct OrderClaimState *pls = cls;
const char *order_id;
const struct GNUNET_CRYPTO_EddsaPublicKey *nonce;
- const struct TALER_ClaimTokenP *claim_token;
- /* Only used if we do NOT use the nonce from traits. */
+ /* Only used if we do NOT use the nonce/token from traits. */
struct GNUNET_CRYPTO_EddsaPublicKey dummy_nonce;
+ struct TALER_ClaimTokenP claim_token = {0};
pls->is = is;
if (NULL != pls->order_id)
@@ -203,6 +203,7 @@ order_claim_run (void *cls,
else
{
const struct TALER_TESTING_Command *order_cmd;
+ const struct TALER_ClaimTokenP *ct;
order_cmd
= TALER_TESTING_interpreter_lookup_command (is,
@@ -222,10 +223,11 @@ order_claim_run (void *cls,
if (GNUNET_OK !=
TALER_TESTING_get_trait_claim_token (order_cmd,
0,
- &claim_token))
+ &ct))
{
TALER_TESTING_FAIL (is);
}
+ claim_token = *ct;
if (GNUNET_OK !=
TALER_TESTING_get_trait_order_id (order_cmd,
diff --git a/src/testing/testing_api_cmd_post_orders.c b/src/testing/testing_api_cmd_post_orders.c
index 119245a7..313be782 100644
--- a/src/testing/testing_api_cmd_post_orders.c
+++ b/src/testing/testing_api_cmd_post_orders.c
@@ -80,7 +80,7 @@ struct OrdersState
/**
* The claim token
*/
- struct TALER_ClaimTokenP *claim_token;
+ struct TALER_ClaimTokenP claim_token;
/**
* URL of the merchant backend.
@@ -148,7 +148,7 @@ orders_traits (void *cls,
TALER_TESTING_make_trait_merchant_sig (0, &ps->merchant_sig),
TALER_TESTING_make_trait_merchant_pub (0, &ps->merchant_pub),
TALER_TESTING_make_trait_claim_nonce (0, &ps->nonce),
- TALER_TESTING_make_trait_claim_token (0, ps->claim_token),
+ TALER_TESTING_make_trait_claim_token (0, &ps->claim_token),
TALER_TESTING_trait_end ()
};
@@ -232,14 +232,12 @@ static void
order_cb (void *cls,
const struct TALER_MERCHANT_HttpResponse *hr,
const char *order_id,
- const struct TALER_ClaimTokenP *claim_token)
+ struct TALER_ClaimTokenP claim_token)
{
struct OrdersState *ps = cls;
ps->po = NULL;
- if (NULL != claim_token)
- ps->claim_token = GNUNET_memdup (claim_token,
- sizeof (struct TALER_ClaimTokenP));
+ ps->claim_token = claim_token;
if (ps->http_status != hr->http_status)
{
TALER_LOG_ERROR ("Given vs expected: %u(%d) vs %u\n",
@@ -529,8 +527,6 @@ orders_cleanup (void *cls,
json_decref (ps->contract_terms);
GNUNET_free (ps->order);
GNUNET_free_nz ((void *) ps->order_id);
- if (NULL != ps->claim_token)
- GNUNET_free (ps->claim_token);
GNUNET_free (ps);
}