MCPcopy Create free account
hub / github.com/audacity/audacity / HeaderCallback

Method HeaderCallback

libraries/lib-network-manager/curl/CurlResponse.cpp:407–444  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

405}
406
407size_t CurlResponse::HeaderCallback (const char* buffer, size_t size, size_t nitems, CurlResponse* request) noexcept
408{
409 {
410 std::lock_guard<std::recursive_mutex> lock (request->mStatusMutex);
411
412 if (request->mAbortRequested)
413 return 0;
414
415 // HeaderCallback is called by the handle
416 assert (request->mCurrentHandle != nullptr);
417
418 if (request->mCurrentHandle != nullptr)
419 request->mHttpCode = request->mCurrentHandle->getHTTPCode ();
420 }
421
422 size = size * nitems;
423
424 if (size < 2)
425 return 0;
426
427 const Header header = Header::Parse (std::string (buffer, size - 2));
428
429 std::lock_guard<std::mutex> lock (request->mHeadersMutex);
430
431 if (header.hasSameName ("Set-Cookie"))
432 {
433 request->mResponseCookies.addCookie (Cookie::Parse (header.Value));
434 }
435 else
436 {
437 if (header.hasSameName ("Keep-Alive"))
438 request->mCurrentHandle->markKeepAlive ();
439
440 request->mResponseHeaders.addHeader (header);
441 }
442
443 return size;
444}
445
446int CurlResponse::CurlProgressCallback(
447 CurlResponse* clientp, curl_off_t dltotal, curl_off_t dlnow,

Callers

nothing calls this directly

Calls 5

hasSameNameMethod · 0.80
addCookieMethod · 0.80
markKeepAliveMethod · 0.80
addHeaderMethod · 0.80
getHTTPCodeMethod · 0.45

Tested by

no test coverage detected