diff --git a/ChangeLog b/ChangeLog index d3a1677e8..6e66e564c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2004-11-11 Colin Walters + + * src/NetworkManager.c (main): Use daemon(3). + + * info-daemon/NetworkManagerInfo.c (main): Ditto. + + * dispatcher-daemon/NetworkManagerDispatcher.c (main): Ditto. + 2004-11-10 Dan Williams Patches from j bootlab org diff --git a/dispatcher-daemon/NetworkManagerDispatcher.c b/dispatcher-daemon/NetworkManagerDispatcher.c index a2f7c2f03..8f223db3a 100644 --- a/dispatcher-daemon/NetworkManagerDispatcher.c +++ b/dispatcher-daemon/NetworkManagerDispatcher.c @@ -379,31 +379,10 @@ int main( int argc, char *argv[] ) openlog("NetworkManagerDispatcher", (become_daemon) ? LOG_CONS : LOG_CONS | LOG_PERROR, (become_daemon) ? LOG_DAEMON : LOG_USER); - if (become_daemon) + if (become_daemon && daemon (FALSE, FALSE) < 0) { - int child_pid; - - if (chdir ("/") < 0) - { - syslog( LOG_CRIT, "NetworkManagerDispatcher could not chdir to /. errno=%d", errno); - return 1; - } - - child_pid = fork (); - switch (child_pid) - { - case -1: - syslog( LOG_ERR, "NetworkManagerDispatcher could not daemonize. errno = %d", errno ); - break; - - case 0: - /* Child */ - break; - - default: - exit (0); - break; - } + syslog( LOG_ERR, "NetworkManagerDispatcher could not daemonize. errno = %d", errno ); + exit (1); } g_type_init (); diff --git a/info-daemon/NetworkManagerInfo.c b/info-daemon/NetworkManagerInfo.c index 51c033a30..02666bfa4 100644 --- a/info-daemon/NetworkManagerInfo.c +++ b/info-daemon/NetworkManagerInfo.c @@ -201,31 +201,10 @@ int main( int argc, char *argv[] ) openlog("NetworkManagerInfo", (no_daemon) ? LOG_CONS | LOG_PERROR : LOG_CONS, (no_daemon) ? LOG_USER : LOG_DAEMON); - if (!no_daemon) + if (!no_daemon && daemon (FALSE, FALSE) < 0) { - int child_pid; - - if (chdir ("/") < 0) - { - syslog( LOG_CRIT, "NetworkManagerInfo could not chdir to /. errno=%d", errno); - return 1; - } - - child_pid = fork (); - switch (child_pid) - { - case -1: - syslog( LOG_ERR, "NetworkManagerInfo could not daemonize. errno = %d", errno ); - break; - - case 0: - /* Child */ - break; - - default: - exit (0); - break; - } + syslog( LOG_ERR, "NetworkManagerInfo could not daemonize. errno = %d", errno ); + exit (1); } app_info = g_new0 (NMIAppInfo, 1); diff --git a/src/NetworkManager.c b/src/NetworkManager.c index fd1fa06ea..fd57223ce 100644 --- a/src/NetworkManager.c +++ b/src/NetworkManager.c @@ -710,31 +710,10 @@ int main( int argc, char *argv[] ) /* Keep a current list of access points */ wireless_scan_source = g_timeout_add (10000, nm_wireless_scan_monitor, nm_data); - if (become_daemon) + if (become_daemon && daemon (0, 0) < 0) { - int child_pid; - - if (chdir ("/") < 0) - { - syslog( LOG_CRIT, "NetworkManager could not chdir to /. errno=%d", errno); - return (1); - } - - child_pid = fork (); - switch (child_pid) - { - case -1: - syslog( LOG_ERR, "NetworkManager could not daemonize. errno = %d", errno ); - break; - - case 0: - /* Child */ - break; - - default: - exit (EXIT_SUCCESS); - break; - } + syslog( LOG_ERR, "NetworkManager could not daemonize. errno = %d", errno ); + exit (1); } /* Wheeee!!! */