sync

Backup service to store encrypted wallet databases (experimental)
Log | Files | Refs | Submodules | README | LICENSE

commit 8cae896e4df6a41e46e04ee12bd67a619928b74a
parent c2b5ac518c05250e15ce720c131fb2814f7fa3eb
Author: Christian Grothoff <christian@grothoff.org>
Date:   Sun, 22 Mar 2026 15:52:40 +0100

adapt to merchant API change

Diffstat:
Msrc/sync/sync-httpd2_backup-post.c | 92+++++++++++++++++++++++++++++++++++++++++++++----------------------------------
Msrc/sync/sync-httpd_backup_post.c | 92+++++++++++++++++++++++++++++++++++++++++++++----------------------------------
2 files changed, 105 insertions(+), 79 deletions(-)

diff --git a/src/sync/sync-httpd2_backup-post.c b/src/sync/sync-httpd2_backup-post.c @@ -97,12 +97,12 @@ struct BackupContext /** * Used while we are awaiting proposal creation. */ - struct TALER_MERCHANT_PostOrdersHandle *po; + struct TALER_MERCHANT_PostPrivateOrdersHandle *po; /** * Used while we are waiting payment. */ - struct TALER_MERCHANT_OrderMerchantGetHandle *omgh; + struct TALER_MERCHANT_GetPrivateOrderHandle *omgh; /** * Order under which the client promised payment, or NULL. @@ -154,12 +154,12 @@ SH_resume_all_bc () MHD_request_resume (bc->request); if (NULL != bc->po) { - TALER_MERCHANT_orders_post_cancel (bc->po); + TALER_MERCHANT_post_private_orders_cancel (bc->po); bc->po = NULL; } if (NULL != bc->omgh) { - TALER_MERCHANT_merchant_order_get_cancel (bc->omgh); + TALER_MERCHANT_get_private_order_cancel (bc->omgh); bc->omgh = NULL; } } @@ -182,7 +182,15 @@ cleanup_ctx (void *cls, GNUNET_assert (cls == request_app_context); if (NULL != bc->po) - TALER_MERCHANT_orders_post_cancel (bc->po); + { + TALER_MERCHANT_post_private_orders_cancel (bc->po); + bc->po = NULL; + } + if (NULL != bc->omgh) + { + TALER_MERCHANT_get_private_order_cancel (bc->omgh); + bc->omgh = NULL; + } GNUNET_free (bc->existing_order_id); GNUNET_free (bc); } @@ -274,8 +282,9 @@ make_payment_request (const char *order_id, * @param por response details */ static void -proposal_cb (void *cls, - const struct TALER_MERCHANT_PostOrdersReply *por) +proposal_cb ( + void *cls, + const struct TALER_MERCHANT_PostPrivateOrdersResponse *por) { struct BackupContext *bc = cls; enum SYNC_DB_QueryStatus qs; @@ -377,8 +386,9 @@ ongoing_payment_cb (void *cls, * @param osr order status */ static void -check_payment_cb (void *cls, - const struct TALER_MERCHANT_OrderStatusResponse *osr) +check_payment_cb ( + void *cls, + const struct TALER_MERCHANT_GetPrivateOrderResponse *osr) { struct BackupContext *bc = cls; const struct TALER_MERCHANT_HttpResponse *hr = &osr->hr; @@ -482,14 +492,19 @@ await_payment (struct BackupContext *bc, bc_tail, bc); bc->order_id = order_id; - bc->omgh = TALER_MERCHANT_merchant_order_get (SH_ctx, - SH_backend_url, - order_id, - NULL /* our payments are NOT session-bound */ - , - timeout, - &check_payment_cb, - bc); + bc->omgh = TALER_MERCHANT_get_private_order_create ( + SH_ctx, + SH_backend_url, + order_id); + GNUNET_assert (GNUNET_OK == + TALER_MERCHANT_get_private_order_set_options ( + bc->omgh, + TALER_MERCHANT_get_private_order_option_timeout (timeout))); + GNUNET_assert (TALER_EC_NONE == + TALER_MERCHANT_get_private_order_start ( + bc->omgh, + &check_payment_cb, + bc)); SH_trigger_curl (); } @@ -511,9 +526,6 @@ begin_payment (struct BackupContext *bc, int pay_req, bool *suspend) { - static const char *no_uuids[1] = { NULL }; - json_t *order; - *suspend = false; if (! bc->force_fresh_order) { @@ -548,27 +560,27 @@ begin_payment (struct BackupContext *bc, "Suspending request while creating order at `%s'\n", SH_backend_url); *suspend = true; - order = GNUNET_JSON_PACK ( - TALER_JSON_pack_amount ("amount", - &SH_annual_fee), - GNUNET_JSON_pack_string ("summary", - "annual fee for sync service"), - GNUNET_JSON_pack_string ("fulfillment_url", - SH_fulfillment_url)); - bc->po = TALER_MERCHANT_orders_post2 (SH_ctx, - SH_backend_url, - order, - GNUNET_TIME_UNIT_ZERO, - NULL, /* no payment target */ - 0, - NULL, /* no inventory products */ - 0, - no_uuids, /* no uuids */ - false, /* do NOT require claim token */ - &proposal_cb, - bc); + { + json_t *order; + + order = GNUNET_JSON_PACK ( + TALER_JSON_pack_amount ("amount", + &SH_annual_fee), + GNUNET_JSON_pack_string ("summary", + "annual fee for sync service"), + GNUNET_JSON_pack_string ("fulfillment_url", + SH_fulfillment_url)); + bc->po = TALER_MERCHANT_post_private_orders_create (SH_ctx, + SH_backend_url, + order); + json_decref (order); + } + GNUNET_assert (TALER_EC_NONE == + TALER_MERCHANT_post_private_orders_start ( + bc->po, + &proposal_cb, + bc)); SH_trigger_curl (); - json_decref (order); return NULL; } diff --git a/src/sync/sync-httpd_backup_post.c b/src/sync/sync-httpd_backup_post.c @@ -100,12 +100,12 @@ struct BackupContext /** * Used while we are awaiting proposal creation. */ - struct TALER_MERCHANT_PostOrdersHandle *po; + struct TALER_MERCHANT_PostPrivateOrdersHandle *po; /** * Used while we are waiting payment. */ - struct TALER_MERCHANT_OrderMerchantGetHandle *omgh; + struct TALER_MERCHANT_GetPrivateOrderHandle *omgh; /** * HTTP response code to use on resume, if non-NULL. @@ -178,12 +178,12 @@ SH_resume_all_bc () MHD_resume_connection (bc->con); if (NULL != bc->po) { - TALER_MERCHANT_orders_post_cancel (bc->po); + TALER_MERCHANT_post_private_orders_cancel (bc->po); bc->po = NULL; } if (NULL != bc->omgh) { - TALER_MERCHANT_merchant_order_get_cancel (bc->omgh); + TALER_MERCHANT_get_private_order_cancel (bc->omgh); bc->omgh = NULL; } } @@ -201,11 +201,22 @@ cleanup_ctx (struct TM_HandlerContext *hc) struct BackupContext *bc = (struct BackupContext *) hc; if (NULL != bc->po) - TALER_MERCHANT_orders_post_cancel (bc->po); + { + TALER_MERCHANT_post_private_orders_cancel (bc->po); + bc->po = NULL; + } + if (NULL != bc->omgh) + { + TALER_MERCHANT_get_private_order_cancel (bc->omgh); + bc->omgh = NULL; + } if (NULL != bc->hash_ctx) GNUNET_CRYPTO_hash_context_abort (bc->hash_ctx); if (NULL != bc->resp) + { MHD_destroy_response (bc->resp); + bc->resp = NULL; + } GNUNET_free (bc->existing_order_id); GNUNET_free (bc->upload); GNUNET_free (bc); @@ -298,8 +309,9 @@ make_payment_request (const char *order_id, * @param por response details */ static void -proposal_cb (void *cls, - const struct TALER_MERCHANT_PostOrdersReply *por) +proposal_cb ( + void *cls, + const struct TALER_MERCHANT_PostPrivateOrdersResponse *por) { struct BackupContext *bc = cls; enum SYNC_DB_QueryStatus qs; @@ -404,7 +416,7 @@ ongoing_payment_cb (void *cls, */ static void check_payment_cb (void *cls, - const struct TALER_MERCHANT_OrderStatusResponse *osr) + const struct TALER_MERCHANT_GetPrivateOrderResponse *osr) { struct BackupContext *bc = cls; const struct TALER_MERCHANT_HttpResponse *hr = &osr->hr; @@ -513,14 +525,19 @@ await_payment (struct BackupContext *bc, bc); MHD_suspend_connection (bc->con); bc->order_id = order_id; - bc->omgh = TALER_MERCHANT_merchant_order_get (SH_ctx, - SH_backend_url, - order_id, - NULL /* our payments are NOT session-bound */ - , - timeout, - &check_payment_cb, - bc); + bc->omgh = TALER_MERCHANT_get_private_order_create ( + SH_ctx, + SH_backend_url, + order_id); + GNUNET_assert (GNUNET_OK == + TALER_MERCHANT_get_private_order_set_options ( + bc->omgh, + TALER_MERCHANT_get_private_order_option_timeout (timeout))); + GNUNET_assert (TALER_EC_NONE == + TALER_MERCHANT_get_private_order_start ( + bc->omgh, + &check_payment_cb, + bc)); SH_trigger_curl (); } @@ -540,9 +557,6 @@ static MHD_RESULT begin_payment (struct BackupContext *bc, int pay_req) { - static const char *no_uuids[1] = { NULL }; - json_t *order; - if (! bc->force_fresh_order) { enum GNUNET_DB_QueryStatus qs; @@ -583,27 +597,27 @@ begin_payment (struct BackupContext *bc, "Suspending connection while creating order at `%s'\n", SH_backend_url); MHD_suspend_connection (bc->con); - order = GNUNET_JSON_PACK ( - TALER_JSON_pack_amount ("amount", - &SH_annual_fee), - GNUNET_JSON_pack_string ("summary", - "annual fee for sync service"), - GNUNET_JSON_pack_string ("fulfillment_url", - SH_fulfillment_url)); - bc->po = TALER_MERCHANT_orders_post2 (SH_ctx, - SH_backend_url, - order, - GNUNET_TIME_UNIT_ZERO, - NULL, /* no payment target */ - 0, - NULL, /* no inventory products */ - 0, - no_uuids, /* no uuids */ - false, /* do NOT require claim token */ - &proposal_cb, - bc); + { + json_t *order; + + order = GNUNET_JSON_PACK ( + TALER_JSON_pack_amount ("amount", + &SH_annual_fee), + GNUNET_JSON_pack_string ("summary", + "annual fee for sync service"), + GNUNET_JSON_pack_string ("fulfillment_url", + SH_fulfillment_url)); + bc->po = TALER_MERCHANT_post_private_orders_create (SH_ctx, + SH_backend_url, + order); + json_decref (order); + } + GNUNET_assert (TALER_EC_NONE == + TALER_MERCHANT_post_private_orders_start ( + bc->po, + &proposal_cb, + bc)); SH_trigger_curl (); - json_decref (order); return MHD_YES; }