aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bank-lib/bank_api_credit.c31
-rw-r--r--src/bank-lib/bank_api_debit.c31
-rw-r--r--src/benchmark/taler-exchange-benchmark.c11
-rw-r--r--src/exchange/taler-exchange-wirewatch.c4
4 files changed, 49 insertions, 28 deletions
diff --git a/src/bank-lib/bank_api_credit.c b/src/bank-lib/bank_api_credit.c
index 551831d24..4b6f40bbf 100644
--- a/src/bank-lib/bank_api_credit.c
+++ b/src/bank-lib/bank_api_credit.c
@@ -113,12 +113,18 @@ parse_account_history (struct TALER_BANK_CreditHistoryHandle *hh,
GNUNET_break_op (0);
return GNUNET_SYSERR;
}
- hh->hcb (hh->hcb_cls,
- MHD_HTTP_OK,
- TALER_EC_NONE,
- row_id,
- &td,
- transaction);
+ if (GNUNET_OK !=
+ hh->hcb (hh->hcb_cls,
+ MHD_HTTP_OK,
+ TALER_EC_NONE,
+ row_id,
+ &td,
+ transaction))
+ {
+ hh->hcb = NULL;
+ GNUNET_JSON_parse_free (hist_spec);
+ return GNUNET_OK;
+ }
GNUNET_JSON_parse_free (hist_spec);
}
return GNUNET_OK;
@@ -195,12 +201,13 @@ handle_credit_history_finished (void *cls,
response_code = 0;
break;
}
- hh->hcb (hh->hcb_cls,
- response_code,
- ec,
- 0LLU,
- NULL,
- j);
+ if (NULL != hh->hcb)
+ hh->hcb (hh->hcb_cls,
+ response_code,
+ ec,
+ 0LLU,
+ NULL,
+ j);
TALER_BANK_credit_history_cancel (hh);
}
diff --git a/src/bank-lib/bank_api_debit.c b/src/bank-lib/bank_api_debit.c
index 1418492e2..33ff20ef8 100644
--- a/src/bank-lib/bank_api_debit.c
+++ b/src/bank-lib/bank_api_debit.c
@@ -115,12 +115,18 @@ parse_account_history (struct TALER_BANK_DebitHistoryHandle *hh,
GNUNET_break_op (0);
return GNUNET_SYSERR;
}
- hh->hcb (hh->hcb_cls,
- MHD_HTTP_OK,
- TALER_EC_NONE,
- row_id,
- &td,
- transaction);
+ if (GNUNET_OK !=
+ hh->hcb (hh->hcb_cls,
+ MHD_HTTP_OK,
+ TALER_EC_NONE,
+ row_id,
+ &td,
+ transaction))
+ {
+ hh->hcb = NULL;
+ GNUNET_JSON_parse_free (hist_spec);
+ return GNUNET_OK;
+ }
GNUNET_JSON_parse_free (hist_spec);
}
return GNUNET_OK;
@@ -199,12 +205,13 @@ handle_debit_history_finished (void *cls,
response_code = 0;
break;
}
- hh->hcb (hh->hcb_cls,
- response_code,
- ec,
- 0LLU,
- NULL,
- j);
+ if (NULL != hh->hcb)
+ hh->hcb (hh->hcb_cls,
+ response_code,
+ ec,
+ 0LLU,
+ NULL,
+ j);
TALER_BANK_debit_history_cancel (hh);
}
diff --git a/src/benchmark/taler-exchange-benchmark.c b/src/benchmark/taler-exchange-benchmark.c
index 95c3ae239..8bfbc42a5 100644
--- a/src/benchmark/taler-exchange-benchmark.c
+++ b/src/benchmark/taler-exchange-benchmark.c
@@ -297,6 +297,9 @@ eval_probability (float probability)
}
+static int reserves_first = 1;
+
+
/**
* Actual commands construction and execution.
*
@@ -355,7 +358,9 @@ run (void *cls,
GNUNET_asprintf (&batch_label,
"batch-start-%u",
j);
- all_commands[j * (howmany_coins + 1)]
+ all_commands[reserves_first
+ ? j
+ : j * (howmany_coins + 1)]
= TALER_TESTING_cmd_batch (add_label (batch_label),
make_reserve);
}
@@ -433,7 +438,9 @@ run (void *cls,
"unit-%u-%u",
i,
j);
- all_commands[j * (howmany_coins + 1) + (1 + i)]
+ all_commands[reserves_first
+ ? howmany_reserves + j * howmany_coins + i
+ : j * (howmany_coins + 1) + (1 + i)]
= TALER_TESTING_cmd_batch (add_label (unit_label),
unit);
}
diff --git a/src/exchange/taler-exchange-wirewatch.c b/src/exchange/taler-exchange-wirewatch.c
index 04bf21698..ede6220ba 100644
--- a/src/exchange/taler-exchange-wirewatch.c
+++ b/src/exchange/taler-exchange-wirewatch.c
@@ -455,8 +455,8 @@ history_cb (void *cls,
}
if (GNUNET_DB_STATUS_SOFT_ERROR == qs)
{
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Got DB soft error for reserve_in_insert\n");
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+ "Got DB soft error for reserves_in_insert. Rolling back.\n");
db_plugin->rollback (db_plugin->cls,
session);
/* try again */