diff options
| author | Nayeem Rahman <nayeemrmn99@gmail.com> | 2021-01-04 23:15:52 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-05 00:15:52 +0100 |
| commit | cbc2108525f3a01f4a944104457939b741c9898b (patch) | |
| tree | 58f85bcd8998101762623737dc272bff81cad15a /runtime/ops/websocket.rs | |
| parent | 444eca80a93c2631623578c1febdedb43575a911 (diff) | |
feat(cli/standalone): support runtime flags for deno compile (#8738)
Diffstat (limited to 'runtime/ops/websocket.rs')
| -rw-r--r-- | runtime/ops/websocket.rs | 17 |
1 files changed, 8 insertions, 9 deletions
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<u8>); #[derive(Clone)] struct WsUserAgent(String); pub fn init( rt: &mut deno_core::JsRuntime, - maybe_ca_file: Option<&str>, + ca_data: Option<Vec<u8>>, 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>(WsCaFile(ca_file.to_string())); + if let Some(ca_data) = ca_data { + state.put::<WsCaData>(WsCaData(ca_data)); } state.put::<WsUserAgent>(WsUserAgent(user_agent)); } @@ -130,7 +130,7 @@ pub async fn op_ws_create( ); } - let maybe_ca_file = state.borrow().try_borrow::<WsCaFile>().cloned(); + let ws_ca_data = state.borrow().try_borrow::<WsCaData>().cloned(); let user_agent = state.borrow().borrow::<WsUserAgent>().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(); } |
