From a142969c5de03220e412d0527ca6b833cfc39c56 Mon Sep 17 00:00:00 2001 From: Vinnie Falco Date: Sat, 2 Feb 2019 10:53:54 -0800 Subject: [PATCH] Qualify buffer_copy, don't qualify buffer_size: fix #1416 * Calls to buffer_copy are qualified as net::buffer_copy * Calls to buffer_size are made unqualified, permitting argument dependent lookup to take effect. --- CHANGELOG.md | 1 + .../_experimental/core/detail/flat_stream.hpp | 6 +-- .../_experimental/http/impl/icy_stream.hpp | 8 ++- include/boost/beast/core/buffers_suffix.hpp | 10 +--- .../beast/core/impl/buffered_read_stream.hpp | 4 +- .../boost/beast/core/impl/buffers_adaptor.hpp | 20 +++++--- .../boost/beast/core/impl/buffers_prefix.hpp | 3 +- .../boost/beast/core/impl/buffers_suffix.hpp | 3 +- .../beast/core/impl/flat_static_buffer.hpp | 6 +-- .../boost/beast/http/basic_dynamic_body.hpp | 3 +- include/boost/beast/http/buffer_body.hpp | 5 +- .../boost/beast/http/impl/basic_parser.ipp | 10 ++-- .../boost/beast/http/impl/chunk_encode.ipp | 24 +++++++-- include/boost/beast/http/span_body.hpp | 3 +- include/boost/beast/http/string_body.hpp | 1 - include/boost/beast/http/vector_body.hpp | 3 +- .../boost/beast/websocket/detail/frame.hpp | 17 +++---- .../beast/websocket/detail/stream_base.hpp | 3 +- include/boost/beast/websocket/impl/accept.hpp | 15 +++--- include/boost/beast/websocket/impl/ping.hpp | 1 - include/boost/beast/websocket/impl/stream.hpp | 13 +++-- include/boost/beast/websocket/impl/write.hpp | 51 ++++++++++--------- test/beast/core/buffer_test.hpp | 9 ++-- test/beast/core/buffered_read_stream.cpp | 34 ++++++------- test/beast/core/buffers_cat.cpp | 6 +-- test/beast/http/basic_parser.cpp | 5 +- test/beast/http/file_body.cpp | 3 +- test/beast/http/read.cpp | 22 ++++---- test/beast/http/serializer.cpp | 3 +- test/beast/http/span_body.cpp | 3 +- test/beast/websocket/test.hpp | 3 +- test/bench/wsload/wsload.cpp | 3 +- test/doc/exemplars.cpp | 3 +- test/doc/http_snippets.cpp | 19 ++++--- 34 files changed, 162 insertions(+), 161 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 37af2c2d..0f45c14f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ Version 209: * Faster http::string_to_field * async_echo supports move-only handlers * test::stream maintains a handler work guard +* Qualify buffer_copy, don't qualify buffer_size -------------------------------------------------------------------------------- diff --git a/include/boost/beast/_experimental/core/detail/flat_stream.hpp b/include/boost/beast/_experimental/core/detail/flat_stream.hpp index 51e496f9..c4bde08f 100644 --- a/include/boost/beast/_experimental/core/detail/flat_stream.hpp +++ b/include/boost/beast/_experimental/core/detail/flat_stream.hpp @@ -42,15 +42,15 @@ public: auto last = net::buffer_sequence_end(buffers); if(first != last) { - result.size = net::buffer_size(*first); + using net::buffer_size; + result.size = buffer_size(*first); if(result.size < limit) { auto it = first; auto prev = first; while(++it != last) { - auto const n = - net::buffer_size(*it); + auto const n = buffer_size(*it); if(result.size + n > limit) break; result.size += n; diff --git a/include/boost/beast/_experimental/http/impl/icy_stream.hpp b/include/boost/beast/_experimental/http/impl/icy_stream.hpp index 34501c3c..b3f640a3 100644 --- a/include/boost/beast/_experimental/http/impl/icy_stream.hpp +++ b/include/boost/beast/_experimental/http/impl/icy_stream.hpp @@ -18,7 +18,6 @@ #include #include #include -#include #include #include #include @@ -240,12 +239,11 @@ public: goto upcall; } d_.s.copy_ = static_cast( - buffer_copy( + net::buffer_copy( net::buffer(d_.s.buf_), icy_stream::version() + d_.b.max_size())); - bytes_transferred = buffer_copy( - d_.b.value(), - icy_stream::version()); + bytes_transferred = net::buffer_copy( + d_.b.value(), icy_stream::version()); goto upcall; } diff --git a/include/boost/beast/core/buffers_suffix.hpp b/include/boost/beast/core/buffers_suffix.hpp index 3d905058..d3f2028d 100644 --- a/include/boost/beast/core/buffers_suffix.hpp +++ b/include/boost/beast/core/buffers_suffix.hpp @@ -44,7 +44,8 @@ namespace beast { void send(SyncWriteStream& stream, ConstBufferSequence const& buffers) { buffers_suffix bs{buffers}; - while(net::buffer_size(bs) > 0) + using net::buffer_size; + while(buffer_size(bs) > 0) bs.consume(stream.write_some(bs)); } @endcode @@ -79,13 +80,6 @@ public: */ #if BOOST_BEAST_DOXYGEN using value_type = __see_below__; -#elif 0 - using value_type = typename std::conditional< - std::is_convertible::value_type, - net::mutable_buffer>::value, - net::mutable_buffer, - net::const_buffer>::type; #else using value_type = buffers_type; #endif diff --git a/include/boost/beast/core/impl/buffered_read_stream.hpp b/include/boost/beast/core/impl/buffered_read_stream.hpp index b91613f4..bc295de6 100644 --- a/include/boost/beast/core/impl/buffered_read_stream.hpp +++ b/include/boost/beast/core/impl/buffered_read_stream.hpp @@ -161,8 +161,6 @@ read_some(MutableBufferSequence const& buffers, static_assert(net::is_mutable_buffer_sequence< MutableBufferSequence>::value, "MutableBufferSequence requirements not met"); - using net::buffer_size; - using net::buffer_copy; if(buffer_.size() == 0) { if(capacity_ == 0) @@ -178,7 +176,7 @@ read_some(MutableBufferSequence const& buffers, ec = {}; } auto bytes_transferred = - buffer_copy(buffers, buffer_.data()); + net::buffer_copy(buffers, buffer_.data()); buffer_.consume(bytes_transferred); return bytes_transferred; } diff --git a/include/boost/beast/core/impl/buffers_adaptor.hpp b/include/boost/beast/core/impl/buffers_adaptor.hpp index a3fe1499..652d936b 100644 --- a/include/boost/beast/core/impl/buffers_adaptor.hpp +++ b/include/boost/beast/core/impl/buffers_adaptor.hpp @@ -415,7 +415,12 @@ buffers_adaptor( , begin_(net::buffer_sequence_begin(bs_)) , out_ (net::buffer_sequence_begin(bs_)) , end_ (net::buffer_sequence_begin(bs_)) - , max_size_(net::buffer_size(bs_)) + , max_size_( + [&] + { + using net::buffer_size; + return buffer_size(bs_); + }()) { } @@ -497,14 +502,15 @@ prepare(std::size_t n) -> end_ = out_; if(end_ != net::buffer_sequence_end(bs_)) { - auto size = net::buffer_size(*end_) - out_pos_; + using net::buffer_size; + auto size = buffer_size(*end_) - out_pos_; if(n > size) { n -= size; while(++end_ != net::buffer_sequence_end(bs_)) { - size = net::buffer_size(*end_); + size = buffer_size(*end_); if(n < size) { out_end_ = n; @@ -539,8 +545,9 @@ commit(std::size_t n) noexcept auto const last = std::prev(end_); while(out_ != last) { + using net::buffer_size; auto const avail = - net::buffer_size(*out_) - out_pos_; + buffer_size(*out_) - out_pos_; if(n < avail) { out_pos_ += n; @@ -557,7 +564,7 @@ commit(std::size_t n) noexcept n, out_end_ - out_pos_); out_pos_ += n; in_size_ += n; - if(out_pos_ == net::buffer_size(*out_)) + if(out_pos_ == buffer_size(*out_)) { ++out_; out_pos_ = 0; @@ -572,8 +579,9 @@ consume(std::size_t n) noexcept { while(begin_ != out_) { + using net::buffer_size; auto const avail = - net::buffer_size(*begin_) - in_pos_; + buffer_size(*begin_) - in_pos_; if(n < avail) { in_size_ -= n; diff --git a/include/boost/beast/core/impl/buffers_prefix.hpp b/include/boost/beast/core/impl/buffers_prefix.hpp index 06ef4989..41340e58 100644 --- a/include/boost/beast/core/impl/buffers_prefix.hpp +++ b/include/boost/beast/core/impl/buffers_prefix.hpp @@ -149,7 +149,8 @@ setup(std::size_t size) auto const last = bs_.end(); while(end_ != last) { - auto const len = net::buffer_size(*end_++); + using net::buffer_size; + auto const len = buffer_size(*end_++); if(len >= size) { size_ += size; diff --git a/include/boost/beast/core/impl/buffers_suffix.hpp b/include/boost/beast/core/impl/buffers_suffix.hpp index af26388a..f7e037f6 100644 --- a/include/boost/beast/core/impl/buffers_suffix.hpp +++ b/include/boost/beast/core/impl/buffers_suffix.hpp @@ -206,8 +206,9 @@ consume(std::size_t amount) net::buffer_sequence_end(bs_); for(;amount > 0 && begin_ != end; ++begin_) { + using net::buffer_size; auto const len = - net::buffer_size(*begin_) - skip_; + buffer_size(*begin_) - skip_; if(amount < len) { skip_ += amount; diff --git a/include/boost/beast/core/impl/flat_static_buffer.hpp b/include/boost/beast/core/impl/flat_static_buffer.hpp index 8c29dfd7..22cd15df 100644 --- a/include/boost/beast/core/impl/flat_static_buffer.hpp +++ b/include/boost/beast/core/impl/flat_static_buffer.hpp @@ -90,8 +90,7 @@ flat_static_buffer:: flat_static_buffer(flat_static_buffer const& other) : flat_static_buffer_base(buf_, N) { - using net::buffer_copy; - this->commit(buffer_copy( + this->commit(net::buffer_copy( this->prepare(other.size()), other.data())); } @@ -101,11 +100,10 @@ flat_static_buffer:: operator=(flat_static_buffer const& other) -> flat_static_buffer& { - using net::buffer_copy; if(this == &other) return *this; this->consume(this->size()); - this->commit(buffer_copy( + this->commit(net::buffer_copy( this->prepare(other.size()), other.data())); return *this; } diff --git a/include/boost/beast/http/basic_dynamic_body.hpp b/include/boost/beast/http/basic_dynamic_body.hpp index 5d012ec0..66254710 100644 --- a/include/boost/beast/http/basic_dynamic_body.hpp +++ b/include/boost/beast/http/basic_dynamic_body.hpp @@ -88,7 +88,6 @@ struct basic_dynamic_body put(ConstBufferSequence const& buffers, error_code& ec) { - using net::buffer_copy; using net::buffer_size; auto const n = buffer_size(buffers); if(body_.size() > body_.max_size() - n) @@ -104,7 +103,7 @@ struct basic_dynamic_body if(ec) return 0; auto const bytes_transferred = - buffer_copy(*mb, buffers); + net::buffer_copy(*mb, buffers); body_.commit(bytes_transferred); return bytes_transferred; } diff --git a/include/boost/beast/http/buffer_body.hpp b/include/boost/beast/http/buffer_body.hpp index b69f537f..57cf43e2 100644 --- a/include/boost/beast/http/buffer_body.hpp +++ b/include/boost/beast/http/buffer_body.hpp @@ -121,19 +121,18 @@ struct buffer_body put(ConstBufferSequence const& buffers, error_code& ec) { - using net::buffer_size; - using net::buffer_copy; if(! body_.data) { ec = error::need_buffer; return 0; } auto const bytes_transferred = - buffer_copy(net::buffer( + net::buffer_copy(net::buffer( body_.data, body_.size), buffers); body_.data = static_cast( body_.data) + bytes_transferred; body_.size -= bytes_transferred; + using net::buffer_size; if(bytes_transferred == buffer_size(buffers)) ec = {}; else diff --git a/include/boost/beast/http/impl/basic_parser.ipp b/include/boost/beast/http/impl/basic_parser.ipp index f290dd7b..337bc8e8 100644 --- a/include/boost/beast/http/impl/basic_parser.ipp +++ b/include/boost/beast/http/impl/basic_parser.ipp @@ -94,8 +94,6 @@ put(ConstBufferSequence const& buffers, static_assert(net::is_const_buffer_sequence< ConstBufferSequence>::value, "ConstBufferSequence requirements not met"); - using net::buffer_copy; - using net::buffer_size; auto const p = net::buffer_sequence_begin(buffers); auto const last = net::buffer_sequence_end(buffers); if(p == last) @@ -108,6 +106,7 @@ put(ConstBufferSequence const& buffers, // single buffer return put(net::const_buffer(*p), ec); } + using net::buffer_size; auto const size = buffer_size(buffers); if(size <= max_stack_buffer) return put_from_stack(size, buffers, ec); @@ -118,7 +117,7 @@ put(ConstBufferSequence const& buffers, buf_len_ = size; } // flatten - buffer_copy(net::buffer( + net::buffer_copy(net::buffer( buf_.get(), buf_len_), buffers); return put(net::const_buffer{ buf_.get(), buf_len_}, ec); @@ -304,9 +303,8 @@ put_from_stack(std::size_t size, error_code& ec) { char buf[max_stack_buffer]; - using net::buffer; - using net::buffer_copy; - buffer_copy(buffer(buf, sizeof(buf)), buffers); + net::buffer_copy(net::mutable_buffer( + buf, sizeof(buf)), buffers); return put(net::const_buffer{ buf, size}, ec); } diff --git a/include/boost/beast/http/impl/chunk_encode.ipp b/include/boost/beast/http/impl/chunk_encode.ipp index 0c808d07..03a9b85a 100644 --- a/include/boost/beast/http/impl/chunk_encode.ipp +++ b/include/boost/beast/http/impl/chunk_encode.ipp @@ -89,7 +89,11 @@ template chunk_body:: chunk_body(ConstBufferSequence const& buffers) : view_( - net::buffer_size(buffers), + [&] + { + using net::buffer_size; + return buffer_size(buffers); + }(), net::const_buffer{nullptr, 0}, chunk_crlf{}, buffers, @@ -103,7 +107,11 @@ chunk_body( ConstBufferSequence const& buffers, string_view extensions) : view_( - net::buffer_size(buffers), + [&] + { + using net::buffer_size; + return buffer_size(buffers); + }(), net::const_buffer{ extensions.data(), extensions.size()}, chunk_crlf{}, @@ -122,7 +130,11 @@ chunk_body( typename std::decay::type>>( std::forward(extensions))) , view_( - net::buffer_size(buffers), + [&] + { + using net::buffer_size; + return buffer_size(buffers); + }(), exts_->str(), chunk_crlf{}, buffers, @@ -141,7 +153,11 @@ chunk_body( typename std::decay::type>>(allocator, std::forward(extensions))) , view_( - net::buffer_size(buffers), + [&] + { + using net::buffer_size; + return buffer_size(buffers); + }(), exts_->str(), chunk_crlf{}, buffers, diff --git a/include/boost/beast/http/span_body.hpp b/include/boost/beast/http/span_body.hpp index 8afa51ea..6e691054 100644 --- a/include/boost/beast/http/span_body.hpp +++ b/include/boost/beast/http/span_body.hpp @@ -96,7 +96,6 @@ public: error_code& ec) { using net::buffer_size; - using net::buffer_copy; auto const n = buffer_size(buffers); auto const len = body_.size(); if(n > len) @@ -105,7 +104,7 @@ public: return 0; } ec = {}; - buffer_copy(net::buffer( + net::buffer_copy(net::buffer( body_.data(), n), buffers); body_ = value_type{ body_.data() + n, body_.size() - n}; diff --git a/include/boost/beast/http/string_body.hpp b/include/boost/beast/http/string_body.hpp index 8c1541ce..00173ac2 100644 --- a/include/boost/beast/http/string_body.hpp +++ b/include/boost/beast/http/string_body.hpp @@ -118,7 +118,6 @@ public: error_code& ec) { using net::buffer_size; - using net::buffer_copy; auto const extra = buffer_size(buffers); auto const size = body_.size(); try diff --git a/include/boost/beast/http/vector_body.hpp b/include/boost/beast/http/vector_body.hpp index a7d74ef0..a1b35610 100644 --- a/include/boost/beast/http/vector_body.hpp +++ b/include/boost/beast/http/vector_body.hpp @@ -112,7 +112,6 @@ public: error_code& ec) { using net::buffer_size; - using net::buffer_copy; auto const n = buffer_size(buffers); auto const len = body_.size(); try @@ -125,7 +124,7 @@ public: return 0; } ec = {}; - return buffer_copy(net::buffer( + return net::buffer_copy(net::buffer( &body_[0] + len, n), buffers); } diff --git a/include/boost/beast/websocket/detail/frame.hpp b/include/boost/beast/websocket/detail/frame.hpp index 7dde553b..c05c7318 100644 --- a/include/boost/beast/websocket/detail/frame.hpp +++ b/include/boost/beast/websocket/detail/frame.hpp @@ -184,8 +184,6 @@ template void write(DynamicBuffer& db, frame_header const& fh) { - using net::buffer; - using net::buffer_copy; using namespace boost::endian; std::size_t n; std::uint8_t b[14]; @@ -220,8 +218,8 @@ write(DynamicBuffer& db, frame_header const& fh) native_to_little_uint32(fh.key, &b[n]); n += 4; } - db.commit(buffer_copy( - db.prepare(n), buffer(b))); + db.commit(net::buffer_copy( + db.prepare(n), net::buffer(b))); } // Read data from buffers @@ -231,12 +229,10 @@ template void read_ping(ping_data& data, Buffers const& bs) { - using net::buffer_copy; using net::buffer_size; - using net::mutable_buffer; BOOST_ASSERT(buffer_size(bs) <= data.max_size()); data.resize(buffer_size(bs)); - buffer_copy(mutable_buffer{ + net::buffer_copy(net::mutable_buffer{ data.data(), data.size()}, bs); } @@ -251,9 +247,8 @@ read_close( error_code& ec) { using net::buffer; - using net::buffer_copy; - using net::buffer_size; using namespace boost::endian; + using net::buffer_size; auto n = buffer_size(bs); BOOST_ASSERT(n <= 125); if(n == 0) @@ -271,7 +266,7 @@ read_close( buffers_suffix cb(bs); { std::uint8_t b[2]; - buffer_copy(buffer(b), cb); + net::buffer_copy(buffer(b), cb); cr.code = big_uint16_to_native(&b[0]); cb.consume(2); n -= 2; @@ -285,7 +280,7 @@ read_close( if(n > 0) { cr.reason.resize(n); - buffer_copy(buffer(&cr.reason[0], n), cb); + net::buffer_copy(buffer(&cr.reason[0], n), cb); if(! check_utf8( cr.reason.data(), cr.reason.size())) { diff --git a/include/boost/beast/websocket/detail/stream_base.hpp b/include/boost/beast/websocket/detail/stream_base.hpp index 93091df5..a072d845 100644 --- a/include/boost/beast/websocket/detail/stream_base.hpp +++ b/include/boost/beast/websocket/detail/stream_base.hpp @@ -123,7 +123,8 @@ struct impl_base cb.consume(zs.total_in); if(zs.avail_out > 0 && fin) { - auto const remain = net::buffer_size(cb); + using net::buffer_size; + auto const remain = buffer_size(cb); if(remain == 0) { // Inspired by Mark Adler diff --git a/include/boost/beast/websocket/impl/accept.hpp b/include/boost/beast/websocket/impl/accept.hpp index 727179c5..44a014af 100644 --- a/include/boost/beast/websocket/impl/accept.hpp +++ b/include/boost/beast/websocket/impl/accept.hpp @@ -121,15 +121,14 @@ public: template void run(Buffers const& buffers) { - using net::buffer_copy; - using net::buffer_size; error_code ec; + using net::buffer_size; auto const mb = beast::detail::dynamic_buffer_prepare( ws_.impl_->rd_buf, buffer_size(buffers), ec, error::buffer_overflow); if(ec) return (*this)(ec); - ws_.impl_->rd_buf.commit(buffer_copy(*mb, buffers)); + ws_.impl_->rd_buf.commit(net::buffer_copy(*mb, buffers)); (*this)(ec); } @@ -296,15 +295,14 @@ accept( static_assert(net::is_const_buffer_sequence< ConstBufferSequence>::value, "ConstBufferSequence requirements not met"); - using net::buffer_copy; - using net::buffer_size; impl_->reset(); + using net::buffer_size; auto const mb = beast::detail::dynamic_buffer_prepare( impl_->rd_buf, buffer_size(buffers), ec, error::buffer_overflow); if(ec) return; - impl_->rd_buf.commit(buffer_copy(*mb, buffers)); + impl_->rd_buf.commit(net::buffer_copy(*mb, buffers)); do_accept(&default_decorate_res, ec); } @@ -328,15 +326,14 @@ accept_ex( static_assert(net::is_const_buffer_sequence< ConstBufferSequence>::value, "ConstBufferSequence requirements not met"); - using net::buffer_copy; - using net::buffer_size; impl_->reset(); + using net::buffer_size; auto const mb = beast::detail::dynamic_buffer_prepare( impl_->rd_buf, buffer_size(buffers), ec, error::buffer_overflow); if(ec) return; - impl_->rd_buf.commit(buffer_copy(*mb, buffers)); + impl_->rd_buf.commit(net::buffer_copy(*mb, buffers)); do_accept(decorator, ec); } diff --git a/include/boost/beast/websocket/impl/ping.hpp b/include/boost/beast/websocket/impl/ping.hpp index 1092ffec..099eee2a 100644 --- a/include/boost/beast/websocket/impl/ping.hpp +++ b/include/boost/beast/websocket/impl/ping.hpp @@ -12,7 +12,6 @@ #include #include -#include #include #include #include diff --git a/include/boost/beast/websocket/impl/stream.hpp b/include/boost/beast/websocket/impl/stream.hpp index dbd5e1af..7f8a14e0 100644 --- a/include/boost/beast/websocket/impl/stream.hpp +++ b/include/boost/beast/websocket/impl/stream.hpp @@ -282,8 +282,6 @@ parse_fh( DynamicBuffer& b, error_code& ec) { - using net::buffer; - using net::buffer_copy; using net::buffer_size; if(buffer_size(b.data()) < 2) { @@ -297,7 +295,8 @@ parse_fh( std::size_t need; { std::uint8_t tmp[2]; - cb.consume(buffer_copy(buffer(tmp), cb)); + cb.consume(net::buffer_copy( + net::buffer(tmp), cb)); fh.len = tmp[1] & 0x7f; switch(fh.len) { @@ -408,7 +407,7 @@ parse_fh( { std::uint8_t tmp[2]; BOOST_ASSERT(buffer_size(cb) >= sizeof(tmp)); - cb.consume(buffer_copy(buffer(tmp), cb)); + cb.consume(net::buffer_copy(net::buffer(tmp), cb)); fh.len = detail::big_uint16_to_native(&tmp[0]); if(fh.len < 126) { @@ -422,7 +421,7 @@ parse_fh( { std::uint8_t tmp[8]; BOOST_ASSERT(buffer_size(cb) >= sizeof(tmp)); - cb.consume(buffer_copy(buffer(tmp), cb)); + cb.consume(net::buffer_copy(net::buffer(tmp), cb)); fh.len = detail::big_uint64_to_native(&tmp[0]); if(fh.len < 65536) { @@ -437,7 +436,7 @@ parse_fh( { std::uint8_t tmp[4]; BOOST_ASSERT(buffer_size(cb) >= sizeof(tmp)); - cb.consume(buffer_copy(buffer(tmp), cb)); + cb.consume(net::buffer_copy(net::buffer(tmp), cb)); fh.key = detail::little_uint32_to_native(&tmp[0]); detail::prepare_key(impl_->rd_key, fh.key); } @@ -456,7 +455,7 @@ parse_fh( else { if(impl_->rd_size > (std::numeric_limits< - std::uint64_t>::max)() - fh.len) + std::uint64_t>::max)() - fh.len) { // message size exceeds configured limit ec = error::message_too_big; diff --git a/include/boost/beast/websocket/impl/write.hpp b/include/boost/beast/websocket/impl/write.hpp index 9e60fcf8..0a289351 100644 --- a/include/boost/beast/websocket/impl/write.hpp +++ b/include/boost/beast/websocket/impl/write.hpp @@ -88,10 +88,7 @@ operator()( bool cont) { using beast::detail::clamp; - using net::buffer; - using net::buffer_copy; using net::buffer_size; - using net::mutable_buffer; enum { do_nomask_nofrag, @@ -266,9 +263,9 @@ operator()( detail::write( ws_.impl_->wr_fb, fh_); n = clamp(remain_, ws_.impl_->wr_buf_size); - buffer_copy(buffer( + net::buffer_copy(net::buffer( ws_.impl_->wr_buf.get(), n), cb_); - detail::mask_inplace(buffer( + detail::mask_inplace(net::buffer( ws_.impl_->wr_buf.get(), n), key_); remain_ -= n; ws_.impl_->wr_cont = ! fin_; @@ -276,7 +273,7 @@ operator()( BOOST_ASIO_CORO_YIELD net::async_write( ws_.impl_->stream, buffers_cat(ws_.impl_->wr_fb.data(), - buffer(ws_.impl_->wr_buf.get(), n)), + net::buffer(ws_.impl_->wr_buf.get(), n)), std::move(*this)); if(! ws_.impl_->check_ok(ec)) goto upcall; @@ -286,15 +283,15 @@ operator()( { cb_.consume(ws_.impl_->wr_buf_size); n = clamp(remain_, ws_.impl_->wr_buf_size); - buffer_copy(buffer( + net::buffer_copy(net::buffer( ws_.impl_->wr_buf.get(), n), cb_); - detail::mask_inplace(buffer( + detail::mask_inplace(net::buffer( ws_.impl_->wr_buf.get(), n), key_); remain_ -= n; // Send partial payload BOOST_ASIO_CORO_YIELD net::async_write(ws_.impl_->stream, - buffer(ws_.impl_->wr_buf.get(), n), + net::buffer(ws_.impl_->wr_buf.get(), n), std::move(*this)); if(! ws_.impl_->check_ok(ec)) goto upcall; @@ -315,9 +312,9 @@ operator()( fh_.key = ws_.create_mask(); fh_.fin = fin_ ? remain_ == 0 : false; detail::prepare_key(key_, fh_.key); - buffer_copy(buffer( + net::buffer_copy(net::buffer( ws_.impl_->wr_buf.get(), n), cb_); - detail::mask_inplace(buffer( + detail::mask_inplace(net::buffer( ws_.impl_->wr_buf.get(), n), key_); ws_.impl_->wr_fb.clear(); detail::write( @@ -327,7 +324,7 @@ operator()( BOOST_ASIO_CORO_YIELD net::async_write(ws_.impl_->stream, buffers_cat(ws_.impl_->wr_fb.data(), - buffer(ws_.impl_->wr_buf.get(), n)), + net::buffer(ws_.impl_->wr_buf.get(), n)), std::move(*this)); if(! ws_.impl_->check_ok(ec)) goto upcall; @@ -358,7 +355,7 @@ operator()( { for(;;) { - b = buffer(ws_.impl_->wr_buf.get(), + b = net::buffer(ws_.impl_->wr_buf.get(), ws_.impl_->wr_buf_size); more_ = ws_.impl_->deflate(b, cb_, fin_, in_, ec); if(! ws_.impl_->check_ok(ec)) @@ -473,8 +470,6 @@ write_some(bool fin, ConstBufferSequence>::value, "ConstBufferSequence requirements not met"); using beast::detail::clamp; - using net::buffer; - using net::buffer_copy; using net::buffer_size; std::size_t bytes_transferred = 0; ec = {}; @@ -503,7 +498,7 @@ write_some(bool fin, ConstBufferSequence> cb{buffers}; for(;;) { - auto b = buffer( + auto b = net::buffer( impl_->wr_buf.get(), impl_->wr_buf_size); auto const more = impl_->deflate( b, cb, fin, bytes_transferred, ec); @@ -605,9 +600,11 @@ write_some(bool fin, buffers_suffix< ConstBufferSequence> cb{buffers}; { - auto const n = clamp(remain, impl_->wr_buf_size); - auto const b = buffer(impl_->wr_buf.get(), n); - buffer_copy(b, cb); + auto const n = + clamp(remain, impl_->wr_buf_size); + auto const b = + net::buffer(impl_->wr_buf.get(), n); + net::buffer_copy(b, cb); cb.consume(n); remain -= n; detail::mask_inplace(b, key); @@ -620,9 +617,11 @@ write_some(bool fin, } while(remain > 0) { - auto const n = clamp(remain, impl_->wr_buf_size); - auto const b = buffer(impl_->wr_buf.get(), n); - buffer_copy(b, cb); + auto const n = + clamp(remain, impl_->wr_buf_size); + auto const b = + net::buffer(impl_->wr_buf.get(), n); + net::buffer_copy(b, cb); cb.consume(n); remain -= n; detail::mask_inplace(b, key); @@ -643,9 +642,11 @@ write_some(bool fin, fh.key = this->create_mask(); detail::prepared_key key; detail::prepare_key(key, fh.key); - auto const n = clamp(remain, impl_->wr_buf_size); - auto const b = buffer(impl_->wr_buf.get(), n); - buffer_copy(b, cb); + auto const n = + clamp(remain, impl_->wr_buf_size); + auto const b = + net::buffer(impl_->wr_buf.get(), n); + net::buffer_copy(b, cb); detail::mask_inplace(b, key); fh.len = n; remain -= n; diff --git a/test/beast/core/buffer_test.hpp b/test/beast/core/buffer_test.hpp index 96e33244..d1a35d48 100644 --- a/test/beast/core/buffer_test.hpp +++ b/test/beast/core/buffer_test.hpp @@ -183,6 +183,7 @@ test_buffer_sequence( // bidirectional { + using net::buffer_size; auto const first = net::buffer_sequence_begin(buffers); auto const last = @@ -194,7 +195,7 @@ test_buffer_sequence( m = 0; n = length; for(it = first; n--; ++it) - m += net::buffer_size(*it); + m += buffer_size(*it); BEAST_EXPECT(it == last); BEAST_EXPECT(m == size); @@ -202,7 +203,7 @@ test_buffer_sequence( m = 0; n = length; for(it = first; n--;) - m += net::buffer_size(*it++); + m += buffer_size(*it++); BEAST_EXPECT(it == last); BEAST_EXPECT(m == size); @@ -210,7 +211,7 @@ test_buffer_sequence( m = 0; n = length; for(it = last; n--;) - m += net::buffer_size(*--it); + m += buffer_size(*--it); BEAST_EXPECT(it == first); BEAST_EXPECT(m == size); @@ -220,7 +221,7 @@ test_buffer_sequence( for(it = last; n--;) { it--; - m += net::buffer_size(*it); + m += buffer_size(*it); } BEAST_EXPECT(it == first); BEAST_EXPECT(m == size); diff --git a/test/beast/core/buffered_read_stream.cpp b/test/beast/core/buffered_read_stream.cpp index 12f52dcb..338bfe46 100644 --- a/test/beast/core/buffered_read_stream.cpp +++ b/test/beast/core/buffered_read_stream.cpp @@ -97,16 +97,14 @@ public: void do_read() { - using net::buffer; - using net::buffer_copy; s_.resize(13); fc_.emplace(n_); ts_.emplace(ioc_, *fc_, ", world!"); brs_.emplace(*ts_); - brs_->buffer().commit(buffer_copy( - brs_->buffer().prepare(5), buffer("Hello", 5))); + brs_->buffer().commit(net::buffer_copy( + brs_->buffer().prepare(5), net::buffer("Hello", 5))); net::async_read(*brs_, - buffer(&s_[0], s_.size()), + net::buffer(&s_[0], s_.size()), std::bind( &loop::on_read, shared_from_this(), @@ -124,8 +122,6 @@ public: void testRead(yield_context do_yield) { - using net::buffer; - using net::buffer_copy; static std::size_t constexpr limit = 100; std::size_t n; std::string s; @@ -137,10 +133,10 @@ public: test::stream ts(ioc_, fc, ", world!"); buffered_read_stream< test::stream&, multi_buffer> srs(ts); - srs.buffer().commit(buffer_copy( - srs.buffer().prepare(5), buffer("Hello", 5))); + srs.buffer().commit(net::buffer_copy( + srs.buffer().prepare(5), net::buffer("Hello", 5))); error_code ec = test::error::test_failure; - net::read(srs, buffer(&s[0], s.size()), ec); + net::read(srs, net::buffer(&s[0], s.size()), ec); if(! ec) { BEAST_EXPECT(s == "Hello, world!"); @@ -156,10 +152,10 @@ public: buffered_read_stream< test::stream&, multi_buffer> srs(ts); srs.capacity(3); - srs.buffer().commit(buffer_copy( - srs.buffer().prepare(5), buffer("Hello", 5))); + srs.buffer().commit(net::buffer_copy( + srs.buffer().prepare(5), net::buffer("Hello", 5))); error_code ec = test::error::test_failure; - net::read(srs, buffer(&s[0], s.size()), ec); + net::read(srs, net::buffer(&s[0], s.size()), ec); if(! ec) { BEAST_EXPECT(s == "Hello, world!"); @@ -174,11 +170,11 @@ public: test::stream ts(ioc_, fc, ", world!"); buffered_read_stream< test::stream&, multi_buffer> srs(ts); - srs.buffer().commit(buffer_copy( - srs.buffer().prepare(5), buffer("Hello", 5))); + srs.buffer().commit(net::buffer_copy( + srs.buffer().prepare(5), net::buffer("Hello", 5))); error_code ec = test::error::test_failure; net::async_read( - srs, buffer(&s[0], s.size()), do_yield[ec]); + srs, net::buffer(&s[0], s.size()), do_yield[ec]); if(! ec) { BEAST_EXPECT(s == "Hello, world!"); @@ -194,11 +190,11 @@ public: buffered_read_stream< test::stream&, multi_buffer> srs(ts); srs.capacity(3); - srs.buffer().commit(buffer_copy( - srs.buffer().prepare(5), buffer("Hello", 5))); + srs.buffer().commit(net::buffer_copy( + srs.buffer().prepare(5), net::buffer("Hello", 5))); error_code ec = test::error::test_failure; net::async_read( - srs, buffer(&s[0], s.size()), do_yield[ec]); + srs, net::buffer(&s[0], s.size()), do_yield[ec]); if(! ec) { BEAST_EXPECT(s == "Hello, world!"); diff --git a/test/beast/core/buffers_cat.cpp b/test/beast/core/buffers_cat.cpp index 64f15a22..c36c02a2 100644 --- a/test/beast/core/buffers_cat.cpp +++ b/test/beast/core/buffers_cat.cpp @@ -298,12 +298,8 @@ public: void testGccWarning2() { - using net::buffer; - using net::buffer_copy; - using net::const_buffer; - char out[64]; - const_buffer buffers("Hello, world!", 13); + net::const_buffer buffers("Hello, world!", 13); std::size_t i = 3; buffers_suffix cb{buffers}; cb.consume(i); diff --git a/test/beast/http/basic_parser.cpp b/test/beast/http/basic_parser.cpp index fa6685ab..79a5cd80 100644 --- a/test/beast/http/basic_parser.cpp +++ b/test/beast/http/basic_parser.cpp @@ -156,7 +156,8 @@ public: parsegrind(ConstBufferSequence const& buffers, Test const& test, bool skip = false) { - auto const size = net::buffer_size(buffers); + using net::buffer_size; + auto const size = buffer_size(buffers); for(std::size_t i = 1; i < size - 1; ++i) { Parser p; @@ -174,7 +175,7 @@ public: n = p.put(cb, ec); if(! BEAST_EXPECTS(! ec, ec.message())) continue; - if(! BEAST_EXPECT(n == net::buffer_size(cb))) + if(! BEAST_EXPECT(n == buffer_size(cb))) continue; if(p.need_eof()) { diff --git a/test/beast/http/file_body.cpp b/test/beast/http/file_body.cpp index b4d7b311..dc9e1c46 100644 --- a/test/beast/http/file_body.cpp +++ b/test/beast/http/file_body.cpp @@ -33,8 +33,9 @@ public: void operator()(error_code&, ConstBufferSequence const& buffers) { + using net::buffer_size; buffer.commit(net::buffer_copy( - buffer.prepare(net::buffer_size(buffers)), + buffer.prepare(buffer_size(buffers)), buffers)); } }; diff --git a/test/beast/http/read.cpp b/test/beast/http/read.cpp index 83a226ef..2b3754eb 100644 --- a/test/beast/http/read.cpp +++ b/test/beast/http/read.cpp @@ -39,16 +39,14 @@ public: void failMatrix(char const* s, yield_context do_yield) { - using net::buffer; - using net::buffer_copy; static std::size_t constexpr limit = 100; std::size_t n; auto const len = strlen(s); for(n = 0; n < limit; ++n) { multi_buffer b; - b.commit(buffer_copy( - b.prepare(len), buffer(s, len))); + b.commit(net::buffer_copy( + b.prepare(len), net::buffer(s, len))); test::fail_count fc(n); test::stream ts{ioc_, fc}; test_parser p(fc); @@ -63,8 +61,8 @@ public: { static std::size_t constexpr pre = 10; multi_buffer b; - b.commit(buffer_copy( - b.prepare(pre), buffer(s, pre))); + b.commit(net::buffer_copy( + b.prepare(pre), net::buffer(s, pre))); test::fail_count fc(n); test::stream ts{ioc_, fc, std::string(s + pre, len - pre)}; @@ -79,8 +77,8 @@ public: for(n = 0; n < limit; ++n) { multi_buffer b; - b.commit(buffer_copy( - b.prepare(len), buffer(s, len))); + b.commit(net::buffer_copy( + b.prepare(len), net::buffer(s, len))); test::fail_count fc(n); test::stream ts{ioc_, fc}; test_parser p(fc); @@ -94,8 +92,8 @@ public: for(n = 0; n < limit; ++n) { multi_buffer b; - b.commit(buffer_copy( - b.prepare(len), buffer(s, len))); + b.commit(net::buffer_copy( + b.prepare(len), net::buffer(s, len))); test::fail_count fc(n); test::stream ts{ioc_, fc}; test_parser p(fc); @@ -110,8 +108,8 @@ public: { static std::size_t constexpr pre = 10; multi_buffer b; - b.commit(buffer_copy( - b.prepare(pre), buffer(s, pre))); + b.commit(net::buffer_copy( + b.prepare(pre), net::buffer(s, pre))); test::fail_count fc(n); test::stream ts(ioc_, fc, std::string{s + pre, len - pre}); diff --git a/test/beast/http/serializer.cpp b/test/beast/http/serializer.cpp index 839a272f..b9bc2aae 100644 --- a/test/beast/http/serializer.cpp +++ b/test/beast/http/serializer.cpp @@ -91,7 +91,8 @@ public: operator()(error_code&, ConstBufferSequence const& buffers) { - size = net::buffer_size(buffers); + using net::buffer_size; + size = buffer_size(buffers); } }; diff --git a/test/beast/http/span_body.cpp b/test/beast/http/span_body.cpp index 8f4a14f2..12c8db3d 100644 --- a/test/beast/http/span_body.cpp +++ b/test/beast/http/span_body.cpp @@ -23,6 +23,7 @@ struct span_body_test void testSpanBody() { + using net::buffer_size; { using B = span_body; request req; @@ -42,7 +43,7 @@ struct span_body_test BEAST_EXPECTS(! ec, ec.message()); if(! BEAST_EXPECT(buf != boost::none)) return; - BEAST_EXPECT(net::buffer_size(buf->first) == 3); + BEAST_EXPECT(buffer_size(buf->first) == 3); BEAST_EXPECT(! buf->second); } { diff --git a/test/beast/websocket/test.hpp b/test/beast/websocket/test.hpp index 84157ec7..54dfe2d4 100644 --- a/test/beast/websocket/test.hpp +++ b/test/beast/websocket/test.hpp @@ -434,9 +434,8 @@ public: DynamicBuffer& buffer, ConstBufferSequence const& buffers) { - using net::buffer_copy; using net::buffer_size; - buffer.commit(buffer_copy( + buffer.commit(net::buffer_copy( buffer.prepare(buffer_size(buffers)), buffers)); } diff --git a/test/bench/wsload/wsload.cpp b/test/bench/wsload/wsload.cpp index 298c66fa..077a52d6 100644 --- a/test/bench/wsload/wsload.cpp +++ b/test/bench/wsload/wsload.cpp @@ -187,8 +187,9 @@ private: void do_write() { + using net::buffer_size; std::geometric_distribution dist{ - double(4) / net::buffer_size(tb_)}; + double(4) / buffer_size(tb_)}; ws_.async_write_some(true, boost::beast::buffers_prefix(dist(rng_), tb_), alloc_.wrap(std::bind( diff --git a/test/doc/exemplars.cpp b/test/doc/exemplars.cpp index 34bf3814..24ef49f9 100644 --- a/test/doc/exemplars.cpp +++ b/test/doc/exemplars.cpp @@ -164,7 +164,8 @@ struct BodyReader // The specification requires this to indicate "no error" ec = {}; - return net::buffer_size(buffers); + using net::buffer_size; + return buffer_size(buffers); } /** Called when the body is complete. diff --git a/test/doc/http_snippets.cpp b/test/doc/http_snippets.cpp index a950f585..eb1911ce 100644 --- a/test/doc/http_snippets.cpp +++ b/test/doc/http_snippets.cpp @@ -272,10 +272,11 @@ void fxx() { auto const cb3 = get_next_chunk_body(); // Manually emit a chunk by first writing the chunk-size header with the correct size + using net::buffer_size; net::write(sock, chunk_header{ - net::buffer_size(cb1) + - net::buffer_size(cb2) + - net::buffer_size(cb3)}); + buffer_size(cb1) + + buffer_size(cb2) + + buffer_size(cb3)}); // And then output the chunk body in three pieces ("chunk the chunk") net::write(sock, cb1); @@ -367,7 +368,8 @@ print_cxx14(message const& m) { ec = {}; std::cout << buffers(buffer); - sr.consume(net::buffer_size(buffer)); + using net::buffer_size; + sr.consume(buffer_size(buffer)); }); } while(! ec && ! sr.is_done()); @@ -394,7 +396,8 @@ struct lambda { ec = {}; std::cout << buffers(buffer); - sr.consume(net::buffer_size(buffer)); + using net::buffer_size; + sr.consume(buffer_size(buffer)); } }; @@ -435,7 +438,8 @@ split_print_cxx14(message const& m) { ec = {}; std::cout << buffers(buffer); - sr.consume(net::buffer_size(buffer)); + using net::buffer_size; + sr.consume(buffer_size(buffer)); }); } while(! sr.is_header_done()); @@ -449,7 +453,8 @@ split_print_cxx14(message const& m) { ec = {}; std::cout << buffers(buffer); - sr.consume(net::buffer_size(buffer)); + using net::buffer_size; + sr.consume(buffer_size(buffer)); }); } while(! ec && ! sr.is_done());