diff --git a/examples/basic.rs b/examples/basic.rs index 9a2da22..213838d 100644 --- a/examples/basic.rs +++ b/examples/basic.rs @@ -53,11 +53,10 @@ fn main() { server_name.map_or_else(|| panic!("NO HOST"), str::to_string) }, remote_port: "443".to_string(), - tls_config: - TLSConfig::FILE { - certificate_path: "/dev/shm/exp/certs/prime256v1/apple.com.crt".to_string(), - private_key_path: "/dev/shm/exp/certs/prime256v1/apple.com.key".to_string(), - }, + tls_config: TLSConfig::FILE { + certificate_path: "/dev/shm/exp/certs/prime256v1/apple.com.crt".to_string(), + private_key_path: "/dev/shm/exp/certs/prime256v1/apple.com.key".to_string(), + }, }, ); diff --git a/src/data.rs b/src/data.rs index f28fc03..4c68048 100644 --- a/src/data.rs +++ b/src/data.rs @@ -74,7 +74,6 @@ impl DownStreamInner { } else if byte_count == -1 { continue; } - } else { } } } @@ -138,7 +137,6 @@ impl DownStreamInner { } else if byte_count == -1 { continue; } - } else { } } } @@ -186,7 +184,7 @@ impl DownStreamInner { }, } } - return Some(data_length); + Some(data_length) } } @@ -257,7 +255,6 @@ impl UpStreamInner { } else if byte_count == -1 { continue; } - } else { } } } @@ -317,7 +314,6 @@ impl UpStreamInner { } else if byte_count == -1 { continue; } - } else { } } } @@ -365,6 +361,6 @@ impl UpStreamInner { }, } } - return Some(data_length); + Some(data_length) } } diff --git a/src/lib.rs b/src/lib.rs index b30a64e..a530faf 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -61,27 +61,25 @@ //! } //! } //! -//! fn main() { -//! // Create new SSLRelay object -//! let mut relay = sslrelay::SSLRelay::new( -//! Handler, -//! RelayConfig { -//! downstream_data_type: TCPDataType::TLS, -//! upstream_data_type: TCPDataType::TLS, -//! bind_host: "0.0.0.0".to_string(), -//! bind_port: "443".to_string(), -//! remote_host: |_| "remote.com", -//! remote_port: "443".to_string(), -//! tls_config: TLSConfig::FILE { -//! certificate_path: "./tls.crt".to_string(), -//! private_key_path: "./tls.key".to_string(), -//! }, +//! // Create new SSLRelay object +//! let mut relay = sslrelay::SSLRelay::new( +//! Handler, +//! RelayConfig { +//! downstream_data_type: TCPDataType::TLS, +//! upstream_data_type: TCPDataType::TLS, +//! bind_host: "0.0.0.0".to_string(), +//! bind_port: "443".to_string(), +//! remote_host: |_| "remote.com", +//! remote_port: "443".to_string(), +//! tls_config: TLSConfig::FILE { +//! certificate_path: "./tls.crt".to_string(), +//! private_key_path: "./tls.key".to_string(), //! }, -//! ); +//! }, +//! ); //! -//! // Start listening -//! relay.start(); -//! } +//! // Start listening +//! relay.start(); //! ``` use openssl::{ @@ -146,6 +144,12 @@ pub enum TLSConfig { certificate: Vec, private_key: Vec, }, + CALLBACK { + servername_callback: fn( + &mut openssl::ssl::SslRef, + &mut openssl::ssl::SslAlert, + ) -> Result<(), openssl::ssl::SniError>, + }, NONE, } diff --git a/src/relay.rs b/src/relay.rs index c5be34c..c39bca3 100644 --- a/src/relay.rs +++ b/src/relay.rs @@ -16,7 +16,7 @@ impl { @@ -50,7 +51,7 @@ impl { let handler_clone = self.handlers.as_ref().unwrap().clone(); - let r_host = rhost.clone(); + let r_host = rhost; let r_port = rport.clone(); let this_conn_id = conn_id; @@ -154,6 +155,11 @@ impl { + acceptor.set_servername_callback(*servername_callback); + } TLSConfig::NONE => { panic!( "[SSLRelay Error] Specified NONE for TLSConfig and downstream_data_type as \ diff --git a/src/tcp.rs b/src/tcp.rs index 115ae6d..95d21c4 100644 --- a/src/tcp.rs +++ b/src/tcp.rs @@ -311,9 +311,8 @@ impl { Self::handle_error( format!( - "Can't connect to remote host: {}\nErr: {}", - format!("{}:{}", remote_host, remote_port), - e + "Can't connect to remote host: {}:{}\nErr: {}", + remote_host, remote_port, e ) .as_str(), ); @@ -321,7 +320,7 @@ impl { let mut sslbuilder = SslConnector::builder(SslMethod::tls()).unwrap(); @@ -334,9 +333,8 @@ impl { Self::handle_error( format!( - "Can't connect to remote host: {}\nErr: {}", - format!("{}:{}", remote_host, remote_port), - e + "Can't connect to remote host: {}:{}\nErr: {}", + remote_host, remote_port, e ) .as_str(), ); @@ -357,7 +355,7 @@ impl