From 677d046d78c29d011afb285c283aa756cf924b8e Mon Sep 17 00:00:00 2001 From: vkill Date: Fri, 16 Dec 2022 13:40:46 +0800 Subject: [PATCH] Fix compile on windows --- async-ssh2-lite/src/agent.rs | 2 +- async-ssh2-lite/src/session.rs | 2 +- async-ssh2-lite/src/util.rs | 11 +++++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/async-ssh2-lite/src/agent.rs b/async-ssh2-lite/src/agent.rs index 9aa6ca3..0da497d 100644 --- a/async-ssh2-lite/src/agent.rs +++ b/async-ssh2-lite/src/agent.rs @@ -44,7 +44,7 @@ where { pub fn new(stream: S) -> Result { let mut session = get_session(None)?; - session.set_tcp_stream(stream.as_raw_socket()); + session.set_tcp_stream(crate::util::RawSocketWrapper(stream.as_raw_socket())); let stream = Arc::new(stream); diff --git a/async-ssh2-lite/src/session.rs b/async-ssh2-lite/src/session.rs index ccf23ef..3473967 100644 --- a/async-ssh2-lite/src/session.rs +++ b/async-ssh2-lite/src/session.rs @@ -62,7 +62,7 @@ where configuration: impl Into>, ) -> Result { let mut session = get_session(configuration)?; - session.set_tcp_stream(stream.as_raw_socket()); + session.set_tcp_stream(crate::util::RawSocketWrapper(stream.as_raw_socket())); let stream = Arc::new(stream); diff --git a/async-ssh2-lite/src/util.rs b/async-ssh2-lite/src/util.rs index ff2e1d3..924ad56 100644 --- a/async-ssh2-lite/src/util.rs +++ b/async-ssh2-lite/src/util.rs @@ -29,3 +29,14 @@ impl ConnectInfo { Self::Unix(path.as_ref().into()) } } + +#[cfg(windows)] +pub struct RawSocketWrapper(pub std::os::windows::io::RawSocket); + +#[cfg(windows)] +impl std::os::windows::io::AsRawSocket for RawSocketWrapper { + #[inline] + fn as_raw_socket(&self) -> std::os::windows::io::RawSocket { + self.0 + } +}