From 809c96b53f265fd59e9f660bac1990bf19089ba2 Mon Sep 17 00:00:00 2001 From: Michal Nazarewicz Date: Sun, 19 Jul 2009 08:18:23 +0200 Subject: daemon: Moved empty Windows version functions to header file On Windows only daemonize_close_stdin() function does something. Other functions are either empty or generate an error. Those have been moved to header file and declared static inline so compiler can remove the call all together. --- src/daemon.c | 27 ++++++--------------------- src/daemon.h | 30 ++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 21 deletions(-) diff --git a/src/daemon.c b/src/daemon.c index e7fcd0986..43d16bc9b 100644 --- a/src/daemon.c +++ b/src/daemon.c @@ -56,12 +56,10 @@ static char *pidfile; /* whether "group" conf. option was given */ static bool had_group = false; -#endif void daemonize_kill(void) { -#ifndef WIN32 FILE *fp; int pid, ret; @@ -85,11 +83,10 @@ daemonize_kill(void) pid, g_strerror(errno)); exit(EXIT_SUCCESS); -#else - g_error("--kill is not available on WIN32"); -#endif } +#endif + void daemonize_close_stdin(void) { @@ -103,10 +100,11 @@ daemonize_close_stdin(void) } } +#ifndef WIN32 + void daemonize_set_user(void) { -#ifndef WIN32 if (user_name == NULL) return; @@ -135,10 +133,8 @@ daemonize_set_user(void) g_error("cannot change to uid of user \"%s\": %s", user_name, g_strerror(errno)); } -#endif } -#ifndef G_OS_WIN32 static void daemonize_detach(void) { @@ -169,12 +165,10 @@ daemonize_detach(void) g_debug("daemonized!"); } -#endif void daemonize(bool detach) { -#ifndef WIN32 FILE *fp = NULL; if (pidfile != NULL) { @@ -196,16 +190,11 @@ daemonize(bool detach) fprintf(fp, "%lu\n", (unsigned long)getpid()); fclose(fp); } -#else - /* no daemonization on WIN32 */ - (void)detach; -#endif } void daemonize_init(const char *user, const char *group, const char *_pidfile) { -#ifndef WIN32 if (user) { struct passwd *pwd = getpwnam(user); if (!pwd) @@ -230,20 +219,16 @@ daemonize_init(const char *user, const char *group, const char *_pidfile) pidfile = g_strdup(_pidfile); -#else - (void)user; - (void)_pidfile; -#endif } void daemonize_finish(void) { -#ifndef WIN32 if (pidfile != NULL) unlink(pidfile); g_free(user_name); g_free(pidfile); -#endif } + +#endif diff --git a/src/daemon.h b/src/daemon.h index 46a4c4f71..1332eaf48 100644 --- a/src/daemon.h +++ b/src/daemon.h @@ -22,18 +22,36 @@ #include +#ifndef WIN32 void daemonize_init(const char *user, const char *group, const char *pidfile); +#else +static inline void +daemonize_init(const char *user, const char *group, const char *pidfile) +{ (void)user; (void)group; (void)pidfile; } +#endif +#ifndef WIN32 void daemonize_finish(void); +#else +static inline void +daemonize_finish(void) +{ /* nop */ } +#endif /** * Kill the MPD which is currently running, pid determined from the * pid file. */ +#ifndef WIN32 void daemonize_kill(void); +#else +static inline void +daemonize_kill(void) +{ g_error("--kill is not available on WIN32"); } +#endif /** * Close stdin (fd 0) and re-open it as /dev/null. @@ -44,10 +62,22 @@ daemonize_close_stdin(void); /** * Change to the configured Unix user. */ +#ifndef WIN32 void daemonize_set_user(void); +#else +static inline void +daemonize_set_user(void) +{ /* nop */ } +#endif +#ifndef WIN32 void daemonize(bool detach); +#else +static inline void +daemonize(bool detach) +{ (void)detach; } +#endif #endif -- cgit v1.2.3