diff options
Diffstat (limited to 'ext/net/01_net.js')
-rw-r--r-- | ext/net/01_net.js | 62 |
1 files changed, 33 insertions, 29 deletions
diff --git a/ext/net/01_net.js b/ext/net/01_net.js index c81ca61c5..0f9a65122 100644 --- a/ext/net/01_net.js +++ b/ext/net/01_net.js @@ -10,6 +10,23 @@ import { } from "ext:deno_web/06_streams.js"; import * as abortSignal from "ext:deno_web/03_abort_signal.js"; import { SymbolDispose } from "ext:deno_web/00_infra.js"; +const { + op_dns_resolve, + op_net_accept_tcp, + op_net_accept_unix, + op_net_connect_tcp, + op_net_connect_unix, + op_net_recv_udp, + op_net_recv_unixpacket, + op_net_send_udp, + op_net_send_unixpacket, + op_net_set_multi_loopback_udp, + op_net_set_multi_ttl_udp, + op_net_join_multi_v4_udp, + op_net_join_multi_v6_udp, + op_net_leave_multi_v4_udp, + op_net_leave_multi_v6_udp, +} = core.ensureFastOps(); const { Error, @@ -46,7 +63,7 @@ async function resolveDns(query, recordType, options) { } try { - return await core.opAsync("op_dns_resolve", { + return await op_dns_resolve({ cancelRid, query, recordType, @@ -200,10 +217,10 @@ class Listener { let promise; switch (this.addr.transport) { case "tcp": - promise = core.opAsync("op_net_accept_tcp", this.rid); + promise = op_net_accept_tcp(this.rid); break; case "unix": - promise = core.opAsync("op_net_accept_unix", this.rid); + promise = op_net_accept_unix(this.rid); break; default: throw new Error(`Unsupported transport: ${this.addr.transport}`); @@ -294,8 +311,7 @@ class Datagram { } async joinMulticastV4(addr, multiInterface) { - await core.opAsync( - "op_net_join_multi_v4_udp", + await op_net_join_multi_v4_udp( this.rid, addr, multiInterface, @@ -303,22 +319,19 @@ class Datagram { return { leave: () => - core.opAsync( - "op_net_leave_multi_v4_udp", + op_net_leave_multi_v4_udp( this.rid, addr, multiInterface, ), setLoopback: (loopback) => - core.opAsync( - "op_net_set_multi_loopback_udp", + op_net_set_multi_loopback_udp( this.rid, true, loopback, ), setTTL: (ttl) => - core.opAsync( - "op_net_set_multi_ttl_udp", + op_net_set_multi_ttl_udp( this.rid, ttl, ), @@ -326,8 +339,7 @@ class Datagram { } async joinMulticastV6(addr, multiInterface) { - await core.opAsync( - "op_net_join_multi_v6_udp", + await op_net_join_multi_v6_udp( this.rid, addr, multiInterface, @@ -335,15 +347,13 @@ class Datagram { return { leave: () => - core.opAsync( - "op_net_leave_multi_v6_udp", + op_net_leave_multi_v6_udp( this.rid, addr, multiInterface, ), setLoopback: (loopback) => - core.opAsync( - "op_net_set_multi_loopback_udp", + op_net_set_multi_loopback_udp( this.rid, false, loopback, @@ -357,8 +367,7 @@ class Datagram { let remoteAddr; switch (this.addr.transport) { case "udp": { - ({ 0: nread, 1: remoteAddr } = await core.opAsync( - "op_net_recv_udp", + ({ 0: nread, 1: remoteAddr } = await op_net_recv_udp( this.rid, buf, )); @@ -367,8 +376,7 @@ class Datagram { } case "unixpacket": { let path; - ({ 0: nread, 1: path } = await core.opAsync( - "op_net_recv_unixpacket", + ({ 0: nread, 1: path } = await op_net_recv_unixpacket( this.rid, buf, )); @@ -385,15 +393,13 @@ class Datagram { async send(p, opts) { switch (this.addr.transport) { case "udp": - return await core.opAsync( - "op_net_send_udp", + return await op_net_send_udp( this.rid, { hostname: opts.hostname ?? "127.0.0.1", port: opts.port }, p, ); case "unixpacket": - return await core.opAsync( - "op_net_send_unixpacket", + return await op_net_send_unixpacket( this.rid, opts.path, p, @@ -484,8 +490,7 @@ function createListenDatagram(udpOpFn, unixOpFn) { async function connect(args) { switch (args.transport ?? "tcp") { case "tcp": { - const { 0: rid, 1: localAddr, 2: remoteAddr } = await core.opAsync( - "op_net_connect_tcp", + const { 0: rid, 1: localAddr, 2: remoteAddr } = await op_net_connect_tcp( { hostname: args.hostname ?? "127.0.0.1", port: args.port, @@ -496,8 +501,7 @@ async function connect(args) { return new TcpConn(rid, remoteAddr, localAddr); } case "unix": { - const { 0: rid, 1: localAddr, 2: remoteAddr } = await core.opAsync( - "op_net_connect_unix", + const { 0: rid, 1: localAddr, 2: remoteAddr } = await op_net_connect_unix( args.path, ); return new UnixConn( |