[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] [taler-merchant] branch master updated: extend test_merchan
From: |
gnunet |
Subject: |
[GNUnet-SVN] [taler-merchant] branch master updated: extend test_merchant_api interpreter with command to run wirewatch (not yet in use) |
Date: |
Sun, 10 Dec 2017 18:58:40 +0100 |
This is an automated email from the git hooks/post-receive script.
grothoff pushed a commit to branch master
in repository merchant.
The following commit(s) were added to refs/heads/master by this push:
new 5be5ce5 extend test_merchant_api interpreter with command to run
wirewatch (not yet in use)
5be5ce5 is described below
commit 5be5ce5b1041c414e156276f39921de156f00479
Author: Christian Grothoff <address@hidden>
AuthorDate: Sun Dec 10 18:58:15 2017 +0100
extend test_merchant_api interpreter with command to run wirewatch (not yet
in use)
---
src/lib/test_merchant_api.c | 99 ++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 89 insertions(+), 10 deletions(-)
diff --git a/src/lib/test_merchant_api.c b/src/lib/test_merchant_api.c
index d68ed20..70c49a3 100644
--- a/src/lib/test_merchant_api.c
+++ b/src/lib/test_merchant_api.c
@@ -176,6 +176,11 @@ enum OpCode
OC_RUN_AGGREGATOR,
/**
+ * Run the wirewatcher to check for incoming transactions.
+ */
+ OC_RUN_WIREWATCH,
+
+ /**
* Check that the fakebank has received a certain transaction.
*/
OC_CHECK_BANK_TRANSFER,
@@ -542,6 +547,20 @@ struct Command
struct {
/**
+ * Process for the wirewatcher.
+ */
+ struct GNUNET_OS_Process *wirewatch_proc;
+
+ /**
+ * ID of task called whenever we get a SIGCHILD.
+ */
+ struct GNUNET_SCHEDULER_Task *child_death_task;
+
+ } run_wirewatch;
+
+ struct {
+
+ /**
* Which amount do we expect to see transferred?
*/
const char *amount;
@@ -1619,15 +1638,31 @@ maint_child_death (void *cls)
const struct GNUNET_DISK_FileHandle *pr;
char c[16];
- cmd->details.run_aggregator.child_death_task = NULL;
- pr = GNUNET_DISK_pipe_handle (sigpipe,
- GNUNET_DISK_PIPE_END_READ);
- GNUNET_break (0 < GNUNET_DISK_file_read (pr,
- &c,
- sizeof (c)));
- GNUNET_OS_process_wait (cmd->details.run_aggregator.aggregator_proc);
- GNUNET_OS_process_destroy (cmd->details.run_aggregator.aggregator_proc);
- cmd->details.run_aggregator.aggregator_proc = NULL;
+ switch (cmd->oc) {
+ case OC_RUN_AGGREGATOR:
+ cmd->details.run_aggregator.child_death_task = NULL;
+ pr = GNUNET_DISK_pipe_handle (sigpipe,
+ GNUNET_DISK_PIPE_END_READ);
+ GNUNET_break (0 < GNUNET_DISK_file_read (pr,
+ &c,
+ sizeof (c)));
+ GNUNET_OS_process_wait (cmd->details.run_aggregator.aggregator_proc);
+ GNUNET_OS_process_destroy (cmd->details.run_aggregator.aggregator_proc);
+ cmd->details.run_aggregator.aggregator_proc = NULL;
+ break;
+ case OC_RUN_WIREWATCH:
+ cmd->details.run_wirewatch.child_death_task = NULL;
+ pr = GNUNET_DISK_pipe_handle (sigpipe, GNUNET_DISK_PIPE_END_READ);
+ GNUNET_break (0 < GNUNET_DISK_file_read (pr, &c, sizeof (c)));
+ GNUNET_OS_process_wait (cmd->details.run_wirewatch.wirewatch_proc);
+ GNUNET_OS_process_destroy (cmd->details.run_wirewatch.wirewatch_proc);
+ cmd->details.run_wirewatch.wirewatch_proc = NULL;
+ break;
+ default:
+ GNUNET_break (0);
+ fail (is);
+ return;
+ }
next_command (is);
}
@@ -2143,6 +2178,22 @@ cleanup_state (struct InterpreterState *is)
cmd->details.run_aggregator.child_death_task = NULL;
}
break;
+ case OC_RUN_WIREWATCH:
+ if (NULL != cmd->details.run_wirewatch.wirewatch_proc)
+ {
+ GNUNET_break (0 ==
+ GNUNET_OS_process_kill
(cmd->details.run_wirewatch.wirewatch_proc,
+ SIGKILL));
+ GNUNET_OS_process_wait (cmd->details.run_wirewatch.wirewatch_proc);
+ GNUNET_OS_process_destroy (cmd->details.run_wirewatch.wirewatch_proc);
+ cmd->details.run_wirewatch.wirewatch_proc = NULL;
+ }
+ if (NULL != cmd->details.run_wirewatch.child_death_task)
+ {
+ GNUNET_SCHEDULER_cancel (cmd->details.run_wirewatch.child_death_task);
+ cmd->details.run_wirewatch.child_death_task = NULL;
+ }
+ break;
case OC_CHECK_BANK_TRANSFER:
GNUNET_free_non_null (cmd->details.check_bank_transfer.subject);
cmd->details.check_bank_transfer.subject = NULL;
@@ -2347,7 +2398,7 @@ interpreter_run (void *cls)
char *section;
char *keys;
struct GNUNET_CRYPTO_EddsaPrivateKey *pk;
-
+
GNUNET_asprintf (§ion,
"merchant-instance-%s",
cmd->details.admin_add_incoming.instance);
@@ -2672,6 +2723,34 @@ interpreter_run (void *cls)
&maint_child_death, is);
}
break;
+ case OC_RUN_WIREWATCH:
+ {
+ const struct GNUNET_DISK_FileHandle *pr;
+
+ cmd->details.run_wirewatch.wirewatch_proc
+ = GNUNET_OS_start_process (GNUNET_NO,
+ GNUNET_OS_INHERIT_STD_ALL,
+ NULL, NULL, NULL,
+ "taler-exchange-wirewatch",
+ "taler-exchange-wirewatch",
+ "-c", "test_exchange_api.conf",
+ "-t", "test", /* use Taler's bank/fakebank
*/
+ "-T", /* exit when done */
+ NULL);
+ if (NULL == cmd->details.run_wirewatch.wirewatch_proc)
+ {
+ GNUNET_break (0);
+ fail (is);
+ return;
+ }
+ pr = GNUNET_DISK_pipe_handle (sigpipe,
+ GNUNET_DISK_PIPE_END_READ);
+ cmd->details.run_wirewatch.child_death_task
+ = GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL,
+ pr,
+ &maint_child_death, is);
+ return;
+ }
case OC_CHECK_BANK_TRANSFER:
{
GNUNET_assert (GNUNET_OK == TALER_string_to_amount
--
To stop receiving notification emails like this one, please contact
address@hidden
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] [taler-merchant] branch master updated: extend test_merchant_api interpreter with command to run wirewatch (not yet in use),
gnunet <=