summaryrefslogtreecommitdiff
path: root/indra/llcorehttp/_httplibcurl.cpp
diff options
context:
space:
mode:
authorMonty Brandenberg <monty@lindenlab.com>2014-09-05 17:37:21 -0400
committerMonty Brandenberg <monty@lindenlab.com>2014-09-05 17:37:21 -0400
commitee4cd594623eff6f04cfc2bafb937f0cfd631080 (patch)
tree7d3a8770fca691abc66a910ea64dc79a28ef46f6 /indra/llcorehttp/_httplibcurl.cpp
parentbbf9de9c6717f38a77a39d42d8493d275d558db9 (diff)
parent0c20beda6800149ee71a307ca4e943b5bba56908 (diff)
Merge. Refresh from viewer-drano-http-4 after pipelining work.
Diffstat (limited to 'indra/llcorehttp/_httplibcurl.cpp')
-rwxr-xr-xindra/llcorehttp/_httplibcurl.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/indra/llcorehttp/_httplibcurl.cpp b/indra/llcorehttp/_httplibcurl.cpp
index b46833a1f3..cfbe0fd2bb 100755
--- a/indra/llcorehttp/_httplibcurl.cpp
+++ b/indra/llcorehttp/_httplibcurl.cpp
@@ -217,8 +217,17 @@ void HttpLibcurl::addOp(HttpOpRequest * op)
}
// Make the request live
- curl_multi_add_handle(mMultiHandles[op->mReqPolicy], op->mCurlHandle);
+ CURLMcode code;
+ code = curl_multi_add_handle(mMultiHandles[op->mReqPolicy], op->mCurlHandle);
+ if (CURLM_OK != code)
+ {
+ // *TODO: Better cleanup and recovery but not much we can do here.
+ check_curl_multi_code(code);
+ return;
+ }
op->mCurlActive = true;
+ mActiveOps.insert(op);
+ ++mActiveHandles[op->mReqPolicy];
if (op->mTracing > HTTP_TRACE_OFF)
{
@@ -230,10 +239,6 @@ void HttpLibcurl::addOp(HttpOpRequest * op)
<< ", Readies: " << policy.getReadyCount(op->mReqPolicy)
<< LL_ENDL;
}
-
- // On success, make operation active
- mActiveOps.insert(op);
- ++mActiveHandles[op->mReqPolicy];
}