Fix bug where the second buffer in an array of two buffers may be ignored if the first buffer is empty.
diff --git a/asio/include/asio/detail/buffer_sequence_adapter.hpp b/asio/include/asio/detail/buffer_sequence_adapter.hpp index f648d85..015e11f 100644 --- a/asio/include/asio/detail/buffer_sequence_adapter.hpp +++ b/asio/include/asio/detail/buffer_sequence_adapter.hpp
@@ -290,7 +290,8 @@ static Buffer first(const boost::array<Elem, 2>& buffer_sequence) { - return Buffer(buffer_sequence[0]); + return Buffer(asio::buffer_size(buffer_sequence[0]) != 0 + ? buffer_sequence[0] : buffer_sequence[1]); } private: @@ -343,7 +344,8 @@ static Buffer first(const std::array<Elem, 2>& buffer_sequence) { - return Buffer(buffer_sequence[0]); + return Buffer(asio::buffer_size(buffer_sequence[0]) != 0 + ? buffer_sequence[0] : buffer_sequence[1]); } private: