http::basic_fields::set_t::size() is unused
core::multi_buffer::list_type::size() is only compared to 1 (in shrink_to_fit()); compare iterators instead.
close#2498
The maximum number of bytes to write using TransmitFile cannot be
greater than INT_MAX - 1, otherwise the function fails with WSAEINVAL.
https://docs.microsoft.com/en-us/windows/win32/api/mswsock/nf-mswsock-transmitfile
The issue can be reproduced using the http-server-sync example, by
sending a GET request for a file larger than INTMAX.
e.g:
$ curl -v http://127.0.0.1:8080/ubuntu.iso -o ubuntu.iso
* Trying 127.0.0.1:8080...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
> GET /ubuntu.iso HTTP/1.1
> Host: 127.0.0.1:8080
> User-Agent: curl/7.83.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: Boost.Beast/330
< Content-Type: application/text
< Content-Length: 3654957056
<
{ [0 bytes data]
* transfer closed with 3654957056 bytes remaining to read
0 3485M 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
* Closing connection 0
curl: (18) transfer closed with 3654957056 bytes remaining to read
Signed-off-by: Petre Pircalabu <ppircalabu@bitdefender.com>
fix#2417
This improves inter-conversion between string_view implementations. Some observable differences for users:
- core::string_view no longer supports the .to_string() or .clear() extensions from Utility
- code that relied on .max_size() returning .size(), needs to be fixed to .size() instead
- remove_suffix() and remove_prefix() were more lenient than the standard specs; be sure you don't rely on it clamping the argument to valid range
- BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS no longer suppresses conversions to std::string
- core::string_view adds .contains() and various bugs fixed
Allow unit tests to compile with rtti=off
This struct is only used to make sure that there are no duplication of
test suites. Move it to a concept that works with RTTI disabled.
Signed-off-by: Ed Tanous <ed@tanous.net>
close#2337
Currently, the test stream code doesn't compile when both debug builds
(namely assertions) are enabled along with disabling rtti. The current
code directly uses type_id(), which isn't available without rtti.
This commit allows stream.hpp to compile without rtti enabled.
Signed-off-by: Ed Tanous <ed@tanous.net>
close#2331