certi-cvs
[Top][All Lists]
Advanced

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

certi libCERTI/PrettyDebug.cc libCERTI/SocketTC...


From: certi-cvs
Subject: certi libCERTI/PrettyDebug.cc libCERTI/SocketTC...
Date: Tue, 27 Nov 2007 08:55:55 +0000

CVSROOT:        /sources/certi
Module name:    certi
Changes by:     Eric NOULARD <erk>      07/11/27 08:55:55

Modified files:
        libCERTI       : PrettyDebug.cc SocketTCP.hh SocketUN.hh 
                         SocketUN.cc SocketTCP.cc 
        libRTI         : RTIambPrivateRefs.cc RTIambassador.cc 
                         RTIambPrivateRefs.hh 

Log message:
        Remove some more exit() calls.
        See bug #21648 : Win32 port contains exit() when error starting rtia.exe

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/PrettyDebug.cc?cvsroot=certi&r1=4.4&r2=4.5
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/SocketTCP.hh?cvsroot=certi&r1=3.17&r2=3.18
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/SocketUN.hh?cvsroot=certi&r1=3.12&r2=3.13
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/SocketUN.cc?cvsroot=certi&r1=3.17&r2=3.18
http://cvs.savannah.gnu.org/viewcvs/certi/libCERTI/SocketTCP.cc?cvsroot=certi&r1=3.18&r2=3.19
http://cvs.savannah.gnu.org/viewcvs/certi/libRTI/RTIambPrivateRefs.cc?cvsroot=certi&r1=3.6&r2=3.7
http://cvs.savannah.gnu.org/viewcvs/certi/libRTI/RTIambassador.cc?cvsroot=certi&r1=3.58&r2=3.59
http://cvs.savannah.gnu.org/viewcvs/certi/libRTI/RTIambPrivateRefs.hh?cvsroot=certi&r1=3.3&r2=3.4

Patches:
Index: libCERTI/PrettyDebug.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/PrettyDebug.cc,v
retrieving revision 4.4
retrieving revision 4.5
diff -u -b -r4.4 -r4.5
--- libCERTI/PrettyDebug.cc     31 Oct 2007 10:30:21 -0000      4.4
+++ libCERTI/PrettyDebug.cc     27 Nov 2007 08:55:54 -0000      4.5
@@ -19,7 +19,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: PrettyDebug.cc,v 4.4 2007/10/31 10:30:21 erk Exp $
+// $Id: PrettyDebug.cc,v 4.5 2007/11/27 08:55:54 erk Exp $
 // ----------------------------------------------------------------------------
 
 
@@ -145,7 +145,7 @@
        {
        PrettyDebug::Print(PrettyDebug::defaultOutputStream, "", 
        "Error in pgCDebug constructor, no Name specified.\n");
-       exit(EXIT_FAILURE);
+        Name = "NoName";
        }
 
 LEnvVar = strdup(Name);
@@ -274,4 +274,4 @@
 
 #endif // NDEBUG
 
-// $Id: PrettyDebug.cc,v 4.4 2007/10/31 10:30:21 erk Exp $
+// $Id: PrettyDebug.cc,v 4.5 2007/11/27 08:55:54 erk Exp $

Index: libCERTI/SocketTCP.hh
===================================================================
RCS file: /sources/certi/certi/libCERTI/SocketTCP.hh,v
retrieving revision 3.17
retrieving revision 3.18
diff -u -b -r3.17 -r3.18
--- libCERTI/SocketTCP.hh       20 Nov 2007 09:04:54 -0000      3.17
+++ libCERTI/SocketTCP.hh       27 Nov 2007 08:55:54 -0000      3.18
@@ -56,7 +56,7 @@
        void createTCPClient(in_port_t port, in_addr_t addr) throw 
(NetworkError);
        void createTCPServer(in_port_t port = 0, in_addr_t addr = INADDR_ANY) 
throw (NetworkError);
 
-       int accept(SocketTCP *serveur);
+       int accept(SocketTCP *serveur) throw (NetworkError);
        virtual void send(const unsigned char *, size_t)                throw 
(NetworkError, NetworkSignal);
        virtual void receive(void *Buffer, unsigned long Size)  throw 
(NetworkError, NetworkSignal);
 

Index: libCERTI/SocketUN.hh
===================================================================
RCS file: /sources/certi/certi/libCERTI/SocketUN.hh,v
retrieving revision 3.12
retrieving revision 3.13
diff -u -b -r3.12 -r3.13
--- libCERTI/SocketUN.hh        20 Nov 2007 09:04:53 -0000      3.12
+++ libCERTI/SocketUN.hh        27 Nov 2007 08:55:54 -0000      3.13
@@ -78,7 +78,7 @@
        void receive(const unsigned char *, size_t)     throw (NetworkError, 
NetworkSignal);
 
 protected:
-       void error(const char *);
+       void error(const char *) throw (NetworkError);
 
        #ifdef _WIN32
                SOCKET _socket_un;

Index: libCERTI/SocketUN.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/SocketUN.cc,v
retrieving revision 3.17
retrieving revision 3.18
diff -u -b -r3.17 -r3.18
--- libCERTI/SocketUN.cc        20 Nov 2007 09:04:54 -0000      3.17
+++ libCERTI/SocketUN.cc        27 Nov 2007 08:55:54 -0000      3.18
@@ -346,15 +346,15 @@
 
 // ----------------------------------------------------------------------------
 //! error.
-void SocketUN::error(const char *msg)
+void SocketUN::error(const char *msg) throw (NetworkError)
 {
-char m[100] ;
+ std::stringstream smsg;
 
-m[0] = 0 ;
-strcat(m, "SocketUN: ");
-strcat(m, msg);
-perror(m);
-exit(-1);
+ smsg << "SocketUN::error <"
+         << strerror(errno)
+         << "> msg = <"          
+         << msg <<">";
+ throw NetworkError(smsg.str().c_str());
 }
 
 // ----------------------------------------------------------------------------

Index: libCERTI/SocketTCP.cc
===================================================================
RCS file: /sources/certi/certi/libCERTI/SocketTCP.cc,v
retrieving revision 3.18
retrieving revision 3.19
diff -u -b -r3.18 -r3.19
--- libCERTI/SocketTCP.cc       20 Nov 2007 09:04:54 -0000      3.18
+++ libCERTI/SocketTCP.cc       27 Nov 2007 08:55:54 -0000      3.19
@@ -17,7 +17,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: SocketTCP.cc,v 3.18 2007/11/20 09:04:54 erk Exp $
+// $Id: SocketTCP.cc,v 3.19 2007/11/27 08:55:54 erk Exp $
 // ----------------------------------------------------------------------------
 
 #ifdef _WIN32
@@ -177,8 +177,9 @@
 }
 
 // ----------------------------------------------------------------------------
-int SocketTCP::accept(SocketTCP *serveur)
+int SocketTCP::accept(SocketTCP *serveur) throw (NetworkError)
 {
+       std::stringstream msg;
 struct protoent *TCPent ;
 int optval = 1 ;
 
@@ -196,8 +197,9 @@
 _socket_tcp = ::accept(serveur->_socket_tcp, (sockaddr*)&_sockIn, &l);
 if (_socket_tcp < 0) 
        {
-       perror("SocketTCP: Accept");
-       exit(-1);
+         msg << "SocketTCP: Accept Failed"
+             << "<" << strerror(errno) <<">"; 
+         throw NetworkError(msg.str().c_str());        
        }
 
 // Set the TCP_NODELAY option(Server Side)
@@ -617,4 +619,4 @@
 
 } // namespace
 
-// $Id: SocketTCP.cc,v 3.18 2007/11/20 09:04:54 erk Exp $
+// $Id: SocketTCP.cc,v 3.19 2007/11/27 08:55:54 erk Exp $

Index: libRTI/RTIambPrivateRefs.cc
===================================================================
RCS file: /sources/certi/certi/libRTI/RTIambPrivateRefs.cc,v
retrieving revision 3.6
retrieving revision 3.7
diff -u -b -r3.6 -r3.7
--- libRTI/RTIambPrivateRefs.cc 16 Nov 2007 15:04:22 -0000      3.6
+++ libRTI/RTIambPrivateRefs.cc 27 Nov 2007 08:55:54 -0000      3.7
@@ -19,12 +19,13 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: RTIambPrivateRefs.cc,v 3.6 2007/11/16 15:04:22 rousse Exp $
+// $Id: RTIambPrivateRefs.cc,v 3.7 2007/11/27 08:55:54 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include <config.h>
 #include "RTIambPrivateRefs.hh"
 #include "PrettyDebug.hh"
+#include <sstream>
 
 namespace {
 PrettyDebug D("LIBRTI", __FILE__);
@@ -46,10 +47,11 @@
 
 // ----------------------------------------------------------------------------
 void
-RTIambPrivateRefs::leave(const char *msg)
+RTIambPrivateRefs::leave(const char *msg) throw (RTIinternalError)
 {
-    std::cout << "LibRTI:: " << msg << std::endl ;
-    exit(EXIT_FAILURE);
+       std::stringstream smsg;
+       smsg << "RTI called leave because <" <<msg<<">"; 
+       throw RTIinternalError(smsg.str().c_str());   
 }
 
 // ----------------------------------------------------------------------------
@@ -542,4 +544,4 @@
     }
 }
 
-// $Id: RTIambPrivateRefs.cc,v 3.6 2007/11/16 15:04:22 rousse Exp $
+// $Id: RTIambPrivateRefs.cc,v 3.7 2007/11/27 08:55:54 erk Exp $

Index: libRTI/RTIambassador.cc
===================================================================
RCS file: /sources/certi/certi/libRTI/RTIambassador.cc,v
retrieving revision 3.58
retrieving revision 3.59
diff -u -b -r3.58 -r3.59
--- libRTI/RTIambassador.cc     26 Nov 2007 20:16:50 -0000      3.58
+++ libRTI/RTIambassador.cc     27 Nov 2007 08:55:54 -0000      3.59
@@ -19,7 +19,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: RTIambassador.cc,v 3.58 2007/11/26 20:16:50 erk Exp $
+// $Id: RTIambassador.cc,v 3.59 2007/11/27 08:55:54 erk Exp $
 // ----------------------------------------------------------------------------
 
 
@@ -41,6 +41,7 @@
 #include <iostream>
 #include <signal.h>
 #include <cassert>
+#include <cerrno>
 
 using std::cout ;
 using std::cerr ;
@@ -96,6 +97,7 @@
     throw (MemoryExhausted, RTIinternalError)
 {
     PrettyDebug::setFederateName( "Federate-process" );
+    std::stringstream msg;
 
     privateRefs = new RTIambPrivateRefs();
 
@@ -129,10 +131,11 @@
         &pi ))                                 // Pointer to 
PROCESS_INFORMATION structure.
                                 
                {
-               printf("Error code : %d\n", GetLastError());
-               errno = GetLastError();
-               perror("CreateProcess");
-                throw RTIinternalError( "CreateProcess Error: Cannot connect 
to RTIA.exe" );
+            msg << "CreateProcess - GetLastError()=<"
+                << GetLastError() <<"> "
+                << "Cannot connect to RTIA.exe";               
+               //perror("CreateProcess");
+                throw RTIinternalError( msg.c_str);
                }
     
    privateRefs->handle_RTIA = pi.hProcess;
@@ -149,14 +152,18 @@
 
       case 0: // child process (RTIA).
         execlp(rtiacall, NULL);
-        perror("execlp");
-        
-        cerr << "Could not launch RTIA process." << endl
-             << "Maybe RTIA is not in search PATH environment." << endl ;
-
-        exit(-1);
+        msg << "Could not launch RTIA process (execlp): "
+            << strerror(errno)
+            << endl
+            << "Maybe RTIA is not in search PATH environment.";        
+        throw RTIinternalError(msg.str().c_str());
 
       default: // father process (Federe).
+       // We sleep before trying to connect to the socket
+       // our child RTIA process should have open
+       // FIXME EN: this is poorly designed because
+       //           we don't know if the child ever get a chance
+       //           to be schedule by the Operating System
         sleep(1);
 
         if( privateRefs->socketUn->connectUN(privateRefs->pid_RTIA) )
@@ -2872,4 +2879,4 @@
     privateRefs->executeService(&req, &rep);
 }
 
-// $Id: RTIambassador.cc,v 3.58 2007/11/26 20:16:50 erk Exp $
+// $Id: RTIambassador.cc,v 3.59 2007/11/27 08:55:54 erk Exp $

Index: libRTI/RTIambPrivateRefs.hh
===================================================================
RCS file: /sources/certi/certi/libRTI/RTIambPrivateRefs.hh,v
retrieving revision 3.3
retrieving revision 3.4
diff -u -b -r3.3 -r3.4
--- libRTI/RTIambPrivateRefs.hh 31 Oct 2007 10:30:24 -0000      3.3
+++ libRTI/RTIambPrivateRefs.hh 27 Nov 2007 08:55:55 -0000      3.4
@@ -19,7 +19,7 @@
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 // USA
 //
-// $Id: RTIambPrivateRefs.hh,v 3.3 2007/10/31 10:30:24 erk Exp $
+// $Id: RTIambPrivateRefs.hh,v 3.4 2007/11/27 08:55:55 erk Exp $
 // ----------------------------------------------------------------------------
 
 #include "RTI.hh"
@@ -36,7 +36,7 @@
 
     void processException(Message *);
     void executeService(Message *requete, Message *reponse);
-    void leave(const char *msg);
+    void leave(const char *msg) throw (RTIinternalError);
 
        #ifdef _WIN32
          HANDLE        handle_RTIA;
@@ -55,4 +55,4 @@
     SocketUN *socketUn ;
 };
 
-// $Id: RTIambPrivateRefs.hh,v 3.3 2007/10/31 10:30:24 erk Exp $
+// $Id: RTIambPrivateRefs.hh,v 3.4 2007/11/27 08:55:55 erk Exp $




reply via email to

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