diff options
author | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2019-11-12 15:40:14 +0000 |
---|---|---|
committer | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2019-11-12 15:40:14 +0000 |
commit | 38d8eaba3e6e17dd39c9e9904852c14c95179783 (patch) | |
tree | 0703ba92d765b6d324eefa0d6a0de8fc6910f8cd /indra/llmessage/llproxy.cpp | |
parent | 63f82fc44b721b0ec437845d41b5a2055a44be68 (diff) | |
parent | 78bdf57ad6610b34389226bf941ba736ca0c2225 (diff) |
merge
Diffstat (limited to 'indra/llmessage/llproxy.cpp')
-rw-r--r-- | indra/llmessage/llproxy.cpp | 15 |
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) |