mirror of
https://github.com/boostorg/beast.git
synced 2025-07-30 12:57:31 +02:00
@ -6,6 +6,7 @@ Version 153:
|
|||||||
* Update README.md for branches
|
* Update README.md for branches
|
||||||
* Avoid string_view::clear
|
* Avoid string_view::clear
|
||||||
* Fix iterator version of basic_fields::erase
|
* Fix iterator version of basic_fields::erase
|
||||||
|
* Fix use-after-move in example request handlers
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -185,13 +185,16 @@ handle_request(
|
|||||||
if(ec)
|
if(ec)
|
||||||
return send(server_error(ec.message()));
|
return send(server_error(ec.message()));
|
||||||
|
|
||||||
|
// Cache the size since we need it after the move
|
||||||
|
auto const size = body.size();
|
||||||
|
|
||||||
// Respond to HEAD request
|
// Respond to HEAD request
|
||||||
if(req.method() == http::verb::head)
|
if(req.method() == http::verb::head)
|
||||||
{
|
{
|
||||||
http::response<http::empty_body> res{http::status::ok, req.version()};
|
http::response<http::empty_body> res{http::status::ok, req.version()};
|
||||||
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
||||||
res.set(http::field::content_type, mime_type(path));
|
res.set(http::field::content_type, mime_type(path));
|
||||||
res.content_length(body.size());
|
res.content_length(size);
|
||||||
res.keep_alive(req.keep_alive());
|
res.keep_alive(req.keep_alive());
|
||||||
return send(std::move(res));
|
return send(std::move(res));
|
||||||
}
|
}
|
||||||
@ -203,7 +206,7 @@ handle_request(
|
|||||||
std::make_tuple(http::status::ok, req.version())};
|
std::make_tuple(http::status::ok, req.version())};
|
||||||
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
||||||
res.set(http::field::content_type, mime_type(path));
|
res.set(http::field::content_type, mime_type(path));
|
||||||
res.content_length(body.size());
|
res.content_length(size);
|
||||||
res.keep_alive(req.keep_alive());
|
res.keep_alive(req.keep_alive());
|
||||||
return send(std::move(res));
|
return send(std::move(res));
|
||||||
}
|
}
|
||||||
|
@ -179,13 +179,16 @@ handle_request(
|
|||||||
if(ec)
|
if(ec)
|
||||||
return send(server_error(ec.message()));
|
return send(server_error(ec.message()));
|
||||||
|
|
||||||
|
// Cache the size since we need it after the move
|
||||||
|
auto const size = body.size();
|
||||||
|
|
||||||
// Respond to HEAD request
|
// Respond to HEAD request
|
||||||
if(req.method() == http::verb::head)
|
if(req.method() == http::verb::head)
|
||||||
{
|
{
|
||||||
http::response<http::empty_body> res{http::status::ok, req.version()};
|
http::response<http::empty_body> res{http::status::ok, req.version()};
|
||||||
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
||||||
res.set(http::field::content_type, mime_type(path));
|
res.set(http::field::content_type, mime_type(path));
|
||||||
res.content_length(body.size());
|
res.content_length(size);
|
||||||
res.keep_alive(req.keep_alive());
|
res.keep_alive(req.keep_alive());
|
||||||
return send(std::move(res));
|
return send(std::move(res));
|
||||||
}
|
}
|
||||||
@ -197,7 +200,7 @@ handle_request(
|
|||||||
std::make_tuple(http::status::ok, req.version())};
|
std::make_tuple(http::status::ok, req.version())};
|
||||||
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
||||||
res.set(http::field::content_type, mime_type(path));
|
res.set(http::field::content_type, mime_type(path));
|
||||||
res.content_length(body.size());
|
res.content_length(size);
|
||||||
res.keep_alive(req.keep_alive());
|
res.keep_alive(req.keep_alive());
|
||||||
return send(std::move(res));
|
return send(std::move(res));
|
||||||
}
|
}
|
||||||
|
@ -180,13 +180,16 @@ handle_request(
|
|||||||
if(ec)
|
if(ec)
|
||||||
return send(server_error(ec.message()));
|
return send(server_error(ec.message()));
|
||||||
|
|
||||||
|
// Cache the size since we need it after the move
|
||||||
|
auto const size = body.size();
|
||||||
|
|
||||||
// Respond to HEAD request
|
// Respond to HEAD request
|
||||||
if(req.method() == http::verb::head)
|
if(req.method() == http::verb::head)
|
||||||
{
|
{
|
||||||
http::response<http::empty_body> res{http::status::ok, req.version()};
|
http::response<http::empty_body> res{http::status::ok, req.version()};
|
||||||
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
||||||
res.set(http::field::content_type, mime_type(path));
|
res.set(http::field::content_type, mime_type(path));
|
||||||
res.content_length(body.size());
|
res.content_length(size);
|
||||||
res.keep_alive(req.keep_alive());
|
res.keep_alive(req.keep_alive());
|
||||||
return send(std::move(res));
|
return send(std::move(res));
|
||||||
}
|
}
|
||||||
@ -198,7 +201,7 @@ handle_request(
|
|||||||
std::make_tuple(http::status::ok, req.version())};
|
std::make_tuple(http::status::ok, req.version())};
|
||||||
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
||||||
res.set(http::field::content_type, mime_type(path));
|
res.set(http::field::content_type, mime_type(path));
|
||||||
res.content_length(body.size());
|
res.content_length(size);
|
||||||
res.keep_alive(req.keep_alive());
|
res.keep_alive(req.keep_alive());
|
||||||
return send(std::move(res));
|
return send(std::move(res));
|
||||||
}
|
}
|
||||||
|
@ -176,13 +176,16 @@ handle_request(
|
|||||||
if(ec)
|
if(ec)
|
||||||
return send(server_error(ec.message()));
|
return send(server_error(ec.message()));
|
||||||
|
|
||||||
|
// Cache the size since we need it after the move
|
||||||
|
auto const size = body.size();
|
||||||
|
|
||||||
// Respond to HEAD request
|
// Respond to HEAD request
|
||||||
if(req.method() == http::verb::head)
|
if(req.method() == http::verb::head)
|
||||||
{
|
{
|
||||||
http::response<http::empty_body> res{http::status::ok, req.version()};
|
http::response<http::empty_body> res{http::status::ok, req.version()};
|
||||||
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
||||||
res.set(http::field::content_type, mime_type(path));
|
res.set(http::field::content_type, mime_type(path));
|
||||||
res.content_length(body.size());
|
res.content_length(size);
|
||||||
res.keep_alive(req.keep_alive());
|
res.keep_alive(req.keep_alive());
|
||||||
return send(std::move(res));
|
return send(std::move(res));
|
||||||
}
|
}
|
||||||
@ -194,7 +197,7 @@ handle_request(
|
|||||||
std::make_tuple(http::status::ok, req.version())};
|
std::make_tuple(http::status::ok, req.version())};
|
||||||
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
||||||
res.set(http::field::content_type, mime_type(path));
|
res.set(http::field::content_type, mime_type(path));
|
||||||
res.content_length(body.size());
|
res.content_length(size);
|
||||||
res.keep_alive(req.keep_alive());
|
res.keep_alive(req.keep_alive());
|
||||||
return send(std::move(res));
|
return send(std::move(res));
|
||||||
}
|
}
|
||||||
|
@ -178,13 +178,16 @@ handle_request(
|
|||||||
if(ec)
|
if(ec)
|
||||||
return send(server_error(ec.message()));
|
return send(server_error(ec.message()));
|
||||||
|
|
||||||
|
// Cache the size since we need it after the move
|
||||||
|
auto const size = body.size();
|
||||||
|
|
||||||
// Respond to HEAD request
|
// Respond to HEAD request
|
||||||
if(req.method() == http::verb::head)
|
if(req.method() == http::verb::head)
|
||||||
{
|
{
|
||||||
http::response<http::empty_body> res{http::status::ok, req.version()};
|
http::response<http::empty_body> res{http::status::ok, req.version()};
|
||||||
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
||||||
res.set(http::field::content_type, mime_type(path));
|
res.set(http::field::content_type, mime_type(path));
|
||||||
res.content_length(body.size());
|
res.content_length(size);
|
||||||
res.keep_alive(req.keep_alive());
|
res.keep_alive(req.keep_alive());
|
||||||
return send(std::move(res));
|
return send(std::move(res));
|
||||||
}
|
}
|
||||||
@ -196,7 +199,7 @@ handle_request(
|
|||||||
std::make_tuple(http::status::ok, req.version())};
|
std::make_tuple(http::status::ok, req.version())};
|
||||||
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
||||||
res.set(http::field::content_type, mime_type(path));
|
res.set(http::field::content_type, mime_type(path));
|
||||||
res.content_length(body.size());
|
res.content_length(size);
|
||||||
res.keep_alive(req.keep_alive());
|
res.keep_alive(req.keep_alive());
|
||||||
return send(std::move(res));
|
return send(std::move(res));
|
||||||
}
|
}
|
||||||
|
@ -174,13 +174,16 @@ handle_request(
|
|||||||
if(ec)
|
if(ec)
|
||||||
return send(server_error(ec.message()));
|
return send(server_error(ec.message()));
|
||||||
|
|
||||||
|
// Cache the size since we need it after the move
|
||||||
|
auto const size = body.size();
|
||||||
|
|
||||||
// Respond to HEAD request
|
// Respond to HEAD request
|
||||||
if(req.method() == http::verb::head)
|
if(req.method() == http::verb::head)
|
||||||
{
|
{
|
||||||
http::response<http::empty_body> res{http::status::ok, req.version()};
|
http::response<http::empty_body> res{http::status::ok, req.version()};
|
||||||
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
||||||
res.set(http::field::content_type, mime_type(path));
|
res.set(http::field::content_type, mime_type(path));
|
||||||
res.content_length(body.size());
|
res.content_length(size);
|
||||||
res.keep_alive(req.keep_alive());
|
res.keep_alive(req.keep_alive());
|
||||||
return send(std::move(res));
|
return send(std::move(res));
|
||||||
}
|
}
|
||||||
@ -192,7 +195,7 @@ handle_request(
|
|||||||
std::make_tuple(http::status::ok, req.version())};
|
std::make_tuple(http::status::ok, req.version())};
|
||||||
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
||||||
res.set(http::field::content_type, mime_type(path));
|
res.set(http::field::content_type, mime_type(path));
|
||||||
res.content_length(body.size());
|
res.content_length(size);
|
||||||
res.keep_alive(req.keep_alive());
|
res.keep_alive(req.keep_alive());
|
||||||
return send(std::move(res));
|
return send(std::move(res));
|
||||||
}
|
}
|
||||||
|
@ -180,13 +180,16 @@ handle_request(
|
|||||||
if(ec)
|
if(ec)
|
||||||
return send(server_error(ec.message()));
|
return send(server_error(ec.message()));
|
||||||
|
|
||||||
|
// Cache the size since we need it after the move
|
||||||
|
auto const size = body.size();
|
||||||
|
|
||||||
// Respond to HEAD request
|
// Respond to HEAD request
|
||||||
if(req.method() == http::verb::head)
|
if(req.method() == http::verb::head)
|
||||||
{
|
{
|
||||||
http::response<http::empty_body> res{http::status::ok, req.version()};
|
http::response<http::empty_body> res{http::status::ok, req.version()};
|
||||||
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
||||||
res.set(http::field::content_type, mime_type(path));
|
res.set(http::field::content_type, mime_type(path));
|
||||||
res.content_length(body.size());
|
res.content_length(size);
|
||||||
res.keep_alive(req.keep_alive());
|
res.keep_alive(req.keep_alive());
|
||||||
return send(std::move(res));
|
return send(std::move(res));
|
||||||
}
|
}
|
||||||
@ -198,7 +201,7 @@ handle_request(
|
|||||||
std::make_tuple(http::status::ok, req.version())};
|
std::make_tuple(http::status::ok, req.version())};
|
||||||
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
||||||
res.set(http::field::content_type, mime_type(path));
|
res.set(http::field::content_type, mime_type(path));
|
||||||
res.content_length(body.size());
|
res.content_length(size);
|
||||||
res.keep_alive(req.keep_alive());
|
res.keep_alive(req.keep_alive());
|
||||||
return send(std::move(res));
|
return send(std::move(res));
|
||||||
}
|
}
|
||||||
|
@ -181,13 +181,16 @@ handle_request(
|
|||||||
if(ec)
|
if(ec)
|
||||||
return send(server_error(ec.message()));
|
return send(server_error(ec.message()));
|
||||||
|
|
||||||
|
// Cache the size since we need it after the move
|
||||||
|
auto const size = body.size();
|
||||||
|
|
||||||
// Respond to HEAD request
|
// Respond to HEAD request
|
||||||
if(req.method() == http::verb::head)
|
if(req.method() == http::verb::head)
|
||||||
{
|
{
|
||||||
http::response<http::empty_body> res{http::status::ok, req.version()};
|
http::response<http::empty_body> res{http::status::ok, req.version()};
|
||||||
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
||||||
res.set(http::field::content_type, mime_type(path));
|
res.set(http::field::content_type, mime_type(path));
|
||||||
res.content_length(body.size());
|
res.content_length(size);
|
||||||
res.keep_alive(req.keep_alive());
|
res.keep_alive(req.keep_alive());
|
||||||
return send(std::move(res));
|
return send(std::move(res));
|
||||||
}
|
}
|
||||||
@ -199,7 +202,7 @@ handle_request(
|
|||||||
std::make_tuple(http::status::ok, req.version())};
|
std::make_tuple(http::status::ok, req.version())};
|
||||||
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
||||||
res.set(http::field::content_type, mime_type(path));
|
res.set(http::field::content_type, mime_type(path));
|
||||||
res.content_length(body.size());
|
res.content_length(size);
|
||||||
res.keep_alive(req.keep_alive());
|
res.keep_alive(req.keep_alive());
|
||||||
return send(std::move(res));
|
return send(std::move(res));
|
||||||
}
|
}
|
||||||
|
@ -177,13 +177,16 @@ handle_request(
|
|||||||
if(ec)
|
if(ec)
|
||||||
return send(server_error(ec.message()));
|
return send(server_error(ec.message()));
|
||||||
|
|
||||||
|
// Cache the size since we need it after the move
|
||||||
|
auto const size = body.size();
|
||||||
|
|
||||||
// Respond to HEAD request
|
// Respond to HEAD request
|
||||||
if(req.method() == http::verb::head)
|
if(req.method() == http::verb::head)
|
||||||
{
|
{
|
||||||
http::response<http::empty_body> res{http::status::ok, req.version()};
|
http::response<http::empty_body> res{http::status::ok, req.version()};
|
||||||
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
||||||
res.set(http::field::content_type, mime_type(path));
|
res.set(http::field::content_type, mime_type(path));
|
||||||
res.content_length(body.size());
|
res.content_length(size);
|
||||||
res.keep_alive(req.keep_alive());
|
res.keep_alive(req.keep_alive());
|
||||||
return send(std::move(res));
|
return send(std::move(res));
|
||||||
}
|
}
|
||||||
@ -195,7 +198,7 @@ handle_request(
|
|||||||
std::make_tuple(http::status::ok, req.version())};
|
std::make_tuple(http::status::ok, req.version())};
|
||||||
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
||||||
res.set(http::field::content_type, mime_type(path));
|
res.set(http::field::content_type, mime_type(path));
|
||||||
res.content_length(body.size());
|
res.content_length(size);
|
||||||
res.keep_alive(req.keep_alive());
|
res.keep_alive(req.keep_alive());
|
||||||
return send(std::move(res));
|
return send(std::move(res));
|
||||||
}
|
}
|
||||||
|
@ -175,13 +175,16 @@ handle_request(
|
|||||||
if(ec)
|
if(ec)
|
||||||
return send(server_error(ec.message()));
|
return send(server_error(ec.message()));
|
||||||
|
|
||||||
|
// Cache the size since we need it after the move
|
||||||
|
auto const size = body.size();
|
||||||
|
|
||||||
// Respond to HEAD request
|
// Respond to HEAD request
|
||||||
if(req.method() == http::verb::head)
|
if(req.method() == http::verb::head)
|
||||||
{
|
{
|
||||||
http::response<http::empty_body> res{http::status::ok, req.version()};
|
http::response<http::empty_body> res{http::status::ok, req.version()};
|
||||||
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
||||||
res.set(http::field::content_type, mime_type(path));
|
res.set(http::field::content_type, mime_type(path));
|
||||||
res.content_length(body.size());
|
res.content_length(size);
|
||||||
res.keep_alive(req.keep_alive());
|
res.keep_alive(req.keep_alive());
|
||||||
return send(std::move(res));
|
return send(std::move(res));
|
||||||
}
|
}
|
||||||
@ -193,7 +196,7 @@ handle_request(
|
|||||||
std::make_tuple(http::status::ok, req.version())};
|
std::make_tuple(http::status::ok, req.version())};
|
||||||
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
||||||
res.set(http::field::content_type, mime_type(path));
|
res.set(http::field::content_type, mime_type(path));
|
||||||
res.content_length(body.size());
|
res.content_length(size);
|
||||||
res.keep_alive(req.keep_alive());
|
res.keep_alive(req.keep_alive());
|
||||||
return send(std::move(res));
|
return send(std::move(res));
|
||||||
}
|
}
|
||||||
|
@ -173,13 +173,16 @@ handle_request(
|
|||||||
if(ec)
|
if(ec)
|
||||||
return send(server_error(ec.message()));
|
return send(server_error(ec.message()));
|
||||||
|
|
||||||
|
// Cache the size since we need it after the move
|
||||||
|
auto const size = body.size();
|
||||||
|
|
||||||
// Respond to HEAD request
|
// Respond to HEAD request
|
||||||
if(req.method() == http::verb::head)
|
if(req.method() == http::verb::head)
|
||||||
{
|
{
|
||||||
http::response<http::empty_body> res{http::status::ok, req.version()};
|
http::response<http::empty_body> res{http::status::ok, req.version()};
|
||||||
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
||||||
res.set(http::field::content_type, mime_type(path));
|
res.set(http::field::content_type, mime_type(path));
|
||||||
res.content_length(body.size());
|
res.content_length(size);
|
||||||
res.keep_alive(req.keep_alive());
|
res.keep_alive(req.keep_alive());
|
||||||
return send(std::move(res));
|
return send(std::move(res));
|
||||||
}
|
}
|
||||||
@ -191,7 +194,7 @@ handle_request(
|
|||||||
std::make_tuple(http::status::ok, req.version())};
|
std::make_tuple(http::status::ok, req.version())};
|
||||||
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
res.set(http::field::server, BOOST_BEAST_VERSION_STRING);
|
||||||
res.set(http::field::content_type, mime_type(path));
|
res.set(http::field::content_type, mime_type(path));
|
||||||
res.content_length(body.size());
|
res.content_length(size);
|
||||||
res.keep_alive(req.keep_alive());
|
res.keep_alive(req.keep_alive());
|
||||||
return send(std::move(res));
|
return send(std::move(res));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user