From 23e67eb5153bd26dbae471b27dc6a21a6d283b0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Sat, 18 Jan 2020 21:49:55 +0100 Subject: stabilize net Addr (#3709) Co-authored-by: xiaoxintang <15707971810@163.com> --- cli/ops/net.rs | 38 +++++++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 7 deletions(-) (limited to 'cli/ops/net.rs') diff --git a/cli/ops/net.rs b/cli/ops/net.rs index f337a28d8..836ec2e8d 100644 --- a/cli/ops/net.rs +++ b/cli/ops/net.rs @@ -117,8 +117,16 @@ fn op_accept( table.add("tcpStream", Box::new(StreamResource::TcpStream(tcp_stream))); Ok(json!({ "rid": rid, - "localAddr": local_addr.to_string(), - "remoteAddr": remote_addr.to_string(), + "localAddr": { + "hostname": local_addr.ip().to_string(), + "port": local_addr.port(), + "transport": "tcp", + }, + "remoteAddr": { + "hostname": remote_addr.ip().to_string(), + "port": remote_addr.port(), + "transport": "tcp", + } })) }; @@ -152,8 +160,16 @@ fn op_connect( table.add("tcpStream", Box::new(StreamResource::TcpStream(tcp_stream))); Ok(json!({ "rid": rid, - "localAddr": local_addr.to_string(), - "remoteAddr": remote_addr.to_string(), + "localAddr": { + "hostname": local_addr.ip().to_string(), + "port": local_addr.port(), + "transport": args.transport, + }, + "remoteAddr": { + "hostname": remote_addr.ip().to_string(), + "port": remote_addr.port(), + "transport": args.transport, + } })) }; @@ -272,7 +288,6 @@ fn op_listen( futures::executor::block_on(resolve_addr(&args.hostname, args.port))?; let listener = futures::executor::block_on(TcpListener::bind(&addr))?; let local_addr = listener.local_addr()?; - let local_addr_str = local_addr.to_string(); let listener_resource = TcpListenerResource { listener, waker: None, @@ -280,10 +295,19 @@ fn op_listen( }; let mut table = state.lock_resource_table(); let rid = table.add("tcpListener", Box::new(listener_resource)); - debug!("New listener {} {}", rid, local_addr_str); + debug!( + "New listener {} {}:{}", + rid, + local_addr.ip().to_string(), + local_addr.port() + ); Ok(JsonOp::Sync(json!({ "rid": rid, - "localAddr": local_addr_str, + "localAddr": { + "hostname": local_addr.ip().to_string(), + "port": local_addr.port(), + "transport": args.transport, + }, }))) } -- cgit v1.2.3