Skip to content
Snippets Groups Projects
Commit 36be78e5 authored by andreykproductengine's avatar andreykproductengine
Browse files

SL-2797 SOCKS5 not working reliably

parent 29f0a780
No related branches found
No related tags found
No related merge requests found
...@@ -265,7 +265,7 @@ LLSocket::~LLSocket() ...@@ -265,7 +265,7 @@ LLSocket::~LLSocket()
void LLSocket::setBlocking(S32 timeout) void LLSocket::setBlocking(S32 timeout)
{ {
// set up the socket options // set up the socket options
ll_apr_warn_status(apr_socket_timeout_set(mSocket, timeout)); ll_apr_warn_status(apr_socket_timeout_set(mSocket, timeout)); // Sets both receive and send timeout SO_RCVTIMEO, SO_SNDTIMEO
ll_apr_warn_status(apr_socket_opt_set(mSocket, APR_SO_NONBLOCK, 0)); 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_SNDBUF, LL_SEND_BUFFER_SIZE));
ll_apr_warn_status(apr_socket_opt_set(mSocket, APR_SO_RCVBUF, LL_RECV_BUFFER_SIZE)); ll_apr_warn_status(apr_socket_opt_set(mSocket, APR_SO_RCVBUF, LL_RECV_BUFFER_SIZE));
......
...@@ -473,7 +473,8 @@ static apr_status_t tcp_blocking_handshake(LLSocket::ptr_t handle, char * dataou ...@@ -473,7 +473,8 @@ static apr_status_t tcp_blocking_handshake(LLSocket::ptr_t handle, char * dataou
rv = apr_socket_send(apr_socket, dataout, &outlen); rv = apr_socket_send(apr_socket, dataout, &outlen);
if (APR_SUCCESS != rv) if (APR_SUCCESS != rv)
{ {
LL_WARNS("Proxy") << "Error sending data to proxy control channel, status: " << rv << LL_ENDL; char buf[MAX_STRING];
LL_WARNS("Proxy") << "Error sending data to proxy control channel, status: " << rv << " " << apr_strerror(rv, buf, MAX_STRING) << LL_ENDL;
ll_apr_warn_status(rv); ll_apr_warn_status(rv);
} }
else if (expected_len != outlen) else if (expected_len != outlen)
...@@ -483,13 +484,16 @@ static apr_status_t tcp_blocking_handshake(LLSocket::ptr_t handle, char * dataou ...@@ -483,13 +484,16 @@ static apr_status_t tcp_blocking_handshake(LLSocket::ptr_t handle, char * dataou
rv = -1; rv = -1;
} }
ms_sleep(1);
if (APR_SUCCESS == rv) if (APR_SUCCESS == rv)
{ {
expected_len = maxinlen; expected_len = maxinlen;
rv = apr_socket_recv(apr_socket, datain, &maxinlen); rv = apr_socket_recv(apr_socket, datain, &maxinlen);
if (rv != APR_SUCCESS) if (rv != APR_SUCCESS)
{ {
LL_WARNS("Proxy") << "Error receiving data from proxy control channel, status: " << rv << LL_ENDL; char buf[MAX_STRING];
LL_WARNS("Proxy") << "Error receiving data from proxy control channel, status: " << rv << " " << apr_strerror(rv, buf, MAX_STRING) << LL_ENDL;
ll_apr_warn_status(rv); ll_apr_warn_status(rv);
} }
else if (expected_len < maxinlen) else if (expected_len < maxinlen)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment