mirror of
https://github.com/denoland/deno.git
synced 2025-09-26 12:19:12 +00:00
feat: Add Deno.dialTLS()
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
This commit is contained in:
parent
4ff04ad96f
commit
045e74bb39
12 changed files with 206 additions and 22 deletions
|
@ -36,6 +36,7 @@ use tokio::io::{AsyncRead, AsyncWrite};
|
|||
use tokio::net::TcpStream;
|
||||
use tokio::sync::mpsc;
|
||||
use tokio_process;
|
||||
use tokio_rustls::client::TlsStream;
|
||||
|
||||
pub type ResourceId = u32; // Sometimes referred to RID.
|
||||
|
||||
|
@ -89,6 +90,7 @@ enum Repr {
|
|||
// See: https://github.com/tokio-rs/tokio/issues/846
|
||||
TcpListener(tokio::net::TcpListener, Option<futures::task::Task>),
|
||||
TcpStream(tokio::net::TcpStream),
|
||||
TlsStream(Box<TlsStream<TcpStream>>),
|
||||
HttpBody(HttpBody),
|
||||
Repl(Arc<Mutex<Repl>>),
|
||||
// Enum size is bounded by the largest variant.
|
||||
|
@ -134,6 +136,7 @@ fn inspect_repr(repr: &Repr) -> String {
|
|||
Repr::FsFile(_) => "fsFile",
|
||||
Repr::TcpListener(_, _) => "tcpListener",
|
||||
Repr::TcpStream(_) => "tcpStream",
|
||||
Repr::TlsStream(_) => "tlsStream",
|
||||
Repr::HttpBody(_) => "httpBody",
|
||||
Repr::Repl(_) => "repl",
|
||||
Repr::Child(_) => "child",
|
||||
|
@ -249,6 +252,7 @@ impl DenoAsyncRead for Resource {
|
|||
Repr::FsFile(ref mut f) => f.poll_read(buf),
|
||||
Repr::Stdin(ref mut f) => f.poll_read(buf),
|
||||
Repr::TcpStream(ref mut f) => f.poll_read(buf),
|
||||
Repr::TlsStream(ref mut f) => f.poll_read(buf),
|
||||
Repr::HttpBody(ref mut f) => f.poll_read(buf),
|
||||
Repr::ChildStdout(ref mut f) => f.poll_read(buf),
|
||||
Repr::ChildStderr(ref mut f) => f.poll_read(buf),
|
||||
|
@ -289,6 +293,7 @@ impl DenoAsyncWrite for Resource {
|
|||
Repr::Stdout(ref mut f) => f.poll_write(buf),
|
||||
Repr::Stderr(ref mut f) => f.poll_write(buf),
|
||||
Repr::TcpStream(ref mut f) => f.poll_write(buf),
|
||||
Repr::TlsStream(ref mut f) => f.poll_write(buf),
|
||||
Repr::ChildStdin(ref mut f) => f.poll_write(buf),
|
||||
_ => {
|
||||
return Err(bad_resource());
|
||||
|
@ -332,6 +337,14 @@ pub fn add_tcp_stream(stream: tokio::net::TcpStream) -> Resource {
|
|||
Resource { rid }
|
||||
}
|
||||
|
||||
pub fn add_tls_stream(stream: TlsStream<TcpStream>) -> Resource {
|
||||
let rid = new_rid();
|
||||
let mut tg = RESOURCE_TABLE.lock().unwrap();
|
||||
let r = tg.insert(rid, Repr::TlsStream(Box::new(stream)));
|
||||
assert!(r.is_none());
|
||||
Resource { rid }
|
||||
}
|
||||
|
||||
pub fn add_reqwest_body(body: ReqwestDecoder) -> Resource {
|
||||
let rid = new_rid();
|
||||
let mut tg = RESOURCE_TABLE.lock().unwrap();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue