diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2019-09-20 18:32:18 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-20 18:32:18 -0400 |
commit | 97bb2bdb79cbd0a400c643e7be0029440cb15633 (patch) | |
tree | 92c883d38b7af413fcbfbac82f17775a7064dfec /cli | |
parent | 93b7acf99d6456e6e194c03f024b788ce5adf20e (diff) |
dial/listen API change (#3000)
Previously: dial("tcp", "deno.land:80")
Now: dial({ hostname: "deno.land", port: 80, transport: "tcp" })
Similarly with listen().
Diffstat (limited to 'cli')
-rw-r--r-- | cli/ops/net.rs | 25 | ||||
-rw-r--r-- | cli/tests/echo_server.ts | 3 |
2 files changed, 17 insertions, 11 deletions
diff --git a/cli/ops/net.rs b/cli/ops/net.rs index 11bf410d1..507eff504 100644 --- a/cli/ops/net.rs +++ b/cli/ops/net.rs @@ -49,8 +49,9 @@ pub fn op_accept( #[derive(Deserialize)] struct DialArgs { - network: String, - address: String, + transport: String, + hostname: String, + port: u16, } pub fn op_dial( @@ -59,9 +60,11 @@ pub fn op_dial( _zero_copy: Option<PinnedBuf>, ) -> Result<JsonOp, ErrBox> { let args: DialArgs = serde_json::from_value(args)?; - let network = args.network; - assert_eq!(network, "tcp"); // TODO Support others. - let address = args.address; + assert_eq!(args.transport, "tcp"); // TODO Support others. + + // TODO(ry) Using format! is suboptimal here. Better would be if + // state.check_net and resolve_addr() took hostname and port directly. + let address = format!("{}:{}", args.hostname, args.port); state.check_net(&address)?; @@ -117,8 +120,9 @@ pub fn op_shutdown( #[derive(Deserialize)] struct ListenArgs { - network: String, - address: String, + transport: String, + hostname: String, + port: u16, } pub fn op_listen( @@ -127,10 +131,11 @@ pub fn op_listen( _zero_copy: Option<PinnedBuf>, ) -> Result<JsonOp, ErrBox> { let args: ListenArgs = serde_json::from_value(args)?; + assert_eq!(args.transport, "tcp"); - let network = args.network; - assert_eq!(network, "tcp"); - let address = args.address; + // TODO(ry) Using format! is suboptimal here. Better would be if + // state.check_net and resolve_addr() took hostname and port directly. + let address = format!("{}:{}", args.hostname, args.port); state.check_net(&address)?; diff --git a/cli/tests/echo_server.ts b/cli/tests/echo_server.ts index 73995eab5..82ee1fdab 100644 --- a/cli/tests/echo_server.ts +++ b/cli/tests/echo_server.ts @@ -1,6 +1,7 @@ const { args, listen, copy } = Deno; const addr = args[1] || "127.0.0.1:4544"; -const listener = listen("tcp", addr); +const [hostname, port] = addr.split(":"); +const listener = listen({ hostname, port: Number(port) }); console.log("listening on", addr); listener.accept().then( async (conn): Promise<void> => { |