Mercurial > hg > orthanc
comparison OrthancFramework/Sources/HttpClient.cpp @ 4201:2d5209153b32
cppcheck
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 17 Sep 2020 08:18:28 +0200 |
parents | db38b2ad4c4a |
children | 785a2713323e |
comparison
equal
deleted
inserted
replaced
4200:7112a8af0b63 | 4201:2d5209153b32 |
---|---|
115 isChunkedTransfer_(false), | 115 isChunkedTransfer_(false), |
116 hasExpect_(false) | 116 hasExpect_(false) |
117 { | 117 { |
118 } | 118 } |
119 | 119 |
120 CurlHeaders(const HttpClient::HttpHeaders& headers) | 120 explicit CurlHeaders(const HttpClient::HttpHeaders& headers) |
121 { | 121 { |
122 for (HttpClient::HttpHeaders::const_iterator | 122 for (HttpClient::HttpHeaders::const_iterator |
123 it = headers.begin(); it != headers.end(); ++it) | 123 it = headers.begin(); it != headers.end(); ++it) |
124 { | 124 { |
125 AddHeader(it->first, it->second); | 125 AddHeader(it->first, it->second); |
316 static size_t HeaderCallback(void *buffer, size_t size, size_t nmemb, void *userdata) | 316 static size_t HeaderCallback(void *buffer, size_t size, size_t nmemb, void *userdata) |
317 { | 317 { |
318 try | 318 try |
319 { | 319 { |
320 assert(userdata != NULL); | 320 assert(userdata != NULL); |
321 CurlAnswer& that = *(static_cast<CurlAnswer*>(userdata)); | |
322 | 321 |
323 size_t length = size * nmemb; | 322 size_t length = size * nmemb; |
324 if (length == 0) | 323 if (length == 0) |
325 { | 324 { |
326 return 0; | 325 return 0; |
331 std::size_t colon = s.find(':'); | 330 std::size_t colon = s.find(':'); |
332 std::size_t eol = s.find("\r\n"); | 331 std::size_t eol = s.find("\r\n"); |
333 if (colon != std::string::npos && | 332 if (colon != std::string::npos && |
334 eol != std::string::npos) | 333 eol != std::string::npos) |
335 { | 334 { |
335 CurlAnswer& that = *(static_cast<CurlAnswer*>(userdata)); | |
336 std::string tmp(s.substr(0, colon)); | 336 std::string tmp(s.substr(0, colon)); |
337 | 337 |
338 if (that.headersLowerCase_) | 338 if (that.headersLowerCase_) |
339 { | 339 { |
340 Toolbox::ToLowerCase(tmp); | 340 Toolbox::ToLowerCase(tmp); |
343 std::string key = Toolbox::StripSpaces(tmp); | 343 std::string key = Toolbox::StripSpaces(tmp); |
344 | 344 |
345 if (!key.empty()) | 345 if (!key.empty()) |
346 { | 346 { |
347 std::string value = Toolbox::StripSpaces(s.substr(colon + 1, eol)); | 347 std::string value = Toolbox::StripSpaces(s.substr(colon + 1, eol)); |
348 | |
348 that.answer_.AddHeader(key, value); | 349 that.answer_.AddHeader(key, value); |
349 } | 350 } |
350 } | 351 } |
351 | 352 |
352 return length; | 353 return length; |
367 static size_t BodyCallback(void *buffer, size_t size, size_t nmemb, void *userdata) | 368 static size_t BodyCallback(void *buffer, size_t size, size_t nmemb, void *userdata) |
368 { | 369 { |
369 try | 370 try |
370 { | 371 { |
371 assert(userdata != NULL); | 372 assert(userdata != NULL); |
372 CurlAnswer& that = *(static_cast<CurlAnswer*>(userdata)); | |
373 | 373 |
374 size_t length = size * nmemb; | 374 size_t length = size * nmemb; |
375 if (length == 0) | 375 if (length == 0) |
376 { | 376 { |
377 return 0; | 377 return 0; |
378 } | 378 } |
379 else | 379 else |
380 { | 380 { |
381 CurlAnswer& that = *(static_cast<CurlAnswer*>(userdata)); | |
381 that.answer_.AddChunk(buffer, length); | 382 that.answer_.AddChunk(buffer, length); |
382 return length; | 383 return length; |
383 } | 384 } |
384 } | 385 } |
385 catch (OrthancException& e) | 386 catch (OrthancException& e) |
417 { | 418 { |
418 answer_.Flatten(target); | 419 answer_.Flatten(target); |
419 } | 420 } |
420 | 421 |
421 virtual void AddHeader(const std::string& key, | 422 virtual void AddHeader(const std::string& key, |
422 const std::string& value) | 423 const std::string& value) ORTHANC_OVERRIDE |
423 { | 424 { |
424 if (headers_ != NULL) | 425 if (headers_ != NULL) |
425 { | 426 { |
426 (*headers_) [key] = value; | 427 (*headers_) [key] = value; |
427 } | 428 } |
428 } | 429 } |
429 | 430 |
430 virtual void AddChunk(const void* data, | 431 virtual void AddChunk(const void* data, |
431 size_t size) | 432 size_t size) ORTHANC_OVERRIDE |
432 { | 433 { |
433 answer_.AddChunk(data, size); | 434 answer_.AddChunk(data, size); |
434 } | 435 } |
435 }; | 436 }; |
436 | 437 |