| 405 | } |
| 406 | |
| 407 | size_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 | |
| 446 | int CurlResponse::CurlProgressCallback( |
| 447 | CurlResponse* clientp, curl_off_t dltotal, curl_off_t dlnow, |
nothing calls this directly
no test coverage detected