diff options
author | Benoit Foucher <benoit@zeroc.com> | 2006-02-20 10:31:57 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2006-02-20 10:31:57 +0000 |
commit | e1d3d16e0fb475d771fbc476a3f1e88c9bcdc10f (patch) | |
tree | 03017261521ec7c308e3e092b15a74edcd6ca8e2 /cppe/src/TcpTransport/Acceptor.cpp | |
parent | porting new proxy methods for connection mgmt (diff) | |
download | ice-e1d3d16e0fb475d771fbc476a3f1e88c9bcdc10f.tar.bz2 ice-e1d3d16e0fb475d771fbc476a3f1e88c9bcdc10f.tar.xz ice-e1d3d16e0fb475d771fbc476a3f1e88c9bcdc10f.zip |
Use socket timeouts by default.
Diffstat (limited to 'cppe/src/TcpTransport/Acceptor.cpp')
-rw-r--r-- | cppe/src/TcpTransport/Acceptor.cpp | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/cppe/src/TcpTransport/Acceptor.cpp b/cppe/src/TcpTransport/Acceptor.cpp index a2d0f4b365f..dd9a8c027eb 100644 --- a/cppe/src/TcpTransport/Acceptor.cpp +++ b/cppe/src/TcpTransport/Acceptor.cpp @@ -66,12 +66,7 @@ TransceiverPtr IceInternal::Acceptor::accept() { SOCKET fd = doAccept(_fd); -#if !defined(_WIN32) || defined(ICEE_USE_SOCKET_TIMEOUT) - // - // TODO: We can't use blocking sockets on Windows yet because - // the transceiver is using WSAEventSelect (which doesn't play - // well with blocking sockets). - // +#ifndef ICEE_USE_SELECT_FOR_TIMEOUTS setBlock(fd, true); #endif @@ -81,14 +76,14 @@ IceInternal::Acceptor::accept() out << "accepted tcp connection\n" << fdToString(fd); } - return new Transceiver(_instance, fd); + return new Transceiver(_instance, fd, _timeout); } void IceInternal::Acceptor::connectToSelf() { SOCKET fd = createSocket(); -// setBlock(fd, false); // No need to use a non blocking socket here. + setBlock(fd, false); doConnect(fd, _addr, -1); closeSocket(fd); } @@ -113,11 +108,12 @@ IceInternal::Acceptor::effectivePort() return ntohs(_addr.sin_port); } -IceInternal::Acceptor::Acceptor(const InstancePtr& instance, const string& host, int port) : +IceInternal::Acceptor::Acceptor(const InstancePtr& instance, const string& host, int port, int timeout) : _instance(instance), _traceLevels(instance->traceLevels()), _logger(instance->logger()), - _backlog(0) + _backlog(0), + _timeout(timeout) { if(_backlog <= 0) { |