diff options
author | Bartek Iwańczuk <biwanczuk@gmail.com> | 2022-10-25 22:50:55 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-25 22:50:55 +0200 |
commit | af62e0833dbb23ac0af674b57e5938be97ad57c8 (patch) | |
tree | 025e5004d4a605f945e74ee456cf615c2d7d7352 /ext/net/02_tls.js | |
parent | 378e6a8c0369f3256cde8a595d3dbdfe4f1dc2f9 (diff) |
Revert "Revert "refactor(ext/net): clean up variadic network ops (#16… (#16422)
…392)" (#16417)"
This reverts commit 8e3f825c921b38141afa7a69a0664881c5c94461.
Diffstat (limited to 'ext/net/02_tls.js')
-rw-r--r-- | ext/net/02_tls.js | 69 |
1 files changed, 29 insertions, 40 deletions
diff --git a/ext/net/02_tls.js b/ext/net/02_tls.js index 04b25caf9..d3f906dbd 100644 --- a/ext/net/02_tls.js +++ b/ext/net/02_tls.js @@ -5,20 +5,7 @@ const core = window.Deno.core; const ops = core.ops; const { Listener, Conn } = window.__bootstrap.net; - - 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); - } + const { TypeError } = window.__bootstrap.primordials; function opStartTls(args) { return core.opAsync("op_tls_start", args); @@ -44,23 +31,28 @@ privateKey = undefined, alpnProtocols = undefined, }) { - const res = await opConnectTls({ - port, - hostname, - transport, - certFile, - caCerts, - certChain, - privateKey, - alpnProtocols, - }); - return new TlsConn(res.rid, res.remoteAddr, res.localAddr); + 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); } class TlsListener extends Listener { async accept() { - const res = await opAcceptTLS(this.rid); - return new TlsConn(res.rid, res.remoteAddr, res.localAddr); + 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); } } @@ -74,17 +66,14 @@ transport = "tcp", alpnProtocols = undefined, }) { - const res = opListenTls({ - port, - cert, - certFile, - key, - keyFile, - hostname, - transport, - alpnProtocols, - }); - return new TlsListener(res.rid, res.localAddr); + 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); } async function startTls( @@ -96,14 +85,14 @@ alpnProtocols = undefined, } = {}, ) { - const res = await opStartTls({ + const [rid, localAddr, remoteAddr] = await opStartTls({ rid: conn.rid, hostname, certFile, caCerts, alpnProtocols, }); - return new TlsConn(res.rid, res.remoteAddr, res.localAddr); + return new TlsConn(rid, remoteAddr, localAddr); } window.__bootstrap.tls = { |