winbindd: use exit_daemon() to pass startup status to systemd
authorAlexander Bokovoy <ab@samba.org>
Wed, 26 Mar 2014 09:45:21 +0000 (11:45 +0200)
committerJeremy Allison <jra@samba.org>
Wed, 23 Apr 2014 00:29:08 +0000 (02:29 +0200)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=10517

Signed-off-by: Alexander Bokovoy <ab@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
source3/winbindd/winbindd.c

index 9694c6374f109031c5d9580f754c9f4a2f538ea8..e384be18c1c6632b8ba667a044c285ff0b2039cc 100644 (file)
@@ -1551,8 +1551,7 @@ int main(int argc, const char **argv)
                                   winbind_event_context(),
                                   false);
        if (!NT_STATUS_IS_OK(status)) {
-               DEBUG(0,("reinit_after_fork() failed\n"));
-               exit(1);
+               exit_daemon("Winbindd reinit_after_fork() failed", map_errno_from_nt_status(status));
        }
 
        /*
@@ -1562,17 +1561,14 @@ int main(int argc, const char **argv)
         */
        status = init_before_fork();
        if (!NT_STATUS_IS_OK(status)) {
-               DEBUG(0, ("init_before_fork failed: %s\n", nt_errstr(status)));
-               exit(1);
+               exit_daemon(nt_errstr(status), map_errno_from_nt_status(status));
        }
 
        winbindd_register_handlers(winbind_messaging_context(), !Fork);
 
        status = init_system_session_info();
        if (!NT_STATUS_IS_OK(status)) {
-               DEBUG(1, ("ERROR: failed to setup system user info: %s.\n",
-                         nt_errstr(status)));
-               exit(1);
+               exit_daemon("Winbindd failed to setup system user info", map_errno_from_nt_status(status));
        }
 
        rpc_lsarpc_init(NULL);
@@ -1584,8 +1580,7 @@ int main(int argc, const char **argv)
        /* setup listen sockets */
 
        if (!winbindd_setup_listeners()) {
-               DEBUG(0,("winbindd_setup_listeners() failed\n"));
-               exit(1);
+               exit_daemon("Winbindd failed to setup listeners", EPIPE);
        }
 
        TALLOC_FREE(frame);