From cbc2108525f3a01f4a944104457939b741c9898b Mon Sep 17 00:00:00 2001 From: Nayeem Rahman Date: Mon, 4 Jan 2021 23:15:52 +0000 Subject: feat(cli/standalone): support runtime flags for deno compile (#8738) --- runtime/ops/websocket.rs | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'runtime/ops/websocket.rs') diff --git a/runtime/ops/websocket.rs b/runtime/ops/websocket.rs index a5681bc52..812844f39 100644 --- a/runtime/ops/websocket.rs +++ b/runtime/ops/websocket.rs @@ -23,8 +23,8 @@ use http::{Method, Request, Uri}; use serde::Deserialize; use std::borrow::Cow; use std::cell::RefCell; -use std::fs::File; use std::io::BufReader; +use std::io::Cursor; use std::rc::Rc; use std::sync::Arc; use tokio::net::TcpStream; @@ -39,20 +39,20 @@ use tokio_tungstenite::{client_async, WebSocketStream}; use webpki::DNSNameRef; #[derive(Clone)] -struct WsCaFile(String); +struct WsCaData(Vec); #[derive(Clone)] struct WsUserAgent(String); pub fn init( rt: &mut deno_core::JsRuntime, - maybe_ca_file: Option<&str>, + ca_data: Option>, user_agent: String, ) { { let op_state = rt.op_state(); let mut state = op_state.borrow_mut(); - if let Some(ca_file) = maybe_ca_file { - state.put::(WsCaFile(ca_file.to_string())); + if let Some(ca_data) = ca_data { + state.put::(WsCaData(ca_data)); } state.put::(WsUserAgent(user_agent)); } @@ -130,7 +130,7 @@ pub async fn op_ws_create( ); } - let maybe_ca_file = state.borrow().try_borrow::().cloned(); + let ws_ca_data = state.borrow().try_borrow::().cloned(); let user_agent = state.borrow().borrow::().0.clone(); let uri: Uri = args.url.parse()?; let mut request = Request::builder().method(Method::GET).uri(&uri); @@ -163,9 +163,8 @@ pub async fn op_ws_create( .root_store .add_server_trust_anchors(&webpki_roots::TLS_SERVER_ROOTS); - if let Some(ws_ca_file) = maybe_ca_file { - let key_file = File::open(ws_ca_file.0)?; - let reader = &mut BufReader::new(key_file); + if let Some(ws_ca_data) = ws_ca_data { + let reader = &mut BufReader::new(Cursor::new(ws_ca_data.0)); config.root_store.add_pem_file(reader).unwrap(); } -- cgit v1.2.3