diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2014-09-05 10:42:18 -0230 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2014-09-05 10:42:18 -0230 |
commit | 9786853ab2d88598021aaec5c0409d3a45a50a13 (patch) | |
tree | d64858749513c529fdb84a98d8637d19f2c125e4 /cpp/src/IceSSL/AcceptorI.cpp | |
parent | Minor change to JS print stack traces (diff) | |
download | ice-9786853ab2d88598021aaec5c0409d3a45a50a13.tar.bz2 ice-9786853ab2d88598021aaec5c0409d3a45a50a13.tar.xz ice-9786853ab2d88598021aaec5c0409d3a45a50a13.zip |
ICE-4891 Refactor network tracing
Diffstat (limited to 'cpp/src/IceSSL/AcceptorI.cpp')
-rw-r--r-- | cpp/src/IceSSL/AcceptorI.cpp | 66 |
1 files changed, 26 insertions, 40 deletions
diff --git a/cpp/src/IceSSL/AcceptorI.cpp b/cpp/src/IceSSL/AcceptorI.cpp index 8a7fb3ca187..f55f1b2b2f4 100644 --- a/cpp/src/IceSSL/AcceptorI.cpp +++ b/cpp/src/IceSSL/AcceptorI.cpp @@ -16,6 +16,7 @@ #include <IceSSL/Util.h> +#include <Ice/EndpointI.h> #include <Ice/Communicator.h> #include <Ice/Exception.h> #include <Ice/LocalException.h> @@ -54,20 +55,16 @@ IceSSL::AcceptorI::getAsyncInfo(IceInternal::SocketOperation) void IceSSL::AcceptorI::close() { - if(_instance->traceLevel() >= 1) - { - Trace out(_instance->logger(), _instance->traceCategory()); - out << "stopping to accept " << _instance->protocol() << " connections at " << toString(); - } - SOCKET fd = _fd; _fd = INVALID_SOCKET; IceInternal::closeSocket(fd); } -void -IceSSL::AcceptorI::listen() +IceInternal::EndpointIPtr +IceSSL::AcceptorI::listen(const IceInternal::EndpointIPtr& endp) { + const_cast<IceInternal::Address&>(_addr) = IceInternal::doBind(_fd, _addr); + try { IceInternal::doListen(_fd, _backlog); @@ -78,20 +75,7 @@ IceSSL::AcceptorI::listen() throw; } - if(_instance->traceLevel() >= 1) - { - Trace out(_instance->logger(), _instance->traceCategory()); - out << "listening for " << _instance->protocol() << " connections at " << toString(); - - vector<string> interfaces = - IceInternal::getHostsForEndpointExpand(IceInternal::inetAddrToString(_addr), _instance->protocolSupport(), - true); - if(!interfaces.empty()) - { - out << "\nlocal interfaces: "; - out << IceUtilInternal::joinString(interfaces, ", "); - } - } + return endp->endpoint(this); } #ifdef ICE_USE_IOCP @@ -101,20 +85,20 @@ IceSSL::AcceptorI::startAccept() LPFN_ACCEPTEX AcceptEx = NULL; // a pointer to the 'AcceptEx()' function GUID GuidAcceptEx = WSAID_ACCEPTEX; // The Guid DWORD dwBytes; - if(WSAIoctl(_fd, + if(WSAIoctl(_fd, SIO_GET_EXTENSION_FUNCTION_POINTER, &GuidAcceptEx, sizeof(GuidAcceptEx), &AcceptEx, sizeof(AcceptEx), &dwBytes, - NULL, + NULL, NULL) == SOCKET_ERROR) { SocketException ex(__FILE__, __LINE__); ex.error = IceInternal::getSocketErrno(); throw ex; - } + } assert(_acceptFd == INVALID_SOCKET); _acceptFd = IceInternal::createSocket(false, _addr); @@ -130,7 +114,7 @@ IceSSL::AcceptorI::startAccept() } } -void +void IceSSL::AcceptorI::finishAccept() { if(static_cast<int>(_info.count) == SOCKET_ERROR || _fd == INVALID_SOCKET) @@ -162,10 +146,10 @@ IceSSL::AcceptorI::accept() { SocketException ex(__FILE__, __LINE__); ex.error = _acceptError; - throw ex; + throw ex; } - if(setsockopt(_acceptFd, SOL_SOCKET, SO_UPDATE_ACCEPT_CONTEXT, (char*)&_acceptFd, sizeof(_acceptFd)) == + if(setsockopt(_acceptFd, SOL_SOCKET, SO_UPDATE_ACCEPT_CONTEXT, (char*)&_acceptFd, sizeof(_acceptFd)) == SOCKET_ERROR) { IceInternal::closeSocketNoThrow(_acceptFd); @@ -179,12 +163,6 @@ IceSSL::AcceptorI::accept() _acceptFd = INVALID_SOCKET; #endif - if(_instance->traceLevel() >= 1) - { - Trace out(_instance->logger(), _instance->traceCategory()); - out << "attempting to accept " << _instance->protocol() << " connection\n" << IceInternal::fdToString(fd); - } - // // SSL handshaking is performed in TransceiverI::initialize, since // accept must not block. @@ -204,6 +182,20 @@ IceSSL::AcceptorI::toString() const return IceInternal::addrToString(_addr); } +string +IceSSL::AcceptorI::toDetailedString() const +{ + ostringstream os; + os << "local address = " << toString(); + vector<string> intfs = getHostsForEndpointExpand(inetAddrToString(_addr), _instance->protocolSupport(), true); + if(!intfs.empty()) + { + os << "\nlocal interfaces = "; + os << IceUtilInternal::joinString(intfs, ", "); + } + return os.str(); +} + int IceSSL::AcceptorI::effectivePort() const { @@ -254,12 +246,6 @@ IceSSL::AcceptorI::AcceptorI(const InstancePtr& instance, const string& adapterN // IceInternal::setReuseAddress(_fd, true); #endif - if(_instance->traceLevel() >= 2) - { - Trace out(_instance->logger(), _instance->traceCategory()); - out << "attempting to bind to " << _instance->protocol() << " socket " << toString(); - } - const_cast<IceInternal::Address&>(_addr) = IceInternal::doBind(_fd, _addr); } IceSSL::AcceptorI::~AcceptorI() |