summaryrefslogtreecommitdiff
path: root/indra/llmessage
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llmessage')
-rw-r--r--indra/llmessage/lliosocket.cpp26
-rw-r--r--indra/llmessage/lliosocket.h11
2 files changed, 7 insertions, 30 deletions
diff --git a/indra/llmessage/lliosocket.cpp b/indra/llmessage/lliosocket.cpp
index 8c752fbe30..ca84fa8bb8 100644
--- a/indra/llmessage/lliosocket.cpp
+++ b/indra/llmessage/lliosocket.cpp
@@ -191,7 +191,7 @@ LLSocket::ptr_t LLSocket::create(apr_pool_t* pool, EType type, U16 port)
port = PORT_EPHEMERAL;
}
rv->mPort = port;
- rv->setNonBlocking();
+ rv->setOptions();
return rv;
}
@@ -206,7 +206,7 @@ LLSocket::ptr_t LLSocket::create(apr_socket_t* socket, apr_pool_t* pool)
}
rv = ptr_t(new LLSocket(socket, pool));
rv->mPort = PORT_EPHEMERAL;
- rv->setNonBlocking();
+ rv->setOptions();
return rv;
}
@@ -227,10 +227,10 @@ bool LLSocket::blockingConnect(const LLHost& host)
{
return false;
}
- setBlocking(1000);
+ apr_socket_timeout_set(mSocket, 1000);
ll_debug_socket("Blocking connect", mSocket);
if(ll_apr_warn_status(apr_socket_connect(mSocket, sa))) return false;
- setNonBlocking();
+ setOptions();
return true;
}
@@ -258,27 +258,11 @@ LLSocket::~LLSocket()
}
}
-// See http://dev.ariel-networks.com/apr/apr-tutorial/html/apr-tutorial-13.html#ss13.4
-// for an explanation of how to get non-blocking sockets and timeouts with
-// consistent behavior across platforms.
-
-void LLSocket::setBlocking(S32 timeout)
-{
- LLMemType m1(LLMemType::MTYPE_IO_TCP);
- // set up the socket options
- ll_apr_warn_status(apr_socket_timeout_set(mSocket, timeout));
- ll_apr_warn_status(apr_socket_opt_set(mSocket, APR_SO_NONBLOCK, 0));
- ll_apr_warn_status(apr_socket_opt_set(mSocket, APR_SO_SNDBUF, LL_SEND_BUFFER_SIZE));
- ll_apr_warn_status(apr_socket_opt_set(mSocket, APR_SO_RCVBUF, LL_RECV_BUFFER_SIZE));
-
-}
-
-void LLSocket::setNonBlocking()
+void LLSocket::setOptions()
{
LLMemType m1(LLMemType::MTYPE_IO_TCP);
// set up the socket options
ll_apr_warn_status(apr_socket_timeout_set(mSocket, 0));
- ll_apr_warn_status(apr_socket_opt_set(mSocket, APR_SO_NONBLOCK, 1));
ll_apr_warn_status(apr_socket_opt_set(mSocket, APR_SO_SNDBUF, LL_SEND_BUFFER_SIZE));
ll_apr_warn_status(apr_socket_opt_set(mSocket, APR_SO_RCVBUF, LL_RECV_BUFFER_SIZE));
diff --git a/indra/llmessage/lliosocket.h b/indra/llmessage/lliosocket.h
index e0f6c1e34d..6806e5084a 100644
--- a/indra/llmessage/lliosocket.h
+++ b/indra/llmessage/lliosocket.h
@@ -153,16 +153,9 @@ protected:
LLSocket(apr_socket_t* socket, apr_pool_t* pool);
/**
- * @brief Set default socket options, with SO_NONBLOCK = 0 and a timeout in us.
- * @param timeout Number of microseconds to wait on this socket. Any
- * negative number means block-forever. TIMEOUT OF 0 IS NON-PORTABLE.
+ * @brief Set default socket options.
*/
- void setBlocking(S32 timeout);
-
- /**
- * @brief Set default socket options, with SO_NONBLOCK = 1 and timeout = 0.
- */
- void setNonBlocking();
+ void setOptions();
public:
/**