summaryrefslogtreecommitdiff
path: root/cli/js/ops
diff options
context:
space:
mode:
Diffstat (limited to 'cli/js/ops')
-rw-r--r--cli/js/ops/net.ts80
-rw-r--r--cli/js/ops/tls.ts15
2 files changed, 36 insertions, 59 deletions
diff --git a/cli/js/ops/net.ts b/cli/js/ops/net.ts
index 25f3a8322..7734e8811 100644
--- a/cli/js/ops/net.ts
+++ b/cli/js/ops/net.ts
@@ -1,9 +1,18 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
import { sendSync, sendAsync } from "./dispatch_json.ts";
-export type Transport = "tcp" | "udp";
-// TODO support other types:
-// export type Transport = "tcp" | "tcp4" | "tcp6" | "unix" | "unixpacket";
+export interface NetAddr {
+ transport: "tcp" | "udp";
+ hostname: string;
+ port: number;
+}
+
+export interface UnixAddr {
+ transport: "unix" | "unixpacket";
+ address: string;
+}
+
+export type Addr = NetAddr | UnixAddr;
export enum ShutdownMode {
// See http://man7.org/linux/man-pages/man2/shutdown.2.html
@@ -19,35 +28,22 @@ export function shutdown(rid: number, how: ShutdownMode): void {
interface AcceptResponse {
rid: number;
- localAddr: {
- hostname: string;
- port: number;
- transport: Transport;
- };
- remoteAddr: {
- hostname: string;
- port: number;
- transport: Transport;
- };
+ localAddr: Addr;
+ remoteAddr: Addr;
}
-export function accept(rid: number): Promise<AcceptResponse> {
- return sendAsync("op_accept", { rid });
+export function accept(
+ rid: number,
+ transport: string
+): Promise<AcceptResponse> {
+ return sendAsync("op_accept", { rid, transport });
}
-export interface ListenRequest {
- transport: Transport;
- hostname: string;
- port: number;
-}
+export type ListenRequest = Addr;
interface ListenResponse {
rid: number;
- localAddr: {
- hostname: string;
- port: number;
- transport: Transport;
- };
+ localAddr: Addr;
}
export function listen(args: ListenRequest): ListenResponse {
@@ -56,23 +52,11 @@ export function listen(args: ListenRequest): ListenResponse {
interface ConnectResponse {
rid: number;
- localAddr: {
- hostname: string;
- port: number;
- transport: Transport;
- };
- remoteAddr: {
- hostname: string;
- port: number;
- transport: Transport;
- };
+ localAddr: Addr;
+ remoteAddr: Addr;
}
-export interface ConnectRequest {
- transport: Transport;
- hostname: string;
- port: number;
-}
+export type ConnectRequest = Addr;
export function connect(args: ConnectRequest): Promise<ConnectResponse> {
return sendAsync("op_connect", args);
@@ -80,26 +64,20 @@ export function connect(args: ConnectRequest): Promise<ConnectResponse> {
interface ReceiveResponse {
size: number;
- remoteAddr: {
- hostname: string;
- port: number;
- transport: Transport;
- };
+ remoteAddr: Addr;
}
export function receive(
rid: number,
+ transport: string,
zeroCopy: Uint8Array
): Promise<ReceiveResponse> {
- return sendAsync("op_receive", { rid }, zeroCopy);
+ return sendAsync("op_receive", { rid, transport }, zeroCopy);
}
-export interface SendRequest {
+export type SendRequest = {
rid: number;
- hostname: string;
- port: number;
- transport: Transport;
-}
+} & Addr;
export async function send(
args: SendRequest,
diff --git a/cli/js/ops/tls.ts b/cli/js/ops/tls.ts
index e52143cb0..234e569dd 100644
--- a/cli/js/ops/tls.ts
+++ b/cli/js/ops/tls.ts
@@ -1,9 +1,8 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
import { sendAsync, sendSync } from "./dispatch_json.ts";
-import { Transport } from "./net.ts";
export interface ConnectTLSRequest {
- transport: Transport;
+ transport: "tcp";
hostname: string;
port: number;
certFile?: string;
@@ -14,12 +13,12 @@ interface ConnectTLSResponse {
localAddr: {
hostname: string;
port: number;
- transport: Transport;
+ transport: "tcp";
};
remoteAddr: {
hostname: string;
port: number;
- transport: Transport;
+ transport: "tcp";
};
}
@@ -34,12 +33,12 @@ interface AcceptTLSResponse {
localAddr: {
hostname: string;
port: number;
- transport: Transport;
+ transport: "tcp";
};
remoteAddr: {
hostname: string;
port: number;
- transport: Transport;
+ transport: "tcp";
};
}
@@ -50,7 +49,7 @@ export function acceptTLS(rid: number): Promise<AcceptTLSResponse> {
export interface ListenTLSRequest {
port: number;
hostname: string;
- transport: Transport;
+ transport: "tcp";
certFile: string;
keyFile: string;
}
@@ -60,7 +59,7 @@ interface ListenTLSResponse {
localAddr: {
hostname: string;
port: number;
- transport: Transport;
+ transport: "tcp";
};
}