From d7d7f89d231ef349c06cd817004891bf06c58b8e Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Thu, 6 Feb 2014 11:30:27 +0100 Subject: [PATCH] Revert my last commit & make entrance quit in any way --- src/daemon/entrance.c | 22 +++++++++++++--------- src/daemon/entrance_wait.c | 18 +++--------------- 2 files changed, 16 insertions(+), 24 deletions(-) diff --git a/src/daemon/entrance.c b/src/daemon/entrance.c index 6513a87..b3dfc95 100644 --- a/src/daemon/entrance.c +++ b/src/daemon/entrance.c @@ -317,23 +317,27 @@ main (int argc, char ** argv) entrance_user = getenv("ENTRANCE_USER"); if (entrance_user) { - char *quit; + char *quit, *x_pid_char; entrance_session_init(dname); entrance_session_end(entrance_user); entrance_session_shutdown(); - sleep(2); - entrance_xserver_end(); quit = getenv("ENTRANCE_QUIT"); if (quit) { unsetenv("ENTRANCE_QUIT"); - _remove_lock(); - entrance_config_shutdown(); - PT("Bye, see you.\n\n"); - entrance_close_log(); - exit(0); + PT("Last DE Session quit with error!\n"); } - PT("Nice to see you again. Entrance will restart.\n"); + PT("ending xserver\n"); + x_pid_char = getenv("ENTRANCE_XPID"); + if (x_pid_char) + kill(atoi(x_pid_char), SIGTERM); + else + PT("No Xserver found, Strange!\n"); + entrance_xserver_end(); + _remove_lock(); + PT("Entrance will quit, bye bye :).\n"); + entrance_close_log(); + exit(1); } PT("Welcome\n"); ecore_init(); diff --git a/src/daemon/entrance_wait.c b/src/daemon/entrance_wait.c index 603a06d..a15e167 100644 --- a/src/daemon/entrance_wait.c +++ b/src/daemon/entrance_wait.c @@ -1,6 +1,5 @@ #include #include -#include #include #include @@ -32,15 +31,13 @@ int main (int argc __UNUSED__, char **argv __UNUSED__) { int status = 0; - char *pid, *exit_policy; + char *pid; struct sigaction action; pid_t rpid; pid = getenv("ENTRANCE_XPID"); if (!pid) return -1; _x_pid = atoi(pid); - - exit_policy = getenv("ENTRANCE_FAST_QUIT"); action.sa_sigaction = _entrance_wait_action; action.sa_flags = SA_RESTART | SA_SIGINFO; @@ -64,17 +61,8 @@ main (int argc __UNUSED__, char **argv __UNUSED__) } if (_x_pid == rpid) { - if (exit_policy) - { - setenv("ENTRANCE_QUIT", "1", 1); - } - else - { - if ( WIFEXITED(status) && WEXITSTATUS(status)) - { - setenv("ENTRANCE_QUIT", "1", 1); - } - } + if (WIFEXITED(status) && WEXITSTATUS(status)) + setenv("ENTRANCE_QUIT", "1", 1); execlp(PACKAGE_SBIN_DIR"/entrance", PACKAGE_SBIN_DIR"/entrance", "--nodaemon", NULL); } return -1;