diff options
Diffstat (limited to 'extra/slim/slim-restart.patch')
-rw-r--r-- | extra/slim/slim-restart.patch | 141 |
1 files changed, 0 insertions, 141 deletions
diff --git a/extra/slim/slim-restart.patch b/extra/slim/slim-restart.patch deleted file mode 100644 index 1f9c02dff..000000000 --- a/extra/slim/slim-restart.patch +++ /dev/null @@ -1,141 +0,0 @@ -diff -ur slim-1.3.1.orig/app.cpp slim-1.3.1/app.cpp ---- slim-1.3.1.orig/app.cpp 2008-09-26 02:54:15.000000000 +0200 -+++ slim-1.3.1/app.cpp 2008-11-21 20:38:48.000000000 +0100 -@@ -102,6 +102,11 @@ - - extern App* LoginApp; - -+int xioerror(Display *disp) { -+ LoginApp->RestartServer(); -+ return 0; -+} -+ - void CatchSignal(int sig) { - cerr << APPNAME << ": unexpected signal " << sig << endl; - LoginApp->StopServer(); -@@ -109,19 +114,6 @@ - exit(ERR_EXIT); - } - -- --void AlarmSignal(int sig) { -- int pid = LoginApp->GetServerPID(); -- if(waitpid(pid, NULL, WNOHANG) == pid) { -- LoginApp->StopServer(); -- LoginApp->RemoveLock(); -- exit(OK_EXIT); -- } -- signal(sig, AlarmSignal); -- alarm(2); --} -- -- - void User1Signal(int sig) { - signal(sig, User1Signal); - } -@@ -267,7 +259,6 @@ - signal(SIGHUP, CatchSignal); - signal(SIGPIPE, CatchSignal); - signal(SIGUSR1, User1Signal); -- signal(SIGALRM, AlarmSignal); - - #ifndef XNEST_DEBUG - OpenLog(); -@@ -287,7 +278,6 @@ - - CreateServerAuth(); - StartServer(); -- alarm(2); - #endif - - } -@@ -603,6 +593,8 @@ - int status; - while (wpid != pid) { - wpid = wait(&status); -+ if (wpid == ServerPID) -+ xioerror(Dpy); // Server died, simulate IO error - } - if (WIFEXITED(status) && WEXITSTATUS(status)) { - LoginPanel->Message("Failed to execute login command"); -@@ -648,9 +640,6 @@ - - - void App::Reboot() { -- // Stop alarm clock -- alarm(0); -- - #ifdef USE_PAM - try{ - pam.end(); -@@ -673,9 +662,6 @@ - - - void App::Halt() { -- // Stop alarm clock -- alarm(0); -- - #ifdef USE_PAM - try{ - pam.end(); -@@ -761,6 +747,7 @@ - - StopServer(); - RemoveLock(); -+ while (waitpid(-1, NULL, WNOHANG) > 0); // Collects all dead childrens - Run(); - } - -@@ -831,6 +818,7 @@ - - for(cycles = 0; cycles < ncycles; cycles++) { - if((Dpy = XOpenDisplay(DisplayName))) { -+ XSetIOErrorHandler(xioerror); - return 1; - } else { - if(!ServerTimeout(1, (char *) "X server to begin accepting connections")) -@@ -913,9 +901,6 @@ - ServerPID = -1; - break; - } -- alarm(15); -- pause(); -- alarm(0); - - // Wait for server to start up - if(WaitForServer() == 0) { -@@ -948,15 +933,12 @@ - - - void App::StopServer() { -- // Stop alars clock and ignore signals -- alarm(0); - signal(SIGQUIT, SIG_IGN); - signal(SIGINT, SIG_IGN); - signal(SIGHUP, SIG_IGN); - signal(SIGPIPE, SIG_IGN); - signal(SIGTERM, SIG_DFL); - signal(SIGKILL, SIG_DFL); -- signal(SIGALRM, SIG_DFL); - - // Catch X error - XSetIOErrorHandler(IgnoreXIO); -diff -ur slim-1.3.1.orig/app.h slim-1.3.1/app.h ---- slim-1.3.1.orig/app.h 2008-09-26 02:54:15.000000000 +0200 -+++ slim-1.3.1/app.h 2008-11-21 20:38:48.000000000 +0100 -@@ -34,6 +34,7 @@ - ~App(); - void Run(); - int GetServerPID(); -+ void RestartServer(); - void StopServer(); - - // Lock functions -@@ -48,7 +49,6 @@ - void Console(); - void Exit(); - void KillAllClients(Bool top); -- void RestartServer(); - void ReadConfig(); - void OpenLog(); - void CloseLog(); |