summaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/taler-merchant-httpd_exchanges.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/backend/taler-merchant-httpd_exchanges.c b/src/backend/taler-merchant-httpd_exchanges.c
index a0d32024..a011be43 100644
--- a/src/backend/taler-merchant-httpd_exchanges.c
+++ b/src/backend/taler-merchant-httpd_exchanges.c
@@ -341,15 +341,36 @@ process_wire_fees (void *cls,
}
while (NULL != fees)
{
+ struct GNUNET_HashCode h_wire_method;
+ enum GNUNET_DB_QueryStatus qs;
+
af = GNUNET_new (struct TALER_EXCHANGE_WireAggregateFees);
*af = *fees;
+ GNUNET_CRYPTO_hash (wire_method,
+ strlen (wire_method) + 1,
+ &h_wire_method);
+ qs = db->store_wire_fee_by_exchange (db->cls,
+ &exchange->master_pub,
+ &h_wire_method,
+ &af->wire_fee,
+ &af->closing_fee,
+ af->start_date,
+ af->end_date,
+ &af->master_sig);
+ if (0 > qs)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ "Failed to persist exchange wire fees in merchant DB!\n");
+ GNUNET_free (af);
+ fees = fees->next;
+ continue;
+ }
af->next = NULL;
if (NULL == endp)
f->af = af;
else
endp->next = af;
endp = af;
- // FIXME #4943: also preserve `fees` in backend DB (under wire method + exchange master pub!)
fees = fees->next;
}
}