import sys
import subprocess
-HTTPLIB_VERSION = "refs/tags/v0.37.0"
+HTTPLIB_VERSION = "refs/tags/v0.37.1"
vendor = {
"https://github.com/nlohmann/json/releases/latest/download/json.hpp": "vendor/nlohmann/json.hpp",
assert(r.first <= r.second &&
r.second < static_cast<ssize_t>(content_length));
(void)(content_length);
- return std::make_pair(r.first, static_cast<size_t>(r.second - r.first) + 1);
+ return std::make_pair(static_cast<size_t>(r.first),
+ static_cast<size_t>(r.second - r.first) + 1);
}
std::string make_content_range_header_field(
handle.body_reader_.stream = handle.stream_;
handle.body_reader_.payload_max_length = payload_max_length_;
- auto content_length_str = handle.response->get_header_value("Content-Length");
- if (!content_length_str.empty()) {
+ if (handle.response->has_header("Content-Length")) {
+ bool is_invalid = false;
+ auto content_length = detail::get_header_value_u64(
+ handle.response->headers, "Content-Length", 0, 0, is_invalid);
+ if (is_invalid) {
+ handle.error = Error::Read;
+ handle.response.reset();
+ return handle;
+ }
handle.body_reader_.has_content_length = true;
- handle.body_reader_.content_length =
- static_cast<size_t>(std::stoull(content_length_str));
+ handle.body_reader_.content_length = content_length;
}
auto transfer_encoding =
#ifndef CPPHTTPLIB_HTTPLIB_H
#define CPPHTTPLIB_HTTPLIB_H
-#define CPPHTTPLIB_VERSION "0.37.0"
-#define CPPHTTPLIB_VERSION_NUM "0x002500"
-
-/*
- * Platform compatibility check
- */
-
-#if defined(_WIN32) && !defined(_WIN64)
-#if defined(_MSC_VER)
-#pragma message( \
- "cpp-httplib doesn't support 32-bit Windows. Please use a 64-bit compiler.")
-#else
-#warning \
- "cpp-httplib doesn't support 32-bit Windows. Please use a 64-bit compiler."
-#endif
-#elif defined(__SIZEOF_POINTER__) && __SIZEOF_POINTER__ < 8
-#warning \
- "cpp-httplib doesn't support 32-bit platforms. Please use a 64-bit compiler."
-#elif defined(__SIZEOF_SIZE_T__) && __SIZEOF_SIZE_T__ < 8
-#warning \
- "cpp-httplib doesn't support platforms where size_t is less than 64 bits."
-#endif
+#define CPPHTTPLIB_VERSION "0.37.1"
+#define CPPHTTPLIB_VERSION_NUM "0x002501"
#ifdef _WIN32
#if defined(_WIN32_WINNT) && _WIN32_WINNT < 0x0A00
std::advance(it, static_cast<ssize_t>(id));
if (it != rng.second) {
if (is_numeric(it->second)) {
- return std::strtoull(it->second.data(), nullptr, 10);
+ return static_cast<size_t>(std::strtoull(it->second.data(), nullptr, 10));
} else {
is_invalid_value = true;
}