diff options
author | Christian Grothoff <christian@grothoff.org> | 2021-08-25 07:58:27 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2021-08-25 07:58:27 +0200 |
commit | 5672080efcaca68ed2d301adf1673d45f7638a16 (patch) | |
tree | 12767bfb5996765f70f6b421c1179c0e56e8bc3c /src/backend/taler-merchant-httpd_private-get-orders-ID.c | |
parent | 0c78255cba8bc6ed6c8042995292f02d4980e714 (diff) | |
download | merchant-5672080efcaca68ed2d301adf1673d45f7638a16.tar.gz merchant-5672080efcaca68ed2d301adf1673d45f7638a16.tar.bz2 merchant-5672080efcaca68ed2d301adf1673d45f7638a16.zip |
-add more events
Diffstat (limited to 'src/backend/taler-merchant-httpd_private-get-orders-ID.c')
-rw-r--r-- | src/backend/taler-merchant-httpd_private-get-orders-ID.c | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/src/backend/taler-merchant-httpd_private-get-orders-ID.c b/src/backend/taler-merchant-httpd_private-get-orders-ID.c index 6bba091b..3688bb87 100644 --- a/src/backend/taler-merchant-httpd_private-get-orders-ID.c +++ b/src/backend/taler-merchant-httpd_private-get-orders-ID.c @@ -158,11 +158,18 @@ struct GetOrderRequestContext struct GNUNET_SCHEDULER_Task *tt; /** - * Database event we are waiting on to be resuming. + * Database event we are waiting on to be resuming + * for payment or refunds. */ struct GNUNET_DB_EventHandler *eh; /** + * Database event we are waiting on to be resuming + * for session capture. + */ + struct GNUNET_DB_EventHandler *seh; + + /** * Contract terms of the payment we are checking. NULL when they * are not (yet) known. */ @@ -656,6 +663,11 @@ gorc_cleanup (void *cls) TMH_db->event_listen_cancel (gorc->eh); gorc->eh = NULL; } + if (NULL != gorc->seh) + { + TMH_db->event_listen_cancel (gorc->seh); + gorc->seh = NULL; + } GNUNET_free (gorc); } @@ -870,6 +882,29 @@ TMH_private_get_orders_ID (const struct TMH_RequestHandler *rh, timeout, &resume_by_event, gorc); + if ( (NULL != gorc->session_id) && + (NULL != gorc->fulfillment_url) ) + { +#ifndef TALER_API_VERSION +#define TALER_DBEVENT_MERCHANT_SESSION_CAPTURED 1103 +#endif + struct TMH_SessionEvent session_eh = { + .header.size = htons (sizeof (session_eh)), + .header.type = htons (TALER_DBEVENT_MERCHANT_SESSION_CAPTURED) + }; + + GNUNET_CRYPTO_hash (gorc->session_id, + strlen (gorc->session_id), + &session_eh.h_session_id); + GNUNET_CRYPTO_hash (gorc->fulfillment_url, + strlen (gorc->fulfillment_url), + &session_eh.h_fulfillment_url); + gorc->seh = TMH_db->event_listen (TMH_db->cls, + &session_eh.header, + timeout, + &resume_by_event, + gorc); + } } } else |