(file) Return to HTTPAcceptor.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Common

Diff for /pegasus/src/Pegasus/Common/HTTPAcceptor.cpp between version 1.93.4.3 and 1.100.4.1

version 1.93.4.3, 2007/12/14 20:47:55 version 1.100.4.1, 2007/06/25 19:51:13
Line 44 
Line 44 
 #include "Tracer.h" #include "Tracer.h"
 #include <Pegasus/Common/MessageLoader.h> #include <Pegasus/Common/MessageLoader.h>
  
 #ifdef PEGASUS_PLATFORM_OS400_ISERIES_IBM  
 #include "EBCDIC_OS400.h"  
 #endif  
   
   
 PEGASUS_USING_STD; PEGASUS_USING_STD;
  
 PEGASUS_NAMESPACE_BEGIN PEGASUS_NAMESPACE_BEGIN
Line 131 
Line 126 
      _connectionType(connectionType),      _connectionType(connectionType),
      _portNumber(portNumber),      _portNumber(portNumber),
      _sslcontext(sslcontext),      _sslcontext(sslcontext),
      _sslContextObjectLock(sslContextObjectLock),       _sslContextObjectLock(sslContextObjectLock)
      _idleConnectionTimeoutSeconds(0)  
 { {
    Socket::initializeInterface();    Socket::initializeInterface();
  
Line 154 
Line 148 
 /* /*
     if (MAX_CONNECTION_QUEUE_LENGTH == -1)     if (MAX_CONNECTION_QUEUE_LENGTH == -1)
     {     {
 #ifdef PEGASUS_PLATFORM_OS400_ISERIES_IBM  
 #pragma convert(37)  
         const char* env = getenv("PEGASUS_MAX_BACKLOG_CONNECTION_QUEUE");         const char* env = getenv("PEGASUS_MAX_BACKLOG_CONNECTION_QUEUE");
         EtoA(env);  
 #pragma convert(0)  
 #else  
         const char* env = getenv("PEGASUS_MAX_BACKLOG_CONNECTION_QUEUE");  
 #endif  
         if (!env)         if (!env)
         {         {
             MAX_CONNECTION_QUEUE_LENGTH = 15;             MAX_CONNECTION_QUEUE_LENGTH = 15;
Line 299 
Line 286 
     if (_connectionType == LOCAL_CONNECTION)     if (_connectionType == LOCAL_CONNECTION)
     {     {
 #ifndef PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET #ifndef PEGASUS_DISABLE_LOCAL_DOMAIN_SOCKET
           //
           // Make sure the local domain socket can be owned by the cimserver
           // user.  Otherwise, the bind may fail with a vague "bind failed"
           // error.
           //
           if (System::exists(PEGASUS_LOCAL_DOMAIN_SOCKET_PATH))
           {
               if (!System::removeFile(PEGASUS_LOCAL_DOMAIN_SOCKET_PATH))
               {
                   throw CannotRemoveFile(PEGASUS_LOCAL_DOMAIN_SOCKET_PATH);
               }
           }
   
         reinterpret_cast<struct sockaddr_un*>(_rep->address)->sun_family =         reinterpret_cast<struct sockaddr_un*>(_rep->address)->sun_family =
             AF_UNIX;             AF_UNIX;
         strcpy(reinterpret_cast<struct sockaddr_un*>(_rep->address)->sun_path,         strcpy(reinterpret_cast<struct sockaddr_un*>(_rep->address)->sun_path,
             PEGASUS_LOCAL_DOMAIN_SOCKET_PATH);             PEGASUS_LOCAL_DOMAIN_SOCKET_PATH);
 #ifdef PEGASUS_PLATFORM_OS400_ISERIES_IBM  
         AtoE(reinterpret_cast<struct sockaddr_un*>(_rep->address)->sun_path);  
 #endif  
         ::unlink(  
             reinterpret_cast<struct sockaddr_un*>(_rep->address)->sun_path);  
 #else #else
         PEGASUS_ASSERT(false);         PEGASUS_ASSERT(false);
 #endif #endif
Line 625 
Line 620 
     _socketWriteTimeout = socketWriteTimeout;     _socketWriteTimeout = socketWriteTimeout;
 } }
  
 void HTTPAcceptor::setIdleConnectionTimeout(Uint32 idleConnectionTimeoutSeconds)  
 {  
     _idleConnectionTimeoutSeconds = idleConnectionTimeoutSeconds;  
 }  
   
 void HTTPAcceptor::unbind() void HTTPAcceptor::unbind()
 { {
     if (_rep)     if (_rep)
Line 718 
Line 708 
 #endif #endif
     }     }
  
     SocketHandle socket = accept(_rep->socket, accept_address, &address_size);      SocketHandle socket;
   #ifdef PEGASUS_OS_TYPE_WINDOWS
       socket = accept(_rep->socket, accept_address, &address_size);
   #else
       while (
           ((socket = accept(_rep->socket, accept_address, &address_size)) == -1)
           && (errno == EINTR))
           ;
   #endif
  
     if (socket == PEGASUS_SOCKET_ERROR)     if (socket == PEGASUS_SOCKET_ERROR)
     {     {
Line 805 
Line 803 
     PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, 0,     PEG_LOGGER_TRACE((Logger::STANDARD_LOG, System::CIMSERVER, 0,
         "HTTPAcceptor - accept() success.  Socket: $1" ,socket));         "HTTPAcceptor - accept() success.  Socket: $1" ,socket));
  
     AutoPtr<MP_Socket> mp_socket(new MP_Socket(      SharedPtr<MP_Socket> mp_socket(new MP_Socket(
         socket, _sslcontext, _sslContextObjectLock));          socket, _sslcontext, _sslContextObjectLock, ipAddress));
  
     mp_socket->setSocketWriteTimeout(_socketWriteTimeout);     mp_socket->setSocketWriteTimeout(_socketWriteTimeout);
  
Line 831 
Line 829 
     HTTPConnection* connection = new HTTPConnection(_monitor, mp_socket,     HTTPConnection* connection = new HTTPConnection(_monitor, mp_socket,
         ipAddress, this, static_cast<MessageQueue *>(_outputMessageQueue));         ipAddress, this, static_cast<MessageQueue *>(_outputMessageQueue));
  
     if (_idleConnectionTimeoutSeconds)  
     {  
         connection->_idleConnectionTimeoutSeconds =  
             _idleConnectionTimeoutSeconds;  
         Time::gettimeofday(&connection->_idleStartTime);  
     }  
   
     if (socketAcceptStatus == 0)     if (socketAcceptStatus == 0)
     {     {
         PEG_TRACE_CSTRING(TRC_HTTP, Tracer::LEVEL2,         PEG_TRACE_CSTRING(TRC_HTTP, Tracer::LEVEL2,
             "HTTPAcceptor: SSL_accept() pending");             "HTTPAcceptor: SSL_accept() pending");
         connection->_acceptPending = true;         connection->_acceptPending = true;
         Time::gettimeofday(&connection->_acceptPendingStartTime);  
     }     }
  
     // Solicit events on this new connection's socket:     // Solicit events on this new connection's socket:


Legend:
Removed from v.1.93.4.3  
changed lines
  Added in v.1.100.4.1

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2