summaryrefslogtreecommitdiff
path: root/cpp/src/IceSSL/ConnectorI.cpp
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2007-02-01 17:09:49 +0000
committerBernard Normier <bernard@zeroc.com>2007-02-01 17:09:49 +0000
commitabada90e3f84dc703b8ddc9efcbed8a946fadead (patch)
tree2c6f9dccd510ea97cb927a7bd635422efaae547a /cpp/src/IceSSL/ConnectorI.cpp
parentremoving trace message (diff)
downloadice-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.cpp206
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);