The daemon-windows file is missing a `set_detach` routine, so add it. This will be useful in the long run.
Signed-off-by: Alin Gabriel Serdean <[email protected]> Acked-by: Ben Pfaff <[email protected]> --- lib/daemon-windows.c | 10 +++++++++- lib/daemon.h | 3 +++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/daemon-windows.c b/lib/daemon-windows.c index 70c5f5d56..7e5f264f5 100644 --- a/lib/daemon-windows.c +++ b/lib/daemon-windows.c @@ -82,6 +82,14 @@ daemon_usage(void) "unexpected failure. \n"); } +/* Sets up a following call to service_start() to detach from the foreground + * session, running this process in the background. */ +void +set_detach(void) +{ + detach = true; +} + /* Registers the call-back and configures the actions in case of a failure * with the Windows services manager. */ void @@ -357,7 +365,7 @@ detach_process(int argc, char *argv[]) /* We are only interested in the '--detach' and '--pipe-handle'. */ for (i = 0; i < argc; i ++) { - if (!strcmp(argv[i], "--detach")) { + if (!detach && !strcmp(argv[i], "--detach")) { detach = true; } else if (!strncmp(argv[i], "--pipe-handle", 13)) { /* If running as a child, return. */ diff --git a/lib/daemon.h b/lib/daemon.h index f33e9df8d..094157496 100644 --- a/lib/daemon.h +++ b/lib/daemon.h @@ -121,6 +121,7 @@ pid_t read_pidfile(const char *name); #define DAEMON_OPTION_HANDLERS \ case OPT_DETACH: \ + set_detach(); \ break; \ \ case OPT_NO_SELF_CONFINEMENT: \ @@ -139,6 +140,7 @@ pid_t read_pidfile(const char *name); break; \ \ case OPT_SERVICE: \ + set_detach(); \ break; \ \ case OPT_SERVICE_MONITOR: \ @@ -159,6 +161,7 @@ pid_t read_pidfile(const char *name); void control_handler(DWORD request); void set_pipe_handle(const char *pipe_handle); +void set_detach(void); #endif /* _WIN32 */ bool get_detach(void); -- 2.16.1.windows.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
