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

Diff for /pegasus/src/Pegasus/Common/TLS.cpp between version 1.39 and 1.40

version 1.39, 2005/08/14 00:54:43 version 1.40, 2005/08/19 00:24:32
Line 59 
Line 59 
 // Basic SSL socket // Basic SSL socket
 // //
  
 SSLSocket::SSLSocket(Sint32 socket, SSLContext * sslcontext, Boolean exportConnection)  SSLSocket::SSLSocket(
       Sint32 socket,
       SSLContext * sslcontext,
       ReadWriteSem * sslContextObjectLock,
       Boolean exportConnection)
    :    :
    _SSLConnection(0),    _SSLConnection(0),
    _socket(socket),    _socket(socket),
    _SSLContext(sslcontext),    _SSLContext(sslcontext),
      _sslContextObjectLock(sslContextObjectLock),
    _SSLCallbackInfo(0),    _SSLCallbackInfo(0),
    _certificateVerified(false),    _certificateVerified(false),
    _exportConnection(exportConnection)    _exportConnection(exportConnection)
Line 213 
Line 218 
     //SSL_do_handshake(_SSLConnection);     //SSL_do_handshake(_SSLConnection);
     //SSL_set_accept_state(_SSLConnection);     //SSL_set_accept_state(_SSLConnection);
  
 redo_accept:      // Make sure the SSLContext object is not updated during this operation.
       ReadLock rlock(*_sslContextObjectLock);
   
     ssl_rc = SSL_accept(_SSLConnection);     ssl_rc = SSL_accept(_SSLConnection);
  
     if (ssl_rc < 0)     if (ssl_rc < 0)
Line 224 
Line 231 
        if ((ssl_rsn == SSL_ERROR_WANT_READ) ||        if ((ssl_rsn == SSL_ERROR_WANT_READ) ||
            (ssl_rsn == SSL_ERROR_WANT_WRITE))            (ssl_rsn == SSL_ERROR_WANT_WRITE))
        {        {
            goto redo_accept;             PEG_METHOD_EXIT();
              return 0;
        }        }
        else        else
        {        {
Line 314 
Line 322 
     }     }
  
     PEG_METHOD_EXIT();     PEG_METHOD_EXIT();
     return ssl_rc;      return 1;
 } }
  
 Sint32 SSLSocket::connect() Sint32 SSLSocket::connect()
Line 426 
Line 434 
 MP_Socket::MP_Socket(Uint32 socket) MP_Socket::MP_Socket(Uint32 socket)
  : _socket(socket), _isSecure(false) {}  : _socket(socket), _isSecure(false) {}
  
 MP_Socket::MP_Socket(Uint32 socket, SSLContext * sslcontext, Boolean exportConnection)  MP_Socket::MP_Socket(
       Uint32 socket,
       SSLContext * sslcontext,
       ReadWriteSem * sslContextObjectLock,
       Boolean exportConnection)
 { {
     PEG_METHOD_ENTER(TRC_SSL, "MP_Socket::MP_Socket()");     PEG_METHOD_ENTER(TRC_SSL, "MP_Socket::MP_Socket()");
     if (sslcontext != NULL)     if (sslcontext != NULL)
     {     {
         _isSecure = true;         _isSecure = true;
         _sslsock = new SSLSocket(socket, sslcontext, exportConnection);          _sslsock = new SSLSocket(
               socket, sslcontext, sslContextObjectLock, exportConnection);
     }     }
     else     else
     {     {
Line 524 
Line 537 
 Sint32 MP_Socket::accept() Sint32 MP_Socket::accept()
 { {
     if (_isSecure)     if (_isSecure)
         if (_sslsock->accept() < 0) return -1;      {
     return 0;          return (_sslsock->accept());
       }
       return 1;
 } }
  
 Sint32 MP_Socket::connect() Sint32 MP_Socket::connect()
Line 572 
Line 587 
 MP_Socket::MP_Socket(Uint32 socket) MP_Socket::MP_Socket(Uint32 socket)
  : _socket(socket), _isSecure(false) {}  : _socket(socket), _isSecure(false) {}
  
 MP_Socket::MP_Socket(Uint32 socket, SSLContext * sslcontext,  MP_Socket::MP_Socket(
       Uint32 socket,
       SSLContext * sslcontext,
       ReadWriteSem * sslContextObjectLock,
    Boolean exportConnection)    Boolean exportConnection)
  : _socket(socket), _isSecure(false) {}  : _socket(socket), _isSecure(false) {}
  
Line 615 
Line 633 
     Socket::disableBlocking(_socket);     Socket::disableBlocking(_socket);
 } }
  
 Sint32 MP_Socket::accept() { return 0; }  Sint32 MP_Socket::accept() { return 1; }
  
 Sint32 MP_Socket::connect() { return 0; } Sint32 MP_Socket::connect() { return 0; }
  


Legend:
Removed from v.1.39  
changed lines
  Added in v.1.40

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2