summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2021-07-07 17:20:08 +0200
committerDavid Lönnhager <david.l@mullvad.net>2021-07-13 15:57:38 +0200
commitc369659c38dc11ec780f32aea491f55251d244a5 (patch)
treed3f0f4d309ac8ca56b2d6dc6edf2c2851defc77f
parente52236b751a0d4a3ae9de9b6ba5569ef3faff495 (diff)
downloadmullvadvpn-c369659c38dc11ec780f32aea491f55251d244a5.tar.xz
mullvadvpn-c369659c38dc11ec780f32aea491f55251d244a5.zip
Fix AsyncRead and AsyncWrite implementations
-rw-r--r--mullvad-management-interface/src/lib.rs12
-rw-r--r--mullvad-rpc/src/tcp_stream.rs21
-rw-r--r--talpid-core/src/tunnel/openvpn/mod.rs6
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)
}
}