aboutsummaryrefslogtreecommitdiff
path: root/src/transport/websocket.rs
diff options
context:
space:
mode:
authorGravatar sunmy2019 <59365878+sunmy2019@users.noreply.github.com> 2024-02-18 17:17:17 +0800
committerGravatar GitHub <noreply@github.com> 2024-02-18 17:17:17 +0800
commit4ac53a5a39e74d5eb12bee22d0fd4783acaae670 (patch)
treeca442e698e6870b7f6c5053b54fff82e2a95626e /src/transport/websocket.rs
parent7251759bdaf4b7d170575bdd6d2062bbd9f338bb (diff)
downloadrathole-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.rs14
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),
}
}
}