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