[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[myserver-commit] [2962] Silent exception in `ForkServer::forkServerLoop
From: |
Giuseppe Scrivano |
Subject: |
[myserver-commit] [2962] Silent exception in `ForkServer::forkServerLoop'. |
Date: |
Fri, 14 Nov 2008 19:06:17 +0000 |
Revision: 2962
http://svn.sv.gnu.org/viewvc/?view=rev&root=myserver&revision=2962
Author: gscrivano
Date: 2008-11-14 19:06:17 +0000 (Fri, 14 Nov 2008)
Log Message:
-----------
Silent exception in `ForkServer::forkServerLoop'.
Modified Paths:
--------------
trunk/myserver/src/base/process/fork_server.cpp
Modified: trunk/myserver/src/base/process/fork_server.cpp
===================================================================
--- trunk/myserver/src/base/process/fork_server.cpp 2008-11-12 16:59:08 UTC
(rev 2961)
+++ trunk/myserver/src/base/process/fork_server.cpp 2008-11-14 19:06:17 UTC
(rev 2962)
@@ -310,46 +310,55 @@
#ifdef NOT_WIN
for (;;)
{
- char command;
- u_long nbr;
- MYSERVER_SOCKADDR_STORAGE sockaddr;
- int len = sizeof (sockaddr);
-
- if (!socket->dataOnRead(5, 0))
- continue;
-
- Socket sin = socket->accept (&sockaddr, &len);
- Socket sout = socket->accept (&sockaddr, &len);
-
- //if (sin.getHandle () == -1 || sout.getHandle ())
- // {
- // continue;
- // }
-
- if (sin.read (&command, 1, &nbr))
+ try
{
- sin.shutdown (2);
- sin.close ();
- sout.shutdown (2);
- sout.close ();
- continue;
- }
-
- switch (command)
- {
- case 'e': //exit process
- exit (0);
- return 0;
- case 'r':
- if (handleRequest (sin, sout, socket))
+ char command;
+ u_long nbr;
+ MYSERVER_SOCKADDR_STORAGE sockaddr;
+ int len = sizeof (sockaddr);
+
+ if (!socket->dataOnRead(5, 0))
+ continue;
+
+ Socket sin = socket->accept (&sockaddr, &len);
+ Socket sout = socket->accept (&sockaddr, &len);
+
+ //if (sin.getHandle () == -1 || sout.getHandle ())
+ // {
+ // continue;
+ // }
+
+ if (sin.read (&command, 1, &nbr))
{
sin.shutdown (2);
sin.close ();
sout.shutdown (2);
sout.close ();
+ continue;
}
+
+ switch (command)
+ {
+ case 'e': //exit process
+ exit (0);
+ return 0;
+ case 'r':
+ if (handleRequest (sin, sout, socket))
+ {
+ sin.shutdown (2);
+ sin.close ();
+ sout.shutdown (2);
+ sout.close ();
+ }
+ }
}
-
+ /* Don't let the fork server come back from this function
+ in _any_ case. */
+ catch(...)
+ {
+ perror ("fork server died.");
+ exit (1);
+ }
}
#endif
return 0;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [myserver-commit] [2962] Silent exception in `ForkServer::forkServerLoop'.,
Giuseppe Scrivano <=