myserver-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[myserver-commit] [2890] Code refactoring: changed some names and added


From: Giuseppe Scrivano
Subject: [myserver-commit] [2890] Code refactoring: changed some names and added log messages for CGI timeouts.
Date: Sat, 18 Oct 2008 21:02:37 +0000

Revision: 2890
          http://svn.sv.gnu.org/viewvc/?view=rev&root=myserver&revision=2890
Author:   gscrivano
Date:     2008-10-18 21:02:37 +0000 (Sat, 18 Oct 2008)

Log Message:
-----------
Code refactoring: changed some names and added log messages for CGI timeouts.

Modified Paths:
--------------
    trunk/myserver/include/base/process/process.h
    trunk/myserver/src/base/process/process.cpp
    trunk/myserver/src/base/process/process_server_manager.cpp
    trunk/myserver/src/http_handler/cgi/cgi.cpp
    trunk/myserver/src/http_handler/wincgi/wincgi.cpp

Modified: trunk/myserver/include/base/process/process.h
===================================================================
--- trunk/myserver/include/base/process/process.h       2008-10-18 20:38:11 UTC 
(rev 2889)
+++ trunk/myserver/include/base/process/process.h       2008-10-18 21:02:37 UTC 
(rev 2890)
@@ -53,8 +53,6 @@
 
 class Process
 {
-private:
-  int pid;
 public:
 #ifdef HAVE_PTHREAD
        static Mutex forkMutex;
@@ -63,8 +61,8 @@
        static void forkChild();
 #endif
        static void initialize();
-  int execHiddenProcess(StartProcInfo* spi, u_long timeout = 0xFFFFFFFF);
-  int execConcurrentProcess(StartProcInfo* spi);
+  int execAndWait (StartProcInfo* spi, u_long timeout = 0xFFFFFFFF);
+  int exec (StartProcInfo* spi);
   int terminateProcess();
   int isProcessAlive();
   static int setuid(u_long);
@@ -72,5 +70,10 @@
        static int setAdditionalGroups(u_long len, u_long *groups);
   Process();
   ~Process();
+
+  /*! Return the process ID.  */
+  int getPid (){return pid;}
+private:
+  int pid;
 };
 #endif

Modified: trunk/myserver/src/base/process/process.cpp
===================================================================
--- trunk/myserver/src/base/process/process.cpp 2008-10-18 20:38:11 UTC (rev 
2889)
+++ trunk/myserver/src/base/process/process.cpp 2008-10-18 21:02:37 UTC (rev 
2890)
@@ -47,12 +47,11 @@
 #endif
 
 /*!
- *Execute an hidden process and wait until it ends itself or its execution
- *time is greater than the timeout value.
+ *Execute a process and wait for its execution or the timeout.
  *Return -1 on fails.
  *Return 0 on success.
  */
-int Process::execHiddenProcess(StartProcInfo *spi, u_long timeout)
+int Process::execAndWait (StartProcInfo *spi, u_long timeout)
 {
   int ret = 0;
 #ifdef NOT_WIN
@@ -309,7 +308,7 @@
  *Return -1 on fails.
  *Return the new process identifier on success.
  */
-int Process::execConcurrentProcess(StartProcInfo* spi)
+int Process::exec(StartProcInfo* spi)
 {
   int ret;
   pid = 0;

Modified: trunk/myserver/src/base/process/process_server_manager.cpp
===================================================================
--- trunk/myserver/src/base/process/process_server_manager.cpp  2008-10-18 
20:38:11 UTC (rev 2889)
+++ trunk/myserver/src/base/process/process_server_manager.cpp  2008-10-18 
21:02:37 UTC (rev 2890)
@@ -443,24 +443,21 @@
         spi.cmdLine.assign(path);
         server->path.assign(path);
 
-        spi.stdOut = spi.stdError =(FileHandle) -1;
-        if(server->process.execConcurrentProcess(&spi) == -1)
+        spi.stdOut = spi.stdError = (FileHandle) -1;
+        if (server->process.exec (&spi) == -1)
         {
           server->socket.close();
-          //return 1; allow IPv6
         }
         
       }
       else
       {
         server->socket.close();
-        //return 1; allow IPv6
     }
     }
     else
     {
       server->socket.close();
-      //return 1; allow IPv6
     }
   }
   else
@@ -494,7 +491,7 @@
 
       spi.stdOut = spi.stdError =(FileHandle) -1;
 
-      if(server->process.execConcurrentProcess(&spi) == -1)
+      if(server->process.exec (&spi) == -1)
       {
         server->socket.close();
         return 1;

Modified: trunk/myserver/src/http_handler/cgi/cgi.cpp
===================================================================
--- trunk/myserver/src/http_handler/cgi/cgi.cpp 2008-10-18 20:38:11 UTC (rev 
2889)
+++ trunk/myserver/src/http_handler/cgi/cgi.cpp 2008-10-18 21:02:37 UTC (rev 
2890)
@@ -276,7 +276,7 @@
 
   /* Execute the CGI process. */
   {
-    if( cgiProc.execConcurrentProcess(&spi) == -1)
+    if( cgiProc.exec (&spi) == -1)
     {
       stdInFile.close();
       stdOutFile.close();
@@ -360,12 +360,15 @@
       int aliveProcess = 0;
       u_long ticks = getTicks() - procStartTime;
 
-      if (ticks >= cgiTimeout)
+      if (ticks >= cgiTimeout || 
+          stdOutFile.waitForData ((cgiTimeout - ticks) / 1000, (cgiTimeout - 
ticks) % 1000) == 0)
+      {
+        ostringstream msg;
+        msg << "Cgi: timeout for process " << cgiProc.getPid();
+        td->connection->host->warningsLogWrite (msg.str ().c_str ());
         break;
+      }
 
-      if (stdOutFile.waitForData ((cgiTimeout - ticks) / 1000, (cgiTimeout - 
ticks) % 1000) == 0)
-        break;
-
       aliveProcess = !(stdOutFile.pipeTerminated ());
 
       /* Read data from the process standard output file.  */
@@ -435,7 +438,12 @@
     term = stdOutFile.pipeTerminated();
 
     if (stdOutFile.waitForData ((cgiTimeout - ticks) / 1000, (cgiTimeout - 
ticks) % 1000) == 0)
+    {
+      ostringstream msg;
+      msg << "Cgi: timeout for process " << cgiProc.getPid ();
+      td->connection->host->warningsLogWrite (msg.str ().c_str ());    
       break;
+    }
 
     if (stdOutFile.read (td->buffer2->getBuffer() + headerOffset, 
                          td->buffer2->getRealLength() - headerOffset - 1, 

Modified: trunk/myserver/src/http_handler/wincgi/wincgi.cpp
===================================================================
--- trunk/myserver/src/http_handler/wincgi/wincgi.cpp   2008-10-18 20:38:11 UTC 
(rev 2889)
+++ trunk/myserver/src/http_handler/wincgi/wincgi.cpp   2008-10-18 21:02:37 UTC 
(rev 2890)
@@ -307,7 +307,7 @@
   spi.cmdLine.append(dataFilePath);
   spi.cwd.assign(pathname);
   spi.envString = 0;
-  if (proc.execHiddenProcess(&spi, timeout))
+  if (proc.execAndWait (&spi, timeout))
   {
     ostringstream msg;
     msg << "WinCGI: Error executing process " << filename;






reply via email to

[Prev in Thread] Current Thread [Next in Thread]