diff options
| -rw-r--r-- | indra/llmessage/llcurl.cpp | 11 | ||||
| -rw-r--r-- | indra/llmessage/llcurl.h | 2 | 
2 files changed, 13 insertions, 0 deletions
| diff --git a/indra/llmessage/llcurl.cpp b/indra/llmessage/llcurl.cpp index 1ab82a273b..32a9cd061f 100644 --- a/indra/llmessage/llcurl.cpp +++ b/indra/llmessage/llcurl.cpp @@ -91,6 +91,7 @@ std::string LLCurl::sCAFile;  LLCurlThread* LLCurl::sCurlThread = NULL ;  LLMutex* LLCurl::sHandleMutexp = NULL ;  S32      LLCurl::sTotalHandles = 0 ; +bool     LLCurl::sNotQuitting = true;  void check_curl_code(CURLcode code)  { @@ -319,6 +320,14 @@ LLCurl::Easy::~Easy()  	--gCurlEasyCount;  	curl_slist_free_all(mHeaders);  	for_each(mStrings.begin(), mStrings.end(), DeletePointerArray()); + +	if (mResponder && LLCurl::sNotQuitting) //aborted +	{	 +		std::string reason("Request timeout, aborted.") ; +		mResponder->completedRaw(408, //HTTP_REQUEST_TIME_OUT, timeout, abort +			reason, mChannels, mOutput);		 +	} +	mResponder = NULL;  }  void LLCurl::Easy::resetState() @@ -1462,6 +1471,8 @@ void LLCurl::initClass(bool multi_threaded)  void LLCurl::cleanupClass()  { +	sNotQuitting = false; //set quitting +  	//shut down curl thread  	while(1)  	{ diff --git a/indra/llmessage/llcurl.h b/indra/llmessage/llcurl.h index 2b23ac9763..7d2340a6cb 100644 --- a/indra/llmessage/llcurl.h +++ b/indra/llmessage/llcurl.h @@ -197,6 +197,8 @@ private:  	static LLMutex* sHandleMutexp ;  	static S32      sTotalHandles ; +public: +	static bool     sNotQuitting;  };  class LLCurl::Easy | 
