diff --git a/CHANGELOG.md b/CHANGELOG.md index 32d5bfa8..ec8c9c49 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,12 +3,16 @@ Version 116: API Changes: * message::body is a member function +* message::version is a member function Actions Required: * Call member function message::body instead of accessing the data member at call sites. +* Call member function message::version instead of accessing + the version member at call sites. + -------------------------------------------------------------------------------- Version 115: diff --git a/doc/images/message.png b/doc/images/message.png index b1675df8..393ef30d 100644 Binary files a/doc/images/message.png and b/doc/images/message.png differ diff --git a/example/advanced/server-flex/advanced_server_flex.cpp b/example/advanced/server-flex/advanced_server_flex.cpp index 86b4e0d6..372b1fb2 100644 --- a/example/advanced/server-flex/advanced_server_flex.cpp +++ b/example/advanced/server-flex/advanced_server_flex.cpp @@ -120,7 +120,7 @@ handle_request( auto const bad_request = [&req](boost::beast::string_view why) { - http::response res{http::status::bad_request, req.version}; + http::response res{http::status::bad_request, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -133,7 +133,7 @@ handle_request( auto const not_found = [&req](boost::beast::string_view target) { - http::response res{http::status::not_found, req.version}; + http::response res{http::status::not_found, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -146,7 +146,7 @@ handle_request( auto const server_error = [&req](boost::beast::string_view what) { - http::response res{http::status::internal_server_error, req.version}; + http::response res{http::status::internal_server_error, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -187,7 +187,7 @@ handle_request( // Respond to HEAD request if(req.method() == http::verb::head) { - http::response res{http::status::ok, req.version}; + http::response res{http::status::ok, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, mime_type(path)); res.content_length(body.size()); @@ -199,7 +199,7 @@ handle_request( http::response res{ std::piecewise_construct, std::make_tuple(std::move(body)), - 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::content_type, mime_type(path)); res.content_length(body.size()); diff --git a/example/advanced/server/advanced_server.cpp b/example/advanced/server/advanced_server.cpp index 186d1de2..caf17410 100644 --- a/example/advanced/server/advanced_server.cpp +++ b/example/advanced/server/advanced_server.cpp @@ -114,7 +114,7 @@ handle_request( auto const bad_request = [&req](boost::beast::string_view why) { - http::response res{http::status::bad_request, req.version}; + http::response res{http::status::bad_request, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -127,7 +127,7 @@ handle_request( auto const not_found = [&req](boost::beast::string_view target) { - http::response res{http::status::not_found, req.version}; + http::response res{http::status::not_found, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -140,7 +140,7 @@ handle_request( auto const server_error = [&req](boost::beast::string_view what) { - http::response res{http::status::internal_server_error, req.version}; + http::response res{http::status::internal_server_error, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -181,7 +181,7 @@ handle_request( // Respond to HEAD request if(req.method() == http::verb::head) { - http::response res{http::status::ok, req.version}; + http::response res{http::status::ok, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, mime_type(path)); res.content_length(body.size()); @@ -193,7 +193,7 @@ handle_request( http::response res{ std::piecewise_construct, std::make_tuple(std::move(body)), - 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::content_type, mime_type(path)); res.content_length(body.size()); diff --git a/example/doc/http_examples.hpp b/example/doc/http_examples.hpp index 3c33f373..e1437830 100644 --- a/example/doc/http_examples.hpp +++ b/example/doc/http_examples.hpp @@ -139,7 +139,7 @@ receive_expect_100_continue( { // send 100 response response res; - res.version = 11; + res.version(11); res.result(status::continue_); res.set(field::server, "test"); write(stream, res, ec); @@ -202,7 +202,7 @@ send_cgi_response( response res; res.result(status::ok); - res.version = 11; + res.version(11); res.set(field::server, "Beast"); res.set(field::transfer_encoding, "chunked"); @@ -307,7 +307,7 @@ void do_server_head( // Set up the response, starting with the common fields response res; - res.version = 11; + res.version(11); res.set(field::server, "test"); // Now handle request-specific fields @@ -396,7 +396,7 @@ do_head_request( // Build the HEAD request for the target request req; - req.version = 11; + req.version(11); req.method(verb::head); req.target(target); req.set(field::user_agent, "test"); diff --git a/example/http/client/async-ssl/http_client_async_ssl.cpp b/example/http/client/async-ssl/http_client_async_ssl.cpp index 11026ab6..9b0cad1d 100644 --- a/example/http/client/async-ssl/http_client_async_ssl.cpp +++ b/example/http/client/async-ssl/http_client_async_ssl.cpp @@ -66,7 +66,7 @@ public: char const* target) { // Set up an HTTP GET request message - req_.version = 11; + req_.version(11); req_.method(http::verb::get); req_.target(target); req_.set(http::field::host, host); diff --git a/example/http/client/async/http_client_async.cpp b/example/http/client/async/http_client_async.cpp index 6fab9c81..6c3f9af5 100644 --- a/example/http/client/async/http_client_async.cpp +++ b/example/http/client/async/http_client_async.cpp @@ -62,7 +62,7 @@ public: char const* target) { // Set up an HTTP GET request message - req_.version = 11; + req_.version(11); req_.method(http::verb::get); req_.target(target); req_.set(http::field::host, host); diff --git a/example/http/client/crawl/http_crawl.cpp b/example/http/client/crawl/http_crawl.cpp index 6e492c7a..ed6708ce 100644 --- a/example/http/client/crawl/http_crawl.cpp +++ b/example/http/client/crawl/http_crawl.cpp @@ -168,7 +168,7 @@ public: , strand_(ios) { // Set up the common fields of the request - req_.version = 11; + req_.version(11); req_.method(http::verb::get); req_.target("/"); req_.set(http::field::user_agent, BOOST_BEAST_VERSION_STRING); diff --git a/example/http/server/async-ssl/http_server_async_ssl.cpp b/example/http/server/async-ssl/http_server_async_ssl.cpp index d0c4168d..c9d23a36 100644 --- a/example/http/server/async-ssl/http_server_async_ssl.cpp +++ b/example/http/server/async-ssl/http_server_async_ssl.cpp @@ -115,7 +115,7 @@ handle_request( auto const bad_request = [&req](boost::beast::string_view why) { - http::response res{http::status::bad_request, req.version}; + http::response res{http::status::bad_request, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -128,7 +128,7 @@ handle_request( auto const not_found = [&req](boost::beast::string_view target) { - http::response res{http::status::not_found, req.version}; + http::response res{http::status::not_found, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -141,7 +141,7 @@ handle_request( auto const server_error = [&req](boost::beast::string_view what) { - http::response res{http::status::internal_server_error, req.version}; + http::response res{http::status::internal_server_error, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -182,7 +182,7 @@ handle_request( // Respond to HEAD request if(req.method() == http::verb::head) { - http::response res{http::status::ok, req.version}; + http::response res{http::status::ok, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, mime_type(path)); res.content_length(body.size()); @@ -194,7 +194,7 @@ handle_request( http::response res{ std::piecewise_construct, std::make_tuple(std::move(body)), - 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::content_type, mime_type(path)); res.content_length(body.size()); diff --git a/example/http/server/async/http_server_async.cpp b/example/http/server/async/http_server_async.cpp index 297be65a..3f9d0c33 100644 --- a/example/http/server/async/http_server_async.cpp +++ b/example/http/server/async/http_server_async.cpp @@ -111,7 +111,7 @@ handle_request( auto const bad_request = [&req](boost::beast::string_view why) { - http::response res{http::status::bad_request, req.version}; + http::response res{http::status::bad_request, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -124,7 +124,7 @@ handle_request( auto const not_found = [&req](boost::beast::string_view target) { - http::response res{http::status::not_found, req.version}; + http::response res{http::status::not_found, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -137,7 +137,7 @@ handle_request( auto const server_error = [&req](boost::beast::string_view what) { - http::response res{http::status::internal_server_error, req.version}; + http::response res{http::status::internal_server_error, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -178,7 +178,7 @@ handle_request( // Respond to HEAD request if(req.method() == http::verb::head) { - http::response res{http::status::ok, req.version}; + http::response res{http::status::ok, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, mime_type(path)); res.content_length(body.size()); @@ -190,7 +190,7 @@ handle_request( http::response res{ std::piecewise_construct, std::make_tuple(std::move(body)), - 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::content_type, mime_type(path)); res.content_length(body.size()); diff --git a/example/http/server/coro-ssl/http_server_coro_ssl.cpp b/example/http/server/coro-ssl/http_server_coro_ssl.cpp index df7ab677..fd03be7b 100644 --- a/example/http/server/coro-ssl/http_server_coro_ssl.cpp +++ b/example/http/server/coro-ssl/http_server_coro_ssl.cpp @@ -114,7 +114,7 @@ handle_request( auto const bad_request = [&req](boost::beast::string_view why) { - http::response res{http::status::bad_request, req.version}; + http::response res{http::status::bad_request, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -127,7 +127,7 @@ handle_request( auto const not_found = [&req](boost::beast::string_view target) { - http::response res{http::status::not_found, req.version}; + http::response res{http::status::not_found, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -140,7 +140,7 @@ handle_request( auto const server_error = [&req](boost::beast::string_view what) { - http::response res{http::status::internal_server_error, req.version}; + http::response res{http::status::internal_server_error, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -181,7 +181,7 @@ handle_request( // Respond to HEAD request if(req.method() == http::verb::head) { - http::response res{http::status::ok, req.version}; + http::response res{http::status::ok, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, mime_type(path)); res.content_length(body.size()); @@ -193,7 +193,7 @@ handle_request( http::response res{ std::piecewise_construct, std::make_tuple(std::move(body)), - 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::content_type, mime_type(path)); res.content_length(body.size()); diff --git a/example/http/server/coro/http_server_coro.cpp b/example/http/server/coro/http_server_coro.cpp index 2e42cf86..cf4d4225 100644 --- a/example/http/server/coro/http_server_coro.cpp +++ b/example/http/server/coro/http_server_coro.cpp @@ -110,7 +110,7 @@ handle_request( auto const bad_request = [&req](boost::beast::string_view why) { - http::response res{http::status::bad_request, req.version}; + http::response res{http::status::bad_request, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -123,7 +123,7 @@ handle_request( auto const not_found = [&req](boost::beast::string_view target) { - http::response res{http::status::not_found, req.version}; + http::response res{http::status::not_found, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -136,7 +136,7 @@ handle_request( auto const server_error = [&req](boost::beast::string_view what) { - http::response res{http::status::internal_server_error, req.version}; + http::response res{http::status::internal_server_error, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -177,7 +177,7 @@ handle_request( // Respond to HEAD request if(req.method() == http::verb::head) { - http::response res{http::status::ok, req.version}; + http::response res{http::status::ok, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, mime_type(path)); res.content_length(body.size()); @@ -189,7 +189,7 @@ handle_request( http::response res{ std::piecewise_construct, std::make_tuple(std::move(body)), - 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::content_type, mime_type(path)); res.content_length(body.size()); diff --git a/example/http/server/flex/http_server_flex.cpp b/example/http/server/flex/http_server_flex.cpp index 2bb538de..0eb1c14c 100644 --- a/example/http/server/flex/http_server_flex.cpp +++ b/example/http/server/flex/http_server_flex.cpp @@ -115,7 +115,7 @@ handle_request( auto const bad_request = [&req](boost::beast::string_view why) { - http::response res{http::status::bad_request, req.version}; + http::response res{http::status::bad_request, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -128,7 +128,7 @@ handle_request( auto const not_found = [&req](boost::beast::string_view target) { - http::response res{http::status::not_found, req.version}; + http::response res{http::status::not_found, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -141,7 +141,7 @@ handle_request( auto const server_error = [&req](boost::beast::string_view what) { - http::response res{http::status::internal_server_error, req.version}; + http::response res{http::status::internal_server_error, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -182,7 +182,7 @@ handle_request( // Respond to HEAD request if(req.method() == http::verb::head) { - http::response res{http::status::ok, req.version}; + http::response res{http::status::ok, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, mime_type(path)); res.content_length(body.size()); @@ -194,7 +194,7 @@ handle_request( http::response res{ std::piecewise_construct, std::make_tuple(std::move(body)), - 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::content_type, mime_type(path)); res.content_length(body.size()); diff --git a/example/http/server/small/http_server_small.cpp b/example/http/server/small/http_server_small.cpp index 1f26484e..e0708cb6 100644 --- a/example/http/server/small/http_server_small.cpp +++ b/example/http/server/small/http_server_small.cpp @@ -100,7 +100,7 @@ private: void process_request() { - response_.version = 11; + response_.version(11); response_.set(http::field::connection, "close"); switch(request_.method()) diff --git a/example/http/server/stackless-ssl/http_server_stackless_ssl.cpp b/example/http/server/stackless-ssl/http_server_stackless_ssl.cpp index 9d0352af..9f34b57e 100644 --- a/example/http/server/stackless-ssl/http_server_stackless_ssl.cpp +++ b/example/http/server/stackless-ssl/http_server_stackless_ssl.cpp @@ -116,7 +116,7 @@ handle_request( auto const bad_request = [&req](boost::beast::string_view why) { - http::response res{http::status::bad_request, req.version}; + http::response res{http::status::bad_request, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -129,7 +129,7 @@ handle_request( auto const not_found = [&req](boost::beast::string_view target) { - http::response res{http::status::not_found, req.version}; + http::response res{http::status::not_found, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -142,7 +142,7 @@ handle_request( auto const server_error = [&req](boost::beast::string_view what) { - http::response res{http::status::internal_server_error, req.version}; + http::response res{http::status::internal_server_error, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -183,7 +183,7 @@ handle_request( // Respond to HEAD request if(req.method() == http::verb::head) { - http::response res{http::status::ok, req.version}; + http::response res{http::status::ok, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, mime_type(path)); res.content_length(body.size()); @@ -195,7 +195,7 @@ handle_request( http::response res{ std::piecewise_construct, std::make_tuple(std::move(body)), - 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::content_type, mime_type(path)); res.content_length(body.size()); diff --git a/example/http/server/stackless/http_server_stackless.cpp b/example/http/server/stackless/http_server_stackless.cpp index 50af6c35..2535632e 100644 --- a/example/http/server/stackless/http_server_stackless.cpp +++ b/example/http/server/stackless/http_server_stackless.cpp @@ -112,7 +112,7 @@ handle_request( auto const bad_request = [&req](boost::beast::string_view why) { - http::response res{http::status::bad_request, req.version}; + http::response res{http::status::bad_request, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -125,7 +125,7 @@ handle_request( auto const not_found = [&req](boost::beast::string_view target) { - http::response res{http::status::not_found, req.version}; + http::response res{http::status::not_found, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -138,7 +138,7 @@ handle_request( auto const server_error = [&req](boost::beast::string_view what) { - http::response res{http::status::internal_server_error, req.version}; + http::response res{http::status::internal_server_error, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -179,7 +179,7 @@ handle_request( // Respond to HEAD request if(req.method() == http::verb::head) { - http::response res{http::status::ok, req.version}; + http::response res{http::status::ok, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, mime_type(path)); res.content_length(body.size()); @@ -191,7 +191,7 @@ handle_request( http::response res{ std::piecewise_construct, std::make_tuple(std::move(body)), - 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::content_type, mime_type(path)); res.content_length(body.size()); diff --git a/example/http/server/sync-ssl/http_server_sync_ssl.cpp b/example/http/server/sync-ssl/http_server_sync_ssl.cpp index 87901c92..8aa36052 100644 --- a/example/http/server/sync-ssl/http_server_sync_ssl.cpp +++ b/example/http/server/sync-ssl/http_server_sync_ssl.cpp @@ -111,7 +111,7 @@ handle_request( auto const bad_request = [&req](boost::beast::string_view why) { - http::response res{http::status::bad_request, req.version}; + http::response res{http::status::bad_request, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -124,7 +124,7 @@ handle_request( auto const not_found = [&req](boost::beast::string_view target) { - http::response res{http::status::not_found, req.version}; + http::response res{http::status::not_found, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -137,7 +137,7 @@ handle_request( auto const server_error = [&req](boost::beast::string_view what) { - http::response res{http::status::internal_server_error, req.version}; + http::response res{http::status::internal_server_error, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -178,7 +178,7 @@ handle_request( // Respond to HEAD request if(req.method() == http::verb::head) { - http::response res{http::status::ok, req.version}; + http::response res{http::status::ok, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, mime_type(path)); res.content_length(body.size()); @@ -190,7 +190,7 @@ handle_request( http::response res{ std::piecewise_construct, std::make_tuple(std::move(body)), - 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::content_type, mime_type(path)); res.content_length(body.size()); diff --git a/example/http/server/sync/http_server_sync.cpp b/example/http/server/sync/http_server_sync.cpp index 1aaf3162..a8e18eb5 100644 --- a/example/http/server/sync/http_server_sync.cpp +++ b/example/http/server/sync/http_server_sync.cpp @@ -109,7 +109,7 @@ handle_request( auto const bad_request = [&req](boost::beast::string_view why) { - http::response res{http::status::bad_request, req.version}; + http::response res{http::status::bad_request, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -122,7 +122,7 @@ handle_request( auto const not_found = [&req](boost::beast::string_view target) { - http::response res{http::status::not_found, req.version}; + http::response res{http::status::not_found, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -135,7 +135,7 @@ handle_request( auto const server_error = [&req](boost::beast::string_view what) { - http::response res{http::status::internal_server_error, req.version}; + http::response res{http::status::internal_server_error, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, "text/html"); res.keep_alive(req.keep_alive()); @@ -176,7 +176,7 @@ handle_request( // Respond to HEAD request if(req.method() == http::verb::head) { - http::response res{http::status::ok, req.version}; + http::response res{http::status::ok, req.version()}; res.set(http::field::server, BOOST_BEAST_VERSION_STRING); res.set(http::field::content_type, mime_type(path)); res.content_length(body.size()); @@ -188,7 +188,7 @@ handle_request( http::response res{ std::piecewise_construct, std::make_tuple(std::move(body)), - 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::content_type, mime_type(path)); res.content_length(body.size()); diff --git a/include/boost/beast/http/impl/message.ipp b/include/boost/beast/http/impl/message.ipp index fc19ec27..a984bf73 100644 --- a/include/boost/beast/http/impl/message.ipp +++ b/include/boost/beast/http/impl/message.ipp @@ -100,7 +100,7 @@ swap( swap( static_cast(h1), static_cast(h2)); - swap(h1.version, h2.version); + swap(h1.version_, h2.version_); swap(h1.method_, h2.method_); } @@ -115,18 +115,6 @@ header(Arg1&& arg1, ArgN&&... argn) { } -#if 0 -template -template -header:: -header(status result, unsigned version_, Args&&... args) - : Fields(std::forward(args)...) - , version(version_) - , result_(result) -{ -} -#endif - template inline status @@ -198,7 +186,7 @@ swap( swap( static_cast(h1), static_cast(h2)); - swap(h1.version, h2.version); + swap(h1.version_, h2.version_); swap(h1.result_, h2.result_); } @@ -378,7 +366,7 @@ prepare_payload(std::true_type) this->chunked(false); } } - else if(this->version >= 11) + else if(this->version() >= 11) { this->chunked(true); } diff --git a/include/boost/beast/http/impl/serializer.ipp b/include/boost/beast/http/impl/serializer.ipp index bfe86f73..befd62ca 100644 --- a/include/boost/beast/http/impl/serializer.ipp +++ b/include/boost/beast/http/impl/serializer.ipp @@ -27,7 +27,7 @@ void serializer:: frdinit(std::true_type) { - frd_.emplace(m_, m_.version, m_.method()); + frd_.emplace(m_, m_.version(), m_.method()); } template< @@ -36,7 +36,7 @@ void serializer:: frdinit(std::false_type) { - frd_.emplace(m_, m_.version, m_.result_int()); + frd_.emplace(m_, m_.version(), m_.result_int()); } template< diff --git a/include/boost/beast/http/message.hpp b/include/boost/beast/http/message.hpp index a2868318..2d6e53ec 100644 --- a/include/boost/beast/http/message.hpp +++ b/include/boost/beast/http/message.hpp @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -69,7 +70,22 @@ struct header : Fields /// The type representing the fields. using fields_type = Fields; - /** The HTTP-version. + /// COnstructor + header() = default; + + /// Constructor + header(header&&) = default; + + /// Constructor + header(header const&) = default; + + /// Assignment + header& operator=(header&&) = default; + + /// Assignment + header& operator=(header const&) = default; + + /** Return the HTTP-version. This holds both the major and minor version numbers, using these formulas: @@ -80,22 +96,29 @@ struct header : Fields Newly constructed headers will use HTTP/1.1 by default. */ - unsigned version = 11; + unsigned version() const noexcept + { + return version_; + } - /// Default constructor - header() = default; + /** Set the HTTP-version. - /// Move constructor - header(header&&) = default; + This holds both the major and minor version numbers, + using these formulas: + @code + unsigned major = version / 10; + unsigned minor = version % 10; + @endcode - /// Copy constructor - header(header const&) = default; + Newly constructed headers will use HTTP/1.1 by default. - /// Move assignment - header& operator=(header&&) = default; - - /// Copy assignment - header& operator=(header const&) = default; + @param value The version number to use + */ + void version(unsigned value) noexcept + { + BOOST_ASSERT(value > 0 && value < 100); + version_ = value; + } /** Return the request-method verb. @@ -206,15 +229,16 @@ private: header( verb method, string_view target_, - unsigned version_, + unsigned version_value, FieldsArgs&&... fields_args) : Fields(std::forward(fields_args)...) - , version(version_) , method_(method) { + version(version_value); target(target_); } + unsigned version_ = 11; verb method_ = verb::unknown; }; @@ -234,33 +258,19 @@ struct header : Fields /// The type representing the fields. using fields_type = Fields; - /** The HTTP version. - - This holds both the major and minor version numbers, - using these formulas: - @code - unsigned major = version / 10; - unsigned minor = version % 10; - @endcode - - Newly constructed headers will use HTTP/1.1 by default - unless otherwise specified. - */ - unsigned version = 11; - - /// Default constructor. + /// Constructor. header() = default; - /// Move constructor + /// Constructor header(header&&) = default; - /// Copy constructor + /// Constructor header(header const&) = default; - /// Move assignment + /// Assignment header& operator=(header&&) = default; - /// Copy assignment + /// Assignment header& operator=(header const&) = default; /** Constructor @@ -282,6 +292,41 @@ struct header : Fields >::type> explicit header(Arg1&& arg1, ArgN&&... argn); + + /** Return the HTTP-version. + + This holds both the major and minor version numbers, + using these formulas: + @code + unsigned major = version / 10; + unsigned minor = version % 10; + @endcode + + Newly constructed headers will use HTTP/1.1 by default. + */ + unsigned version() const noexcept + { + return version_; + } + + /** Set the HTTP-version. + + This holds both the major and minor version numbers, + using these formulas: + @code + unsigned major = version / 10; + unsigned minor = version % 10; + @endcode + + Newly constructed headers will use HTTP/1.1 by default. + + @param value The version number to use + */ + void version(unsigned value) noexcept + { + BOOST_ASSERT(value > 0 && value < 100); + version_ = value; + } #endif /** The response status-code result. @@ -372,14 +417,15 @@ private: template header( status result, - unsigned version_, + unsigned version_value, FieldsArgs&&... fields_args) : Fields(std::forward(fields_args)...) - , version(version_) , result_(result) { + version(version_value); } + unsigned version_ = 11; status result_ = status::ok; #endif }; @@ -703,7 +749,7 @@ struct message bool keep_alive() const { - return this->get_keep_alive_impl(this->version); + return this->get_keep_alive_impl(this->version()); } /** Set the keep-alive message semantic option @@ -719,7 +765,7 @@ struct message void keep_alive(bool value) { - this->set_keep_alive_impl(this->version, value); + this->set_keep_alive_impl(this->version(), value); } /** Returns the payload size of the body in octets if possible. diff --git a/include/boost/beast/http/parser.hpp b/include/boost/beast/http/parser.hpp index f03d1fe8..c6ff1b9a 100644 --- a/include/boost/beast/http/parser.hpp +++ b/include/boost/beast/http/parser.hpp @@ -324,7 +324,7 @@ private: { ec = error::bad_alloc; } - m_.version = version; + m_.version(version); } void @@ -335,7 +335,7 @@ private: error_code& ec) { m_.result(code); - m_.version = version; + m_.version(version); try { m_.reason(reason); diff --git a/include/boost/beast/websocket/impl/rfc6455.ipp b/include/boost/beast/websocket/impl/rfc6455.ipp index 59677248..d688b63d 100644 --- a/include/boost/beast/websocket/impl/rfc6455.ipp +++ b/include/boost/beast/websocket/impl/rfc6455.ipp @@ -22,7 +22,7 @@ bool is_upgrade(http::header> const& req) { - if(req.version < 11) + if(req.version() < 11) return false; if(req.method() != http::verb::get) return false; diff --git a/include/boost/beast/websocket/impl/stream.ipp b/include/boost/beast/websocket/impl/stream.ipp index d02d7710..87260572 100644 --- a/include/boost/beast/websocket/impl/stream.ipp +++ b/include/boost/beast/websocket/impl/stream.ipp @@ -523,7 +523,7 @@ build_request(detail::sec_ws_key_type& key, { request_type req; req.target(target); - req.version = 11; + req.version(11); req.method(http::verb::get); req.set(http::field::host, host); req.set(http::field::upgrade, "websocket"); @@ -575,14 +575,14 @@ build_response(http::request diff --git a/test/beast/http/fields.cpp b/test/beast/http/fields.cpp index c54871c2..6abdcd8b 100644 --- a/test/beast/http/fields.cpp +++ b/test/beast/http/fields.cpp @@ -445,7 +445,7 @@ public: // GET, empty { request req; - req.version = 11; + req.version(11); req.method(verb::get); req.prepare_payload(); @@ -473,7 +473,7 @@ public: // GET, sized { request req; - req.version = 11; + req.version(11); req.method(verb::get); req.body() = 50; @@ -496,7 +496,7 @@ public: // PUT, empty { request req; - req.version = 11; + req.version(11); req.method(verb::put); req.prepare_payload(); @@ -513,7 +513,7 @@ public: // PUT, sized { request req; - req.version = 11; + req.version(11); req.method(verb::put); req.body() = 50; @@ -531,7 +531,7 @@ public: // POST, unsized { request req; - req.version = 11; + req.version(11); req.method(verb::post); req.prepare_payload(); @@ -547,7 +547,7 @@ public: // POST, unsized HTTP/1.0 { request req; - req.version = 10; + req.version(10); req.method(verb::post); req.prepare_payload(); @@ -563,7 +563,7 @@ public: // OK, empty { response res; - res.version = 11; + res.version(11); res.prepare_payload(); BEAST_EXPECT(res[field::content_length] == "0"); @@ -579,7 +579,7 @@ public: // OK, sized { response res; - res.version = 11; + res.version(11); res.body() = 50; res.prepare_payload(); @@ -596,7 +596,7 @@ public: // OK, unsized { response res; - res.version = 11; + res.version(11); res.prepare_payload(); BEAST_EXPECT(res.count(field::content_length) == 0); @@ -621,7 +621,7 @@ public: std::string const big(4096 + 1, 'a'); // HTTP/1.0 - res.version = 10; + res.version(10); res.erase(field::connection); keep_alive(false); @@ -695,7 +695,7 @@ public: test10(big); // HTTP/1.1 - res.version = 11; + res.version(11); res.erase(field::connection); keep_alive(true); diff --git a/test/beast/http/message.cpp b/test/beast/http/message.cpp index b229552e..b7b83177 100644 --- a/test/beast/http/message.cpp +++ b/test/beast/http/message.cpp @@ -149,7 +149,7 @@ public: BEAST_EXPECT(h.count(http::field::user_agent) == 0); BEAST_EXPECT(m.method() == verb::get); BEAST_EXPECT(m.target() == "/"); - BEAST_EXPECT(m.version == 10); + BEAST_EXPECT(m.version() == 10); } // swap @@ -216,19 +216,19 @@ public: { { request req; - BEAST_EXPECT(req.version == 11); + BEAST_EXPECT(req.version() == 11); BEAST_EXPECT(req.method() == verb::unknown); BEAST_EXPECT(req.target() == ""); } { request req{verb::get, "/", 11}; - BEAST_EXPECT(req.version == 11); + BEAST_EXPECT(req.version() == 11); BEAST_EXPECT(req.method() == verb::get); BEAST_EXPECT(req.target() == "/"); } { request req{verb::get, "/", 11, "Hello"}; - BEAST_EXPECT(req.version == 11); + BEAST_EXPECT(req.version() == 11); BEAST_EXPECT(req.method() == verb::get); BEAST_EXPECT(req.target() == "/"); BEAST_EXPECT(req.body() == "Hello"); @@ -236,26 +236,26 @@ public: { request req{ verb::get, "/", 11, "Hello", token{}}; - BEAST_EXPECT(req.version == 11); + BEAST_EXPECT(req.version() == 11); BEAST_EXPECT(req.method() == verb::get); BEAST_EXPECT(req.target() == "/"); BEAST_EXPECT(req.body() == "Hello"); } { response res; - BEAST_EXPECT(res.version == 11); + BEAST_EXPECT(res.version() == 11); BEAST_EXPECT(res.result() == status::ok); BEAST_EXPECT(res.reason() == "OK"); } { response res{status::bad_request, 10}; - BEAST_EXPECT(res.version == 10); + BEAST_EXPECT(res.version() == 10); BEAST_EXPECT(res.result() == status::bad_request); BEAST_EXPECT(res.reason() == "Bad Request"); } { response res{status::bad_request, 10, "Hello"}; - BEAST_EXPECT(res.version == 10); + BEAST_EXPECT(res.version() == 10); BEAST_EXPECT(res.result() == status::bad_request); BEAST_EXPECT(res.reason() == "Bad Request"); BEAST_EXPECT(res.body() == "Hello"); @@ -263,7 +263,7 @@ public: { response res{ status::bad_request, 10, "Hello", token{}}; - BEAST_EXPECT(res.version == 10); + BEAST_EXPECT(res.version() == 10); BEAST_EXPECT(res.result() == status::bad_request); BEAST_EXPECT(res.reason() == "Bad Request"); BEAST_EXPECT(res.body() == "Hello"); @@ -276,12 +276,12 @@ public: response m1; response m2; m1.result(status::ok); - m1.version = 10; + m1.version(10); m1.body() = "1"; m1.insert("h", "v"); m2.result(status::not_found); m2.body() = "2"; - m2.version = 11; + m2.version(11); swap(m1, m2); BEAST_EXPECT(m1.result() == status::not_found); BEAST_EXPECT(m1.result_int() == 404); @@ -289,8 +289,8 @@ public: BEAST_EXPECT(m2.result_int() == 200); BEAST_EXPECT(m1.reason() == "Not Found"); BEAST_EXPECT(m2.reason() == "OK"); - BEAST_EXPECT(m1.version == 11); - BEAST_EXPECT(m2.version == 10); + BEAST_EXPECT(m1.version() == 11); + BEAST_EXPECT(m2.version() == 10); BEAST_EXPECT(m1.body() == "2"); BEAST_EXPECT(m2.body() == "1"); BEAST_EXPECT(! m1.count("h")); diff --git a/test/beast/http/parser.cpp b/test/beast/http/parser.cpp index f618bcc1..10a114bc 100644 --- a/test/beast/http/parser.cpp +++ b/test/beast/http/parser.cpp @@ -131,7 +131,7 @@ public: BEAST_EXPECT(! p.is_chunked()); BEAST_EXPECT(p.need_eof()); BEAST_EXPECT(p.content_length() == boost::none); - BEAST_EXPECT(m.version == 10); + BEAST_EXPECT(m.version() == 10); BEAST_EXPECT(m.result() == status::ok); BEAST_EXPECT(m.reason() == "OK"); BEAST_EXPECT(m["Server"] == "test"); @@ -158,7 +158,7 @@ public: BEAST_EXPECT(! p.need_eof()); BEAST_EXPECT(p.is_chunked()); BEAST_EXPECT(p.content_length() == boost::none); - BEAST_EXPECT(m.version == 11); + BEAST_EXPECT(m.version() == 11); BEAST_EXPECT(m.result() == status::ok); BEAST_EXPECT(m.reason() == "OK"); BEAST_EXPECT(m["Server"] == "test"); @@ -189,7 +189,7 @@ public: auto const& m = p.get(); BEAST_EXPECT(m.method() == verb::get); BEAST_EXPECT(m.target() == "/"); - BEAST_EXPECT(m.version == 11); + BEAST_EXPECT(m.version() == 11); BEAST_EXPECT(! p.need_eof()); BEAST_EXPECT(! p.is_chunked()); BEAST_EXPECT(p.content_length() == boost::none); @@ -226,7 +226,7 @@ public: BEAST_EXPECT(! p.need_eof()); BEAST_EXPECT(m.method() == verb::get); BEAST_EXPECT(m.target() == "/"); - BEAST_EXPECT(m.version == 11); + BEAST_EXPECT(m.version() == 11); BEAST_EXPECT(m["User-Agent"] == "test"); BEAST_EXPECT(m.body() == "*"); } diff --git a/test/beast/http/write.cpp b/test/beast/http/write.cpp index d4a8fbeb..78fa0f0b 100644 --- a/test/beast/http/write.cpp +++ b/test/beast/http/write.cpp @@ -319,7 +319,7 @@ public: { { response m; - m.version = 10; + m.version(10); m.result(status::ok); m.set(field::server, "test"); m.set(field::content_length, "5"); @@ -338,7 +338,7 @@ public: } { response m; - m.version = 11; + m.version(11); m.result(status::ok); m.set(field::server, "test"); m.set(field::transfer_encoding, "chunked"); @@ -518,7 +518,7 @@ public: request m; m.method(verb::get); m.target("/"); - m.version = 10; + m.version(10); m.set(field::user_agent, "test"); m.body() = "*"; m.prepare_payload(); @@ -535,7 +535,7 @@ public: request m; m.method(verb::get); m.target("/"); - m.version = 10; + m.version(10); m.set(field::user_agent, "test"); m.body() = "*"; m.prepare_payload(); @@ -556,7 +556,7 @@ public: request m; m.method(verb::get); m.target("/"); - m.version = 11; + m.version(11); m.set(field::user_agent, "test"); m.body() = "*"; m.prepare_payload(); @@ -573,7 +573,7 @@ public: request m; m.method(verb::get); m.target("/"); - m.version = 11; + m.version(11); m.set(field::user_agent, "test"); m.body() = "*"; m.prepare_payload(); @@ -599,7 +599,7 @@ public: request m; m.method(verb::get); m.target("/"); - m.version = 11; + m.version(11); m.set(field::user_agent, "test"); m.body() = "*"; BEAST_EXPECT(to_string(m) == @@ -628,7 +628,7 @@ public: BEAST_EXPECT(handler::count() == 0); request m; m.method(verb::get); - m.version = 11; + m.version(11); m.target("/"); m.set("Content-Length", 5); m.body() = "*****"; @@ -651,7 +651,7 @@ public: BEAST_EXPECT(handler::count() == 0); request m; m.method(verb::get); - m.version = 11; + m.version(11); m.target("/"); m.set("Content-Length", 5); m.body() = "*****"; @@ -712,7 +712,7 @@ public: ts.write_size(3); response m0; - m0.version = 11; + m0.version(11); m0.result(status::ok); m0.reason("OK"); m0.set(field::server, "test"); diff --git a/test/beast/websocket/accept.cpp b/test/beast/websocket/accept.cpp index ebf4f2bb..92fd3f3e 100644 --- a/test/beast/websocket/accept.cpp +++ b/test/beast/websocket/accept.cpp @@ -327,7 +327,7 @@ public: request_type req; req.method(http::verb::get); req.target("/"); - req.version = 11; + req.version(11); req.insert(http::field::host, "localhost"); req.insert(http::field::upgrade, "websocket"); req.insert(http::field::connection, "upgrade"); @@ -344,7 +344,7 @@ public: request_type req; req.method(http::verb::get); req.target("/"); - req.version = 11; + req.version(11); req.insert(http::field::host, "localhost"); req.insert(http::field::upgrade, "websocket"); req.insert(http::field::connection, "upgrade"); @@ -364,7 +364,7 @@ public: request_type req; req.method(http::verb::get); req.target("/"); - req.version = 11; + req.version(11); req.insert(http::field::host, "localhost"); req.insert(http::field::upgrade, "websocket"); req.insert(http::field::connection, "upgrade"); diff --git a/test/beast/websocket/rfc6455.cpp b/test/beast/websocket/rfc6455.cpp index 4d7546ae..76f8da57 100644 --- a/test/beast/websocket/rfc6455.cpp +++ b/test/beast/websocket/rfc6455.cpp @@ -24,9 +24,9 @@ public: test_is_upgrade() { http::header req; - req.version = 10; + req.version(10); BEAST_EXPECT(! is_upgrade(req)); - req.version = 11; + req.version(11); req.method(http::verb::post); req.target("/"); BEAST_EXPECT(! is_upgrade(req)); diff --git a/test/doc/http_examples.cpp b/test/doc/http_examples.cpp index 7b82e493..afee4b08 100644 --- a/test/doc/http_examples.cpp +++ b/test/doc/http_examples.cpp @@ -105,7 +105,7 @@ public: { flat_buffer buffer; request req; - req.version = 11; + req.version(11); req.method_string("POST"); req.target("/"); req.insert(field::user_agent, "test"); @@ -138,7 +138,7 @@ public: doRelay() { request req; - req.version = 11; + req.version(11); req.method_string("POST"); req.target("/"); req.insert(field::user_agent, "test"); @@ -192,7 +192,7 @@ public: { std::ostringstream os; request req; - req.version = 11; + req.version(11); req.method(verb::get); req.target("/"); req.insert(field::user_agent, "test"); diff --git a/test/doc/http_snippets.cpp b/test/doc/http_snippets.cpp index 781765fc..d2ec807f 100644 --- a/test/doc/http_snippets.cpp +++ b/test/doc/http_snippets.cpp @@ -45,7 +45,7 @@ void fxx() { //[http_snippet_2 request req; - req.version = 11; // HTTP/1.1 + req.version(11); // HTTP/1.1 req.method(verb::get); req.target("/index.htm"); req.set(field::accept, "text/html"); @@ -58,7 +58,7 @@ void fxx() { //[http_snippet_3 response res; - res.version = 11; // HTTP/1.1 + res.version(11); // HTTP/1.1 res.result(status::ok); res.set(field::server, "Beast"); res.body() = "Hello, world!"; @@ -112,7 +112,7 @@ void fxx() { //[http_snippet_7 response res; - res.version = 11; + res.version(11); res.result(status::ok); res.set(field::server, "Beast"); res.body() = "Hello, world!";