diff options
| author | David Lönnhager <david.l@mullvad.net> | 2021-07-07 17:20:08 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2021-07-13 15:57:38 +0200 |
| commit | c369659c38dc11ec780f32aea491f55251d244a5 (patch) | |
| tree | d3f0f4d309ac8ca56b2d6dc6edf2c2851defc77f | |
| parent | e52236b751a0d4a3ae9de9b6ba5569ef3faff495 (diff) | |
| download | mullvadvpn-c369659c38dc11ec780f32aea491f55251d244a5.tar.xz mullvadvpn-c369659c38dc11ec780f32aea491f55251d244a5.zip | |
Fix AsyncRead and AsyncWrite implementations
| -rw-r--r-- | mullvad-management-interface/src/lib.rs | 12 | ||||
| -rw-r--r-- | mullvad-rpc/src/tcp_stream.rs | 21 | ||||
| -rw-r--r-- | talpid-core/src/tunnel/openvpn/mod.rs | 6 |
3 files changed, 15 insertions, 24 deletions
diff --git a/mullvad-management-interface/src/lib.rs b/mullvad-management-interface/src/lib.rs index cc4c266af7..f47f2799df 100644 --- a/mullvad-management-interface/src/lib.rs +++ b/mullvad-management-interface/src/lib.rs @@ -8,7 +8,7 @@ use std::{ pin::Pin, task::{Context, Poll}, }; -use tokio::io::{AsyncRead, AsyncWrite}; +use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; use tonic::transport::{server::Connected, Endpoint, Server, Uri}; use tower::service_fn; @@ -111,8 +111,8 @@ impl<T: AsyncRead + AsyncWrite + Unpin> AsyncRead for StreamBox<T> { fn poll_read( mut self: Pin<&mut Self>, cx: &mut Context<'_>, - buf: &mut [u8], - ) -> Poll<std::io::Result<usize>> { + buf: &mut ReadBuf<'_>, + ) -> Poll<io::Result<()>> { Pin::new(&mut self.0).poll_read(cx, buf) } } @@ -121,15 +121,15 @@ impl<T: AsyncRead + AsyncWrite + Unpin> AsyncWrite for StreamBox<T> { mut self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &[u8], - ) -> Poll<std::io::Result<usize>> { + ) -> Poll<io::Result<usize>> { Pin::new(&mut self.0).poll_write(cx, buf) } - fn poll_flush(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<std::io::Result<()>> { + fn poll_flush(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<io::Result<()>> { Pin::new(&mut self.0).poll_flush(cx) } - fn poll_shutdown(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<std::io::Result<()>> { + fn poll_shutdown(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<io::Result<()>> { Pin::new(&mut self.0).poll_shutdown(cx) } } diff --git a/mullvad-rpc/src/tcp_stream.rs b/mullvad-rpc/src/tcp_stream.rs index 7bf89a47b2..ba414054d2 100644 --- a/mullvad-rpc/src/tcp_stream.rs +++ b/mullvad-rpc/src/tcp_stream.rs @@ -1,4 +1,3 @@ -use bytes::buf::Buf; use futures::channel::oneshot; use hyper::client::connect::{Connected, Connection}; use std::{ @@ -9,7 +8,7 @@ use std::{ task::{Context, Poll}, }; use tokio::{ - io::{AsyncRead, AsyncWrite}, + io::{AsyncRead, AsyncWrite, ReadBuf}, net::TcpStream as TokioTcpStream, }; @@ -79,23 +78,15 @@ impl AsyncWrite for TcpStream { self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &[u8], - ) -> Poll<Result<usize, io::Error>> { + ) -> Poll<io::Result<usize>> { self.do_stream(|stream| Pin::new(stream).poll_write(cx, buf)) } - fn poll_write_buf<B: Buf>( - self: Pin<&mut Self>, - cx: &mut Context<'_>, - buf: &mut B, - ) -> Poll<Result<usize, io::Error>> { - self.do_stream(|stream| Pin::new(stream).poll_write_buf(cx, buf)) - } - - fn poll_flush(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<(), io::Error>> { + fn poll_flush(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<io::Result<()>> { self.do_stream(|stream| Pin::new(stream).poll_flush(cx)) } - fn poll_shutdown(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<(), io::Error>> { + fn poll_shutdown(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<io::Result<()>> { self.do_stream(|stream| Pin::new(stream).poll_shutdown(cx)) } } @@ -104,8 +95,8 @@ impl AsyncRead for TcpStream { fn poll_read( self: Pin<&mut Self>, cx: &mut Context<'_>, - buf: &mut [u8], - ) -> Poll<Result<usize, io::Error>> { + buf: &mut ReadBuf<'_>, + ) -> Poll<io::Result<()>> { self.do_stream(|stream| Pin::new(stream).poll_read(cx, buf)) } } diff --git a/talpid-core/src/tunnel/openvpn/mod.rs b/talpid-core/src/tunnel/openvpn/mod.rs index 3bdbf3ff30..923fd8ed79 100644 --- a/talpid-core/src/tunnel/openvpn/mod.rs +++ b/talpid-core/src/tunnel/openvpn/mod.rs @@ -954,7 +954,7 @@ mod event_server { }; #[cfg(any(target_os = "linux", windows))] use talpid_types::ErrorExt; - use tokio::io::{AsyncRead, AsyncWrite}; + use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; use tonic::{ self, transport::{server::Connected, Server}, @@ -1205,8 +1205,8 @@ mod event_server { fn poll_read( mut self: Pin<&mut Self>, cx: &mut Context<'_>, - buf: &mut [u8], - ) -> Poll<std::io::Result<usize>> { + buf: &mut ReadBuf<'_>, + ) -> Poll<std::io::Result<()>> { Pin::new(&mut self.0).poll_read(cx, buf) } } |
