]> git.stg.codes - stg.git/blobdiff - stglibs/scriptexecuter.lib/scriptexecuter.c
Ticket 37. The stgTime argument added in TariffChangeIsAllowed()
[stg.git] / stglibs / scriptexecuter.lib / scriptexecuter.c
index 462d310bbc57bf84307ae78b3b20ebd8b7d3b505..bdf60230f3530a72225fd62920ba6af8375f089d 100644 (file)
@@ -40,27 +40,28 @@ if (msgsnd(msgid, (void *)&sd, MAX_SCRIPT_LEN, 0) < 0)
 return 0;
 }
 //-----------------------------------------------------------------------------
-#ifdef LINUX
+#if defined(LINUX) || defined(DARWIN)
 void Executer(int msgID, pid_t pid, char * procName)
 #else
 void Executer(int msgID, pid_t pid)
 #endif
 {
+struct SCRIPT_DATA sd;
+struct sigaction newsa, oldsa;
+sigset_t sigmask;
+
 msgid = msgID;
 if (pid)
     return;
 nonstop = 1;
 
-#ifdef LINUX
+#if defined(LINUX) || defined(DARWIN)
 memset(procName, 0, strlen(procName));
 strcpy(procName, "stg-exec");
 #else
 setproctitle("stg-exec");
 #endif
 
-struct sigaction newsa, oldsa;
-sigset_t sigmask;
-
 sigemptyset(&sigmask);
 sigaddset(&sigmask, SIGTERM);
 newsa.sa_handler = SIG_IGN;
@@ -89,21 +90,17 @@ newsa.sa_mask = sigmask;
 newsa.sa_flags = 0;
 sigaction(SIGUSR1, &newsa, &oldsa);
 
-int ret;
-
-struct SCRIPT_DATA sd;
-
 while (nonstop)
     {
     sd.mtype = 1;
-    ret = msgrcv(msgid, &sd, MAX_SCRIPT_LEN, 0, 0);
+    int ret = msgrcv(msgid, &sd, MAX_SCRIPT_LEN, 0, 0);
 
     if (ret < 0)
         {
         usleep(20000);
         continue;
         }
-    int ret = system(sd.script);
+    ret = system(sd.script);
     if (ret == -1)
         {
         // Fork failed