diff options
author | Nic <nic@eigel.ch> | 2024-01-09 01:26:00 +0100 |
---|---|---|
committer | Nic <nic@eigel.ch> | 2024-01-09 01:26:00 +0100 |
commit | a7b6db8c59061ab386c2b14949eb871477a7b7fb (patch) | |
tree | b52591d4ee5df2902c45943b1ca91f3172b9138e /src/auditor/taler-helper-auditor-deposits.c | |
parent | 342f119263130001803d5847fbe72a259647a4df (diff) | |
download | exchange-a7b6db8c59061ab386c2b14949eb871477a7b7fb.tar.xz |
adding auditor resp endpoints, trigger for helper deposit_confirmations
Diffstat (limited to 'src/auditor/taler-helper-auditor-deposits.c')
-rw-r--r-- | src/auditor/taler-helper-auditor-deposits.c | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/src/auditor/taler-helper-auditor-deposits.c b/src/auditor/taler-helper-auditor-deposits.c index 8ec2b223e..4f2283739 100644 --- a/src/auditor/taler-helper-auditor-deposits.c +++ b/src/auditor/taler-helper-auditor-deposits.c @@ -29,6 +29,8 @@ #include "taler_bank_service.h" #include "taler_signatures.h" #include "report-lib.h" +#include <taler/taler_dbevents.h> +#include <jansson.h> /* -- @@ -51,6 +53,10 @@ -- AND NOT ancient; */ +/** + * Next task to run, if any. + */ +static struct GNUNET_SCHEDULER_Task *task; /** * Return value from main(). @@ -77,6 +83,13 @@ static struct TALER_Amount total_missed_deposit_confirmations; */ static int internal_checks; +static struct GNUNET_DB_EventHandler *eh; + +/** + * Our database plugin. + */ +static struct TALER_AUDITORDB_Plugin *db_plugin; + /** * Closure for #test_dc. */ @@ -289,6 +302,29 @@ analyze_deposit_confirmations (void *cls) /** + * Function called on events received from Postgres. + * + * @param cls closure, NULL + * @param extra additional event data provided + * @param extra_size number of bytes in @a extra + */ +static void +db_notify (void *cls, + const void *extra, + size_t extra_size) +{ + (void) cls; + (void) extra; + (void) extra_size; + + GNUNET_assert (NULL != task); + GNUNET_SCHEDULER_cancel (task); + task = GNUNET_SCHEDULER_add_now (&analyze_deposit_confirmations, + NULL); +} + + +/** * Main function that will be run. * * @param cls closure @@ -313,6 +349,39 @@ run (void *cls, global_ret = EXIT_FAILURE; return; } + + /*if (NULL == + (db_plugin = TALER_AUDITORDB_plugin_load (cfg))) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "Failed to initialize DB subsystem\n"); + GNUNET_SCHEDULER_shutdown (); + return; + } + if (GNUNET_OK != + db_plugin->connect (db_plugin->cls)) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "Failed to connect to database\n"); + GNUNET_SCHEDULER_shutdown (); + return; + } + { + struct GNUNET_DB_EventHeaderP es = { + .size = htons (sizeof (es)), + .type = htons (TALER_DBEVENT_AUDITOR_NEW_DEPOSIT_CONFIRMATIONS) + }; + + eh = db_plugin->event_listen (db_plugin->cls, + &es, + GNUNET_TIME_UNIT_FOREVER_REL, + &db_notify, + NULL); + } + GNUNET_assert (NULL == task); + task = GNUNET_SCHEDULER_add_now (&select_work, + NULL);*/ + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Starting deposit audit\n"); GNUNET_assert (NULL != |