summaryrefslogtreecommitdiff
path: root/src/bank-lib/fakebank.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2022-12-19 14:37:20 +0100
committerChristian Grothoff <christian@grothoff.org>2022-12-19 14:41:27 +0100
commitc4cc1ea13dccd7498b67f311d01c7c8b27838c5d (patch)
tree2213977149ec3ee2d57166e6cb52bc128a83cef0 /src/bank-lib/fakebank.c
parent80660f2d882391118d7ad41f73d495d3f84e2244 (diff)
downloadexchange-c4cc1ea13dccd7498b67f311d01c7c8b27838c5d.tar.gz
exchange-c4cc1ea13dccd7498b67f311d01c7c8b27838c5d.tar.bz2
exchange-c4cc1ea13dccd7498b67f311d01c7c8b27838c5d.zip
-fix 200 vs. 204 in fakebank
Diffstat (limited to 'src/bank-lib/fakebank.c')
-rw-r--r--src/bank-lib/fakebank.c38
1 files changed, 26 insertions, 12 deletions
diff --git a/src/bank-lib/fakebank.c b/src/bank-lib/fakebank.c
index 810290417..c067889a9 100644
--- a/src/bank-lib/fakebank.c
+++ b/src/bank-lib/fakebank.c
@@ -2257,23 +2257,20 @@ handle_debit_history (struct TALER_FAKEBANK_Handle *h,
if ( (NULL == t) ||
overflow)
{
- GNUNET_free (debit_payto);
if (GNUNET_TIME_relative_is_zero (ha.lp_timeout) &&
(0 < ha.delta))
{
GNUNET_assert (0 ==
pthread_mutex_unlock (&h->big_lock));
if (overflow)
+ {
+ GNUNET_free (debit_payto);
return TALER_MHD_reply_with_ec (
connection,
TALER_EC_BANK_ANCIENT_TRANSACTION_GONE,
NULL);
- return TALER_MHD_REPLY_JSON_PACK (
- connection,
- MHD_HTTP_OK,
- GNUNET_JSON_pack_array_steal (
- "outgoing_transactions",
- history));
+ }
+ goto finish;
}
*con_cls = &special_ptr;
start_lp (h,
@@ -2285,6 +2282,7 @@ handle_debit_history (struct TALER_FAKEBANK_Handle *h,
GNUNET_assert (0 ==
pthread_mutex_unlock (&h->big_lock));
json_decref (history);
+ GNUNET_free (debit_payto);
return MHD_YES;
}
if (t->debit_account != acc)
@@ -2397,6 +2395,16 @@ handle_debit_history (struct TALER_FAKEBANK_Handle *h,
}
GNUNET_assert (0 ==
pthread_mutex_unlock (&h->big_lock));
+finish:
+ if (0 == json_array_size (history))
+ {
+ json_decref (history);
+ return TALER_MHD_reply_static (connection,
+ MHD_HTTP_NO_CONTENT,
+ NULL,
+ NULL,
+ 0);
+ }
GNUNET_free (debit_payto);
return TALER_MHD_REPLY_JSON_PACK (connection,
MHD_HTTP_OK,
@@ -2500,11 +2508,7 @@ handle_credit_history (struct TALER_FAKEBANK_Handle *h,
connection,
TALER_EC_BANK_ANCIENT_TRANSACTION_GONE,
NULL);
- return TALER_MHD_REPLY_JSON_PACK (connection,
- MHD_HTTP_OK,
- GNUNET_JSON_pack_array_steal (
- "incoming_transactions",
- history));
+ goto finish;
}
*con_cls = &special_ptr;
start_lp (h,
@@ -2608,6 +2612,16 @@ handle_credit_history (struct TALER_FAKEBANK_Handle *h,
}
GNUNET_assert (0 ==
pthread_mutex_unlock (&h->big_lock));
+finish:
+ if (0 == json_array_size (history))
+ {
+ json_decref (history);
+ return TALER_MHD_reply_static (connection,
+ MHD_HTTP_NO_CONTENT,
+ NULL,
+ NULL,
+ 0);
+ }
return TALER_MHD_REPLY_JSON_PACK (connection,
MHD_HTTP_OK,
GNUNET_JSON_pack_array_steal (