diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/llmessage/llhttpclient.cpp | 34 | ||||
| -rw-r--r-- | indra/llmessage/llhttpclient.h | 16 | 
2 files changed, 26 insertions, 24 deletions
diff --git a/indra/llmessage/llhttpclient.cpp b/indra/llmessage/llhttpclient.cpp index 0929f93dc1..121cbd2e68 100644 --- a/indra/llmessage/llhttpclient.cpp +++ b/indra/llmessage/llhttpclient.cpp @@ -20,7 +20,7 @@  #include <curl/curl.h> -static const F32 HTTP_REQUEST_EXPIRY_SECS = 60.0f; +const F32 HTTP_REQUEST_EXPIRY_SECS = 60.0f;  static std::string gCABundle; @@ -214,7 +214,7 @@ namespace  }  static void request(const std::string& url, LLURLRequest::ERequestAction method, -	Injector* body_injector, LLHTTPClient::ResponderPtr responder) +	Injector* body_injector, LLHTTPClient::ResponderPtr responder, const F32 timeout=HTTP_REQUEST_EXPIRY_SECS)  {  	if (!LLHTTPClient::hasPump())  	{ @@ -239,12 +239,12 @@ static void request(const std::string& url, LLURLRequest::ERequestAction method,  	}  	chain.push_back(LLIOPipe::ptr_t(req)); -	theClientPump->addChain(chain, HTTP_REQUEST_EXPIRY_SECS); +	theClientPump->addChain(chain, timeout);  } -void LLHTTPClient::get(const std::string& url, ResponderPtr responder) +void LLHTTPClient::get(const std::string& url, ResponderPtr responder, const F32 timeout)  { -	request(url, LLURLRequest::HTTP_GET, NULL, responder); +	request(url, LLURLRequest::HTTP_GET, NULL, responder, timeout);  }  // A simple class for managing data returned from a curl http request. @@ -325,36 +325,36 @@ LLSD LLHTTPClient::blockingGet(const std::string& url)  	return response;  } -void LLHTTPClient::put(const std::string& url, const LLSD& body, ResponderPtr responder) +void LLHTTPClient::put(const std::string& url, const LLSD& body, ResponderPtr responder, const F32 timeout)  { -	request(url, LLURLRequest::HTTP_PUT, new LLSDInjector(body), responder); +	request(url, LLURLRequest::HTTP_PUT, new LLSDInjector(body), responder, timeout);  } -void LLHTTPClient::post(const std::string& url, const LLSD& body, ResponderPtr responder) +void LLHTTPClient::post(const std::string& url, const LLSD& body, ResponderPtr responder, const F32 timeout)  { -	request(url, LLURLRequest::HTTP_POST, new LLSDInjector(body), responder); +	request(url, LLURLRequest::HTTP_POST, new LLSDInjector(body), responder, timeout);  } -void LLHTTPClient::post(const std::string& url, const U8* data, S32 size, ResponderPtr responder) +void LLHTTPClient::post(const std::string& url, const U8* data, S32 size, ResponderPtr responder, const F32 timeout)  { -	request(url, LLURLRequest::HTTP_POST, new RawInjector(data, size), responder); +	request(url, LLURLRequest::HTTP_POST, new RawInjector(data, size), responder, timeout);  } -void LLHTTPClient::del(const std::string& url, ResponderPtr responder) +void LLHTTPClient::del(const std::string& url, ResponderPtr responder, const F32 timeout)  { -	request(url, LLURLRequest::HTTP_DELETE, NULL, responder); +	request(url, LLURLRequest::HTTP_DELETE, NULL, responder, timeout);  }  #if 1 -void LLHTTPClient::postFile(const std::string& url, const std::string& filename, ResponderPtr responder) +void LLHTTPClient::postFile(const std::string& url, const std::string& filename, ResponderPtr responder, const F32 timeout)  { -	request(url, LLURLRequest::HTTP_POST, new FileInjector(filename), responder); +	request(url, LLURLRequest::HTTP_POST, new FileInjector(filename), responder, timeout);  }  void LLHTTPClient::postFile(const std::string& url, const LLUUID& uuid, -							LLAssetType::EType asset_type, ResponderPtr responder) +							LLAssetType::EType asset_type, ResponderPtr responder, const F32 timeout)  { -	request(url, LLURLRequest::HTTP_POST, new VFileInjector(uuid, asset_type), responder); +	request(url, LLURLRequest::HTTP_POST, new VFileInjector(uuid, asset_type), responder, timeout);  }  #endif diff --git a/indra/llmessage/llhttpclient.h b/indra/llmessage/llhttpclient.h index a8afea312d..060293c930 100644 --- a/indra/llmessage/llhttpclient.h +++ b/indra/llmessage/llhttpclient.h @@ -19,6 +19,8 @@  #include "llassettype.h" +extern const F32 HTTP_REQUEST_EXPIRY_SECS; +  class LLUUID;  class LLPumpIO;  class LLSD; @@ -50,19 +52,19 @@ public:  	typedef boost::intrusive_ptr<Responder>	ResponderPtr; -	static void get(const std::string& url, ResponderPtr); -	static void put(const std::string& url, const LLSD& body, ResponderPtr); +	static void get(const std::string& url, ResponderPtr, const F32 timeout=HTTP_REQUEST_EXPIRY_SECS); +	static void put(const std::string& url, const LLSD& body, ResponderPtr, const F32 timeout=HTTP_REQUEST_EXPIRY_SECS);  		///< non-blocking -	static void post(const std::string& url, const LLSD& body, ResponderPtr); -	static void post(const std::string& url, const U8* data, S32 size, ResponderPtr responder); -	static void postFile(const std::string& url, const std::string& filename, ResponderPtr); +	static void post(const std::string& url, const LLSD& body, ResponderPtr, const F32 timeout=HTTP_REQUEST_EXPIRY_SECS); +	static void post(const std::string& url, const U8* data, S32 size, ResponderPtr responder, const F32 timeout=HTTP_REQUEST_EXPIRY_SECS); +	static void postFile(const std::string& url, const std::string& filename, ResponderPtr, const F32 timeout=HTTP_REQUEST_EXPIRY_SECS);  	static void postFile(const std::string& url, const LLUUID& uuid, -		LLAssetType::EType asset_type, ResponderPtr responder); +		LLAssetType::EType asset_type, ResponderPtr responder, const F32 timeout=HTTP_REQUEST_EXPIRY_SECS);  	// Blocking HTTP get that returns an LLSD map of status and body.  	static LLSD blockingGet(const std::string& url); -	static void del(const std::string& url, ResponderPtr); +	static void del(const std::string& url, ResponderPtr, const F32 timeout=HTTP_REQUEST_EXPIRY_SECS);  		///< sends a DELETE method, but we can't call it delete in c++  | 
