Fixed potential memory leak in LLHTTPClient. Fixed potential hanging http requests in LLHTTPClient. Fixed munging of "Pragma" headers in LLHTTPClientAdapter

meow-7.2.2
Don Kjer 2013-03-13 08:49:26 +00:00
parent 0123ab0dc6
commit 7405554290
2 changed files with 17 additions and 5 deletions

View File

@ -222,7 +222,11 @@ static void request(
{
if (!LLHTTPClient::hasPump())
{
responder->completed(U32_MAX, "No pump", LLSD());
if (responder)
{
responder->completed(U32_MAX, "No pump", LLSD());
}
delete body_injector;
return;
}
LLPumpIO::chain_t chain;
@ -230,8 +234,13 @@ static void request(
LLURLRequest* req = new LLURLRequest(method, url);
if(!req->isValid())//failed
{
delete req ;
return ;
if (responder)
{
responder->completed(498, "Internal Error - curl failure");
}
delete req;
delete body_injector;
return;
}
req->setSSLVerifyCallback(LLHTTPClient::getCertVerifyCallback(), (void *)req);

View File

@ -43,8 +43,11 @@ void LLHTTPClientAdapter::get(const std::string& url, LLCurl::ResponderPtr respo
void LLHTTPClientAdapter::get(const std::string& url, LLCurl::ResponderPtr responder, const LLSD& headers)
{
LLSD empty_pragma_header = headers;
// as above
empty_pragma_header["Pragma"] = " ";
if (!empty_pragma_header.has("Pragma"))
{
// as above
empty_pragma_header["Pragma"] = " ";
}
LLHTTPClient::get(url, responder, empty_pragma_header);
}