commit 341ed690d57018f6c2679eaef1ce0d79d023771a
parent 96450beeae8c2f6495ad300ea75e947b2a1e8e27
Author: Christian Grothoff <christian@grothoff.org>
Date: Mon, 16 Mar 2026 23:38:38 +0100
adapt to revised GNUNET_process() API one more time
Diffstat:
1 file changed, 29 insertions(+), 21 deletions(-)
diff --git a/src/taler-mdb.c b/src/taler-mdb.c
@@ -649,13 +649,13 @@ static struct GNUNET_SCHEDULER_Task *err_stop_task;
* Handle to the process showing messages/advertisements
* while we are inactive.
*/
-static struct GNUNET_OS_Process *adv_child;
+static struct GNUNET_Process *adv_child;
/**
* Handle to the process showing error messages
* while we have one.
*/
-static struct GNUNET_OS_Process *err_child;
+static struct GNUNET_Process *err_child;
/**
* Command to run when advertising is enabled.
@@ -847,14 +847,14 @@ static struct Display qrDisplay;
* @param ... extra arguments to pass
* @return process handle, NULL on failure
*/
-static struct GNUNET_OS_Process *
+static struct GNUNET_Process *
start_command (const char *command,
...)
{
char **argv = NULL;
unsigned int argc = 0;
char *cpy = GNUNET_strdup (command);
- struct GNUNET_OS_Process *ret;
+ struct GNUNET_Process *ret;
va_list ap;
const char *arg;
@@ -879,16 +879,18 @@ start_command (const char *command,
GNUNET_array_append (argv,
argc,
NULL);
- ret = GNUNET_OS_start_process_vap (GNUNET_OS_INHERIT_STD_ERR,
- NULL,
- NULL,
- NULL,
- argv[0],
- argv);
- if (NULL == ret)
+ ret = GNUNET_process_create (GNUNET_OS_INHERIT_STD_ERR);
+ if (GNUNET_OK !=
+ GNUNET_process_run_command_argv (ret,
+ argv[0],
+ (const char **) argv))
+ {
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Failed to launch %s\n",
argv[0]);
+ GNUNET_process_destroy (ret);
+ ret = NULL;
+ }
for (unsigned int i = 0; i<argc; i++)
GNUNET_free (argv[i]);
GNUNET_array_grow (argv,
@@ -909,12 +911,15 @@ stop_advertising (void)
return;
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"Stopping advertising\n");
- GNUNET_break (0 ==
- GNUNET_OS_process_kill (adv_child,
- SIGTERM));
GNUNET_break (GNUNET_OK ==
- GNUNET_OS_process_wait (adv_child));
- GNUNET_OS_process_destroy (adv_child);
+ GNUNET_process_kill (adv_child,
+ SIGTERM));
+ GNUNET_break (GNUNET_OK ==
+ GNUNET_process_wait (adv_child,
+ true,
+ NULL,
+ NULL));
+ GNUNET_process_destroy (adv_child);
adv_child = NULL;
}
@@ -952,12 +957,15 @@ hide_error (void)
GNUNET_SCHEDULER_cancel (err_stop_task);
err_stop_task = NULL;
}
- GNUNET_break (0 ==
- GNUNET_OS_process_kill (err_child,
- SIGTERM));
GNUNET_break (GNUNET_OK ==
- GNUNET_OS_process_wait (err_child));
- GNUNET_OS_process_destroy (err_child);
+ GNUNET_process_kill (err_child,
+ SIGTERM));
+ GNUNET_break (GNUNET_OK ==
+ GNUNET_process_wait (err_child,
+ true,
+ NULL,
+ NULL));
+ GNUNET_process_destroy (err_child);
err_child = NULL;
}