diff options
| author | andreykproductengine <andreykproductengine@lindenlab.com> | 2019-04-17 18:24:42 +0300 | 
|---|---|---|
| committer | andreykproductengine <andreykproductengine@lindenlab.com> | 2019-04-17 18:24:42 +0300 | 
| commit | 36be78e54f703cbd08a9660ee06f1b43a8071cf4 (patch) | |
| tree | cecf628bb32444203eb778c8fe44dc9bfdebc305 | |
| parent | 29f0a7808ff470bd20c76b089881c98b3b59e6fc (diff) | |
SL-2797 SOCKS5 not working reliably
| -rw-r--r-- | indra/llmessage/lliosocket.cpp | 2 | ||||
| -rw-r--r-- | indra/llmessage/llproxy.cpp | 8 | 
2 files changed, 7 insertions, 3 deletions
diff --git a/indra/llmessage/lliosocket.cpp b/indra/llmessage/lliosocket.cpp index b15b98db80..7caf0766b7 100644 --- a/indra/llmessage/lliosocket.cpp +++ b/indra/llmessage/lliosocket.cpp @@ -265,7 +265,7 @@ LLSocket::~LLSocket()  void LLSocket::setBlocking(S32 timeout)  {  	// 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_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/llproxy.cpp b/indra/llmessage/llproxy.cpp index 5730a36267..dea03aab85 100644 --- a/indra/llmessage/llproxy.cpp +++ b/indra/llmessage/llproxy.cpp @@ -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);  	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);  	}  	else if (expected_len != outlen) @@ -483,13 +484,16 @@ static apr_status_t tcp_blocking_handshake(LLSocket::ptr_t handle, char * dataou  		rv = -1;  	} +	ms_sleep(1); +  	if (APR_SUCCESS == rv)  	{  		expected_len = maxinlen;  		rv = apr_socket_recv(apr_socket, datain, &maxinlen);  		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);  		}  		else if (expected_len < maxinlen)  | 
