summaryrefslogtreecommitdiff
path: root/indra/llmessage/llproxy.cpp
diff options
context:
space:
mode:
authorBrad Payne (Vir Linden) <vir@lindenlab.com>2019-11-12 15:40:14 +0000
committerBrad Payne (Vir Linden) <vir@lindenlab.com>2019-11-12 15:40:14 +0000
commit38d8eaba3e6e17dd39c9e9904852c14c95179783 (patch)
tree0703ba92d765b6d324eefa0d6a0de8fc6910f8cd /indra/llmessage/llproxy.cpp
parent63f82fc44b721b0ec437845d41b5a2055a44be68 (diff)
parent78bdf57ad6610b34389226bf941ba736ca0c2225 (diff)
merge
Diffstat (limited to 'indra/llmessage/llproxy.cpp')
-rw-r--r--indra/llmessage/llproxy.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/indra/llmessage/llproxy.cpp b/indra/llmessage/llproxy.cpp
index 5730a36267..950599217f 100644
--- a/indra/llmessage/llproxy.cpp
+++ b/indra/llmessage/llproxy.cpp
@@ -403,8 +403,11 @@ LLSocks5AuthType LLProxy::getSelectedAuthMethod() const
//static
void LLProxy::cleanupClass()
{
- getInstance()->stopSOCKSProxy();
- deleteSingleton();
+ if (instanceExists())
+ {
+ getInstance()->stopSOCKSProxy();
+ deleteSingleton();
+ }
}
/**
@@ -473,7 +476,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 +487,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)