Enlightenment CVS committal

Author  : xcomputerman
Project : e17
Module  : apps/entrance

Dir     : e17/apps/entrance/src/client


Modified Files:
        entrance.h main.c 


Log Message:
Use exit code so that spawner doesn't attempt to restart entrance during a
shutdown or reboot.

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/entrance/src/client/entrance.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- entrance.h  22 Oct 2003 12:21:51 -0000      1.6
+++ entrance.h  25 Oct 2003 04:50:28 -0000      1.7
@@ -12,5 +12,6 @@
 #include "entrance_session.h"
 
 #define X_TESTING 0
+#define EXITCODE 42
 
 #endif
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/entrance/src/client/main.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- main.c      22 Oct 2003 12:09:57 -0000      1.15
+++ main.c      25 Oct 2003 04:50:28 -0000      1.16
@@ -436,10 +436,21 @@
 {
    if (session->config->reboot.allow)
    {
-      pid_t ppid = getppid();
+      pid_t pid;
 
-      execl("/bin/sh", "/bin/sh", "-c", "/sbin/shutdown -r now", NULL);
-      kill(ppid, SIGQUIT);
+      switch(pid = fork()) {
+          case 0:
+              if(execl("/bin/sh", "/bin/sh", "-c", "/sbin/shutdown -r now", NULL)) {
+                  syslog(LOG_CRIT, "Reboot failed: Unable to execute /sbin/shutdown");
+                  exit(0);
+              }
+          case -1:
+              syslog(LOG_CRIT, "Reboot failed: could not fork to execute shutdown 
script");
+              break;
+          default:
+              syslog(LOG_INFO, "The system is being rebooted");
+              exit(EXITCODE);
+      }
    }
 }
 
@@ -457,12 +468,22 @@
 shutdown_cb(void *data, Evas_Object * o, const char *emission,
             const char *source)
 {
+   pid_t pid;
    if (session->config->halt.allow)
    {
-      pid_t ppid = getppid();
-
-      execl("/bin/sh", "/bin/sh", "-c", "/sbin/shutdown -h now", NULL);
-      kill(ppid, SIGQUIT);
+      switch(pid = fork()) {
+          case 0:
+              if(execl("/bin/sh", "/bin/sh", "-c", "/sbin/shutdown -h now", NULL)) {
+                  syslog(LOG_CRIT, "Shutdown failed: Unable to execute 
/sbin/shutdown");
+                  exit(0);
+              }
+          case -1:
+              syslog(LOG_CRIT, "Shutdown failed: could not fork to execute shutdown 
script");
+              break;
+          default:
+              syslog(LOG_INFO, "The system is being shut down");
+              exit(EXITCODE);
+      }
    }
 }
 




-------------------------------------------------------
This SF.net email is sponsored by: The SF.net Donation Program.
Do you like what SourceForge.net is doing for the Open
Source Community?  Make a contribution, and help us add new
features and functionality. Click here: http://sourceforge.net/donate/
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to