diff options
author | Josh Matthews <josh@joshmatthews.net> | 2020-05-29 13:34:55 -0400 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2020-06-09 15:03:18 -0400 |
commit | 433c154595f62d80210992cf889fdb8fd65848bc (patch) | |
tree | d3b6d4f30e26f2737836e970d2ffce3db33a59ea /components/net/websocket_loader.rs | |
parent | 0ce2aa917a4fa11971d91315182e350577572478 (diff) | |
download | servo-433c154595f62d80210992cf889fdb8fd65848bc.tar.gz servo-433c154595f62d80210992cf889fdb8fd65848bc.zip |
net: Allow SSL websockets to use dynamic list of certs as well.
Diffstat (limited to 'components/net/websocket_loader.rs')
-rw-r--r-- | components/net/websocket_loader.rs | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/components/net/websocket_loader.rs b/components/net/websocket_loader.rs index 17e06705709..bece51173bb 100644 --- a/components/net/websocket_loader.rs +++ b/components/net/websocket_loader.rs @@ -38,6 +38,8 @@ struct Client<'a> { event_sender: &'a IpcSender<WebSocketNetworkEvent>, protocol_in_use: Option<String>, certificate_path: Option<String>, + extra_certs: ExtraCerts, + connection_certs: ConnectionCerts, } impl<'a> Factory for Client<'a> { @@ -167,8 +169,12 @@ impl<'a> Handler for Client<'a> { WebSocketErrorKind::Protocol, format!("Unable to parse domain from {}. Needed for SSL.", url), ))?; - let tls_config = - create_tls_config(&certs, ALPN_H1, ExtraCerts::new(), ConnectionCerts::new()); + let tls_config = create_tls_config( + &certs, + ALPN_H1, + self.extra_certs.clone(), + self.connection_certs.clone(), + ); tls_config .build() .connect(domain, stream) @@ -182,6 +188,8 @@ pub fn init( dom_action_receiver: IpcReceiver<WebSocketDomAction>, http_state: Arc<HttpState>, certificate_path: Option<String>, + extra_certs: ExtraCerts, + connection_certs: ConnectionCerts, ) { thread::Builder::new() .name(format!("WebSocket connection to {}", req_builder.url)) @@ -230,6 +238,8 @@ pub fn init( event_sender: &resource_event_sender, protocol_in_use: None, certificate_path, + extra_certs, + connection_certs, }; let mut ws = WebSocket::new(client).unwrap(); |