Skip to content

Commit c7d3289

Browse files
committed
Use recv syscall instead of read in do_read_some()
1 parent da68d1c commit c7d3289

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

include/seastar/core/posix.hh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,13 +225,13 @@ public:
225225
throw_system_error_on(r == -1, "read");
226226
return { size_t(r) };
227227
}
228-
std::optional<ssize_t> recv(void* buffer, size_t len, int flags) {
228+
std::optional<size_t> recv(void* buffer, size_t len, int flags) {
229229
auto r = ::recv(_fd, buffer, len, flags);
230230
if (r == -1 && errno == EAGAIN) {
231231
return {};
232232
}
233233
throw_system_error_on(r == -1, "recv");
234-
return { ssize_t(r) };
234+
return { size_t(r) };
235235
}
236236
std::optional<size_t> recvmsg(msghdr* mh, int flags) {
237237
auto r = ::recvmsg(_fd, mh, flags);

src/core/reactor.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ future<> reactor::do_connect(pollable_fd_state& pfd, socket_address& sa) {
258258
future<size_t>
259259
reactor::do_read_some(pollable_fd_state& fd, void* buffer, size_t len) {
260260
return readable(fd).then([this, &fd, buffer, len] () mutable {
261-
auto r = fd.fd.read(buffer, len);
261+
auto r = fd.fd.recv(buffer, len, 0);
262262
if (!r) {
263263
return do_read_some(fd, buffer, len);
264264
}
@@ -273,7 +273,7 @@ future<temporary_buffer<char>>
273273
reactor::do_read_some(pollable_fd_state& fd, internal::buffer_allocator* ba) {
274274
return fd.readable().then([this, &fd, ba] {
275275
auto buffer = ba->allocate_buffer();
276-
auto r = fd.fd.read(buffer.get_write(), buffer.size());
276+
auto r = fd.fd.recv(buffer.get_write(), buffer.size(), 0);
277277
if (!r) {
278278
// Speculation failure, try again with real polling this time
279279
// Note we release the buffer and will reallocate it when poll

0 commit comments

Comments
 (0)