Signed-off-by: Yingxin <yingxin.cheng@intel.com>
});
}
+seastar::future<seastar::temporary_buffer<char>>
+Socket::read_exactly(size_t bytes) {
+ return in.read_exactly(bytes)
+ .then([this](auto buf) {
+ if (buf.empty()) {
+ throw std::system_error(make_error_code(error::read_eof));
+ }
+ return seastar::make_ready_future<tmp_buf>(std::move(buf));
+ });
+}
+
} // namespace ceph::net
seastar::future<bufferlist> read(size_t bytes);
using tmp_buf = seastar::temporary_buffer<char>;
using packet = seastar::net::packet;
- seastar::future<tmp_buf> read_exactly(size_t bytes) {
- return in.read_exactly(bytes);
- }
+ seastar::future<tmp_buf> read_exactly(size_t bytes);
seastar::future<> write(packet&& buf) {
return out.write(std::move(buf));