[Top][All Lists]
[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;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [myserver-commit] [2890] Code refactoring: changed some names and added log messages for CGI timeouts.,
Giuseppe Scrivano <=