diff options
author | Bernard Normier <bernard@zeroc.com> | 2007-02-01 17:09:49 +0000 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2007-02-01 17:09:49 +0000 |
commit | abada90e3f84dc703b8ddc9efcbed8a946fadead (patch) | |
tree | 2c6f9dccd510ea97cb927a7bd635422efaae547a /cpp/src/IceSSL/ConnectorI.cpp | |
parent | removing trace message (diff) | |
download | ice-abada90e3f84dc703b8ddc9efcbed8a946fadead.tar.bz2 ice-abada90e3f84dc703b8ddc9efcbed8a946fadead.tar.xz ice-abada90e3f84dc703b8ddc9efcbed8a946fadead.zip |
Expanded tabs into spaces
Diffstat (limited to 'cpp/src/IceSSL/ConnectorI.cpp')
-rw-r--r-- | cpp/src/IceSSL/ConnectorI.cpp | 206 |
1 files changed, 103 insertions, 103 deletions
diff --git a/cpp/src/IceSSL/ConnectorI.cpp b/cpp/src/IceSSL/ConnectorI.cpp index 29433f31f3f..8a68c3559c3 100644 --- a/cpp/src/IceSSL/ConnectorI.cpp +++ b/cpp/src/IceSSL/ConnectorI.cpp @@ -28,15 +28,15 @@ IceSSL::ConnectorI::connect(int timeout) // if(!_instance->context()) { - PluginInitializationException ex(__FILE__, __LINE__); - ex.reason = "IceSSL: plugin is not initialized"; - throw ex; + PluginInitializationException ex(__FILE__, __LINE__); + ex.reason = "IceSSL: plugin is not initialized"; + throw ex; } if(_instance->networkTraceLevel() >= 2) { - Trace out(_logger, _instance->networkTraceCategory()); - out << "trying to establish ssl connection to " << toString(); + Trace out(_logger, _instance->networkTraceCategory()); + out << "trying to establish ssl connection to " << toString(); } SOCKET fd = IceInternal::createSocket(false); @@ -47,125 +47,125 @@ IceSSL::ConnectorI::connect(int timeout) BIO* bio = BIO_new_socket(static_cast<int>(fd), BIO_CLOSE); if(!bio) { - IceInternal::closeSocketNoThrow(fd); - SecurityException ex(__FILE__, __LINE__); - ex.reason = "openssl failure"; - throw ex; + IceInternal::closeSocketNoThrow(fd); + SecurityException ex(__FILE__, __LINE__); + ex.reason = "openssl failure"; + throw ex; } SSL* ssl = SSL_new(_instance->context()); if(!ssl) { - BIO_free(bio); // Also closes the socket. - SecurityException ex(__FILE__, __LINE__); - ex.reason = "openssl failure"; - throw ex; + BIO_free(bio); // Also closes the socket. + SecurityException ex(__FILE__, __LINE__); + ex.reason = "openssl failure"; + throw ex; } SSL_set_bio(ssl, bio, bio); try { - do - { - int result = SSL_connect(ssl); - switch(SSL_get_error(ssl, result)) - { - case SSL_ERROR_NONE: - break; - case SSL_ERROR_ZERO_RETURN: - { - ConnectionLostException ex(__FILE__, __LINE__); - ex.error = IceInternal::getSocketErrno(); - throw ex; - } - case SSL_ERROR_WANT_READ: - if(!selectRead(fd, timeout)) - { - throw ConnectTimeoutException(__FILE__, __LINE__); - } - break; - case SSL_ERROR_WANT_WRITE: - if(!selectWrite(fd, timeout)) - { - throw ConnectTimeoutException(__FILE__, __LINE__); - } - break; - case SSL_ERROR_SYSCALL: - { - if(result == -1) - { - if(IceInternal::interrupted()) - { - break; - } - - if(IceInternal::wouldBlock()) - { - if(SSL_want_read(ssl)) - { - if(!selectRead(fd, timeout)) - { - throw ConnectTimeoutException(__FILE__, __LINE__); - } - } - else if(SSL_want_write(ssl)) - { - if(!selectWrite(fd, timeout)) - { - throw ConnectTimeoutException(__FILE__, __LINE__); - } - } - - continue; - } - - if(IceInternal::connectionLost()) - { - ConnectionLostException ex(__FILE__, __LINE__); - ex.error = IceInternal::getSocketErrno(); - throw ex; - } - } - - if(result == 0) - { - ConnectionLostException ex(__FILE__, __LINE__); - ex.error = 0; - throw ex; - } - - SocketException ex(__FILE__, __LINE__); - ex.error = IceInternal::getSocketErrno(); - throw ex; - } - case SSL_ERROR_SSL: - { - ProtocolException ex(__FILE__, __LINE__); - ex.reason = "SSL error for new outgoing connection:\nremote address = " + - IceInternal::addrToString(_addr) + "\n" + _instance->sslErrors(); - throw ex; - } - } - } - while(!SSL_is_init_finished(ssl)); - - _instance->verifyPeer(ssl, fd, _host, "", false); + do + { + int result = SSL_connect(ssl); + switch(SSL_get_error(ssl, result)) + { + case SSL_ERROR_NONE: + break; + case SSL_ERROR_ZERO_RETURN: + { + ConnectionLostException ex(__FILE__, __LINE__); + ex.error = IceInternal::getSocketErrno(); + throw ex; + } + case SSL_ERROR_WANT_READ: + if(!selectRead(fd, timeout)) + { + throw ConnectTimeoutException(__FILE__, __LINE__); + } + break; + case SSL_ERROR_WANT_WRITE: + if(!selectWrite(fd, timeout)) + { + throw ConnectTimeoutException(__FILE__, __LINE__); + } + break; + case SSL_ERROR_SYSCALL: + { + if(result == -1) + { + if(IceInternal::interrupted()) + { + break; + } + + if(IceInternal::wouldBlock()) + { + if(SSL_want_read(ssl)) + { + if(!selectRead(fd, timeout)) + { + throw ConnectTimeoutException(__FILE__, __LINE__); + } + } + else if(SSL_want_write(ssl)) + { + if(!selectWrite(fd, timeout)) + { + throw ConnectTimeoutException(__FILE__, __LINE__); + } + } + + continue; + } + + if(IceInternal::connectionLost()) + { + ConnectionLostException ex(__FILE__, __LINE__); + ex.error = IceInternal::getSocketErrno(); + throw ex; + } + } + + if(result == 0) + { + ConnectionLostException ex(__FILE__, __LINE__); + ex.error = 0; + throw ex; + } + + SocketException ex(__FILE__, __LINE__); + ex.error = IceInternal::getSocketErrno(); + throw ex; + } + case SSL_ERROR_SSL: + { + ProtocolException ex(__FILE__, __LINE__); + ex.reason = "SSL error for new outgoing connection:\nremote address = " + + IceInternal::addrToString(_addr) + "\n" + _instance->sslErrors(); + throw ex; + } + } + } + while(!SSL_is_init_finished(ssl)); + + _instance->verifyPeer(ssl, fd, _host, "", false); } catch(...) { - SSL_free(ssl); - throw; + SSL_free(ssl); + throw; } if(_instance->networkTraceLevel() >= 1) { - Trace out(_logger, _instance->networkTraceCategory()); - out << "ssl connection established\n" << IceInternal::fdToString(fd); + Trace out(_logger, _instance->networkTraceCategory()); + out << "ssl connection established\n" << IceInternal::fdToString(fd); } if(_instance->securityTraceLevel() >= 1) { - _instance->traceConnection(ssl, false); + _instance->traceConnection(ssl, false); } return new TransceiverI(_instance, ssl, fd, false); |