diff options
author | 2024-02-18 17:17:17 +0800 | |
---|---|---|
committer | 2024-02-18 17:17:17 +0800 | |
commit | 4ac53a5a39e74d5eb12bee22d0fd4783acaae670 (patch) | |
tree | ca442e698e6870b7f6c5053b54fff82e2a95626e /src/transport/websocket.rs | |
parent | 7251759bdaf4b7d170575bdd6d2062bbd9f338bb (diff) | |
download | rathole-4ac53a5a39e74d5eb12bee22d0fd4783acaae670.tar.gz rathole-4ac53a5a39e74d5eb12bee22d0fd4783acaae670.tar.zst rathole-4ac53a5a39e74d5eb12bee22d0fd4783acaae670.zip |
feat: optional rustls support (#330)
* initial implementation of rustls support
* Refactor create_self_signed_cert.sh script
* resolve lint errors
* Fix handling of Option in tls.rs
* Update cargo-hack check command and feature dependencies
* fix missing point
* Add conditional check to skip test if client or server is not enabled
* clean up things
* fix for windows CI
* try fixing Windows CI
* Update src/main.rs
* Update src/transport/websocket.rs
* add missing messages
* split the tls mod
Co-authored-by: Ning Sun <n@sunng.info>
Diffstat (limited to 'src/transport/websocket.rs')
-rw-r--r-- | src/transport/websocket.rs | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/transport/websocket.rs b/src/transport/websocket.rs index ec6177d..228eff7 100644 --- a/src/transport/websocket.rs +++ b/src/transport/websocket.rs @@ -13,10 +13,14 @@ use futures_core::stream::Stream; use futures_sink::Sink; use tokio::io::{AsyncBufRead, AsyncRead, AsyncWrite, ReadBuf}; use tokio::net::{TcpListener, TcpStream, ToSocketAddrs}; -use tokio_native_tls::TlsStream; -use tokio_tungstenite::tungstenite::protocol::WebSocketConfig; -use tokio_tungstenite::{accept_async_with_config, client_async_with_config}; -use tokio_tungstenite::{tungstenite::protocol::Message, WebSocketStream}; + +#[cfg(any(feature = "native-tls", feature = "rustls"))] +use super::tls::get_tcpstream; +#[cfg(any(feature = "native-tls", feature = "rustls"))] +use super::tls::TlsStream; + +use tokio_tungstenite::tungstenite::protocol::{Message, WebSocketConfig}; +use tokio_tungstenite::{accept_async_with_config, client_async_with_config, WebSocketStream}; use tokio_util::io::StreamReader; use url::Url; @@ -30,7 +34,7 @@ impl TransportStream { fn get_tcpstream(&self) -> &TcpStream { match self { TransportStream::Insecure(s) => s, - TransportStream::Secure(s) => s.get_ref().get_ref().get_ref(), + TransportStream::Secure(s) => get_tcpstream(s), } } } |