diff options
Diffstat (limited to 'src/mongo/transport/session_asio.h')
-rw-r--r-- | src/mongo/transport/session_asio.h | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/mongo/transport/session_asio.h b/src/mongo/transport/session_asio.h index 263f76439e4..fa15a00710c 100644 --- a/src/mongo/transport/session_asio.h +++ b/src/mongo/transport/session_asio.h @@ -167,12 +167,16 @@ public: return sourceMessageImpl(baton); } - Future<void> waitForData() override { -#ifdef MONGO_CONFIG_SSL - if (_sslSocket) - return asio::async_read(*_sslSocket, asio::null_buffers(), UseFuture{}).ignoreValue(); -#endif - return asio::async_read(_socket, asio::null_buffers(), UseFuture{}).ignoreValue(); + Status waitForData() override { + ensureSync(); + asio::error_code ec; + getSocket().wait(asio::ip::tcp::socket::wait_read, ec); + return errorCodeToStatus(ec); + } + + Future<void> asyncWaitForData() override { + ensureAsync(); + return getSocket().async_wait(asio::ip::tcp::socket::wait_read, UseFuture{}); } Status sinkMessage(Message message) override { |