buffers_generator uses default_completion.
websocket::stream has a rebinding constructor.
ssl_stream has a rebind_executor member.
basic_stream has rebinding constructor.
- websocket supports cancellation.
- Iterating test for ws cancellation.
- Only terminal cancellation is forwarded by default.
- basic_stream supports cancellation.
- supported cancellation is documented.
- http cancellation additions.
- Added cancellation_slot tests to http, utils and saved_handler.
- Added post to write.cpp, to avoid SIGSEV in test.
- Refresher describes cancellation in more detail.
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>