From 5d1a138c5c78320ddaabe12133ea880cfb6df580 Mon Sep 17 00:00:00 2001 From: Aleric Inglewood Date: Sat, 17 Nov 2012 05:16:21 +0100 Subject: [PATCH] Code clean up of code related to previous commit. --- indra/llmessage/aicurl.cpp | 10 +++++++--- indra/llmessage/aicurlprivate.h | 7 +++---- indra/llmessage/aicurlthread.cpp | 11 ++++------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/indra/llmessage/aicurl.cpp b/indra/llmessage/aicurl.cpp index 2353f24bd..bfd2a2243 100644 --- a/indra/llmessage/aicurl.cpp +++ b/indra/llmessage/aicurl.cpp @@ -1148,12 +1148,16 @@ void CurlEasyRequest::set_timeout_opts(void) setopt(CURLOPT_TIMEOUT, mTimeoutPolicy->getCurlTransaction()); } -void CurlEasyRequest::create_timeout_object(ThreadSafeBufferedCurlEasyRequest* lockobj) +void CurlEasyRequest::create_timeout_object(void) { + ThreadSafeBufferedCurlEasyRequest* lockobj = NULL; +#if defined(CWDEBUG) || defined(DEBUG_CURLIO) + lockobj = static_cast(this)->get_lockobj(); +#endif mTimeout = new curlthread::HTTPTimeout(mTimeoutPolicy, lockobj); } -LLPointer& CurlEasyRequest::get_timeout_object(ThreadSafeBufferedCurlEasyRequest* lockobj) +LLPointer& CurlEasyRequest::get_timeout_object(void) { if (mTimeoutIsOrphan) { @@ -1162,7 +1166,7 @@ LLPointer& CurlEasyRequest::get_timeout_object(ThreadSa } else { - create_timeout_object(lockobj); + create_timeout_object(); } return mTimeout; } diff --git a/indra/llmessage/aicurlprivate.h b/indra/llmessage/aicurlprivate.h index 327637a3d..abb663d4a 100644 --- a/indra/llmessage/aicurlprivate.h +++ b/indra/llmessage/aicurlprivate.h @@ -316,7 +316,7 @@ class CurlEasyRequest : public CurlEasyHandle { static CURLcode curlCtxCallback(CURL* curl, void* sslctx, void* parm); // Called from get_timeout_object and httptimeout. - void create_timeout_object(ThreadSafeBufferedCurlEasyRequest* lockobj); + void create_timeout_object(void); public: // Set default options that we want applied to all curl easy handles. @@ -374,10 +374,9 @@ class CurlEasyRequest : public CurlEasyHandle { std::string const& getLowercaseHostname(void) const { return mLowercaseHostname; } // Called by CurlSocketInfo to allow access to the last (after a redirect) HTTPTimeout object related to this request. // This creates mTimeout (unless mTimeoutIsOrphan is set in which case it adopts the orphan). - LLPointer& get_timeout_object(ThreadSafeBufferedCurlEasyRequest* lockobj); + LLPointer& get_timeout_object(void); // Accessor for mTimeout with optional creation of orphaned object (if lockobj != NULL). - LLPointer& httptimeout(ThreadSafeBufferedCurlEasyRequest* lockobj = NULL) - { if (lockobj && !mTimeout) { create_timeout_object(lockobj); mTimeoutIsOrphan = true; } return mTimeout; } + LLPointer& httptimeout(void) { if (!mTimeout) { create_timeout_object(); mTimeoutIsOrphan = true; } return mTimeout; } // Return true if no data has been received on the latest socket (if any) for too long. bool has_stalled(void) const { return mTimeout && mTimeout->has_stalled(); } diff --git a/indra/llmessage/aicurlthread.cpp b/indra/llmessage/aicurlthread.cpp index 0b4a6e121..1fbe57d3e 100644 --- a/indra/llmessage/aicurlthread.cpp +++ b/indra/llmessage/aicurlthread.cpp @@ -775,7 +775,7 @@ CurlSocketInfo::CurlSocketInfo(MultiHandle& multi_handle, CURL* easy, curl_socke // CurlSocketInfo objects for a request and we need upload_finished() to be called on the HTTPTimeout // object related to THIS CurlSocketInfo. AICurlEasyRequest_wat easy_request_w(*lockobj); - mTimeout = easy_request_w->get_timeout_object(lockobj); + mTimeout = easy_request_w->get_timeout_object(); } CurlSocketInfo::~CurlSocketInfo() @@ -2259,11 +2259,8 @@ size_t BufferedCurlEasyRequest::curlReadCallback(char* data, size_t size, size_t S32 bytes = size * nmemb; // The maximum amount to read. self_w->mLastRead = self_w->getInput()->readAfter(sChannels.out(), self_w->mLastRead, (U8*)data, bytes); self_w->mRequestTransferedBytes += bytes; // Accumulate data sent to the server. - // Timeout administration. Note that it can happen that we get here - // before the socket callback has been called, because the silly libcurl - // writes headers without informing us. In that case it's OK to create - // the Timeout object on the fly, so pass lockobj. - if (self_w->httptimeout(lockobj)->data_sent(bytes)) + // Timeout administration. + if (self_w->httptimeout()->data_sent(bytes)) { // Transfer timed out. Return CURL_READFUNC_ABORT which will abort with error CURLE_ABORTED_BY_CALLBACK. return CURL_READFUNC_ABORT; @@ -2284,7 +2281,7 @@ size_t BufferedCurlEasyRequest::curlHeaderCallback(char* data, size_t size, size char const* const header_line = static_cast(data); size_t const header_len = size * nmemb; - if (self_w->httptimeout(lockobj)->data_received(header_len)) // Update timeout administration. + if (self_w->httptimeout()->data_received(header_len)) // Update timeout administration. { // Transfer timed out. Return 0 which will abort with error CURLE_WRITE_ERROR. return 0;