diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2022-10-25 20:32:51 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-25 20:32:51 +0200 |
commit | 8e3f825c921b38141afa7a69a0664881c5c94461 (patch) | |
tree | 09ffac0d9118d7d5214e247dbf55db06398f1bf9 /ext/net/02_tls.js | |
parent | 1f6aeb430b71c16c2d9525edba63032d9ac7b372 (diff) |
Revert "refactor(ext/net): clean up variadic network ops (#16392)" (#16417)
Should fix https://github.com/denoland/deno_std/issues/2807
Diffstat (limited to 'ext/net/02_tls.js')
-rw-r--r-- | ext/net/02_tls.js | 69 |
1 files changed, 40 insertions, 29 deletions
diff --git a/ext/net/02_tls.js b/ext/net/02_tls.js index d3f906dbd..04b25caf9 100644 --- a/ext/net/02_tls.js +++ b/ext/net/02_tls.js @@ -5,7 +5,20 @@ const core = window.Deno.core; const ops = core.ops; const { Listener, Conn } = window.__bootstrap.net; - const { TypeError } = window.__bootstrap.primordials; + + function opConnectTls( + args, + ) { + return core.opAsync("op_tls_connect", args); + } + + function opAcceptTLS(rid) { + return core.opAsync("op_tls_accept", rid); + } + + function opListenTls(args) { + return ops.op_tls_listen(args); + } function opStartTls(args) { return core.opAsync("op_tls_start", args); @@ -31,28 +44,23 @@ privateKey = undefined, alpnProtocols = undefined, }) { - if (transport !== "tcp") { - throw new TypeError(`Unsupported transport: '${transport}'`); - } - const [rid, localAddr, remoteAddr] = await core.opAsync( - "op_net_connect_tls", - { hostname, port }, - { certFile, caCerts, certChain, privateKey, alpnProtocols }, - ); - localAddr.transport = "tcp"; - remoteAddr.transport = "tcp"; - return new TlsConn(rid, remoteAddr, localAddr); + const res = await opConnectTls({ + port, + hostname, + transport, + certFile, + caCerts, + certChain, + privateKey, + alpnProtocols, + }); + return new TlsConn(res.rid, res.remoteAddr, res.localAddr); } class TlsListener extends Listener { async accept() { - const [rid, localAddr, remoteAddr] = await core.opAsync( - "op_net_accept_tls", - this.rid, - ); - localAddr.transport = "tcp"; - remoteAddr.transport = "tcp"; - return new TlsConn(rid, remoteAddr, localAddr); + const res = await opAcceptTLS(this.rid); + return new TlsConn(res.rid, res.remoteAddr, res.localAddr); } } @@ -66,14 +74,17 @@ transport = "tcp", alpnProtocols = undefined, }) { - if (transport !== "tcp") { - throw new TypeError(`Unsupported transport: '${transport}'`); - } - const [rid, localAddr] = ops.op_net_listen_tls( - { hostname, port }, - { cert, certFile, key, keyFile, alpnProtocols }, - ); - return new TlsListener(rid, localAddr); + const res = opListenTls({ + port, + cert, + certFile, + key, + keyFile, + hostname, + transport, + alpnProtocols, + }); + return new TlsListener(res.rid, res.localAddr); } async function startTls( @@ -85,14 +96,14 @@ alpnProtocols = undefined, } = {}, ) { - const [rid, localAddr, remoteAddr] = await opStartTls({ + const res = await opStartTls({ rid: conn.rid, hostname, certFile, caCerts, alpnProtocols, }); - return new TlsConn(rid, remoteAddr, localAddr); + return new TlsConn(res.rid, res.remoteAddr, res.localAddr); } window.__bootstrap.tls = { |