summaryrefslogtreecommitdiff
path: root/runtime/ops/net.rs
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/ops/net.rs')
-rw-r--r--runtime/ops/net.rs14
1 files changed, 11 insertions, 3 deletions
diff --git a/runtime/ops/net.rs b/runtime/ops/net.rs
index a4bda585b..1ff1e3511 100644
--- a/runtime/ops/net.rs
+++ b/runtime/ops/net.rs
@@ -202,7 +202,10 @@ async fn op_datagram_send(
s.borrow::<Permissions>()
.check_net(&args.hostname, args.port)?;
}
- let addr = resolve_addr(&args.hostname, args.port).await?;
+ let addr = resolve_addr(&args.hostname, args.port)
+ .await?
+ .next()
+ .ok_or_else(|| generic_error("No resolved address found"))?;
let resource = state
.borrow_mut()
@@ -267,7 +270,10 @@ async fn op_connect(
.borrow::<Permissions>()
.check_net(&args.hostname, args.port)?;
}
- let addr = resolve_addr(&args.hostname, args.port).await?;
+ let addr = resolve_addr(&args.hostname, args.port)
+ .await?
+ .next()
+ .ok_or_else(|| generic_error("No resolved address found"))?;
let tcp_stream = TcpStream::connect(&addr).await?;
let local_addr = tcp_stream.local_addr()?;
let remote_addr = tcp_stream.peer_addr()?;
@@ -469,7 +475,9 @@ fn op_listen(
}
permissions.check_net(&args.hostname, args.port)?;
}
- let addr = resolve_addr_sync(&args.hostname, args.port)?;
+ let addr = resolve_addr_sync(&args.hostname, args.port)?
+ .next()
+ .ok_or_else(|| generic_error("No resolved address found"))?;
let (rid, local_addr) = if transport == "tcp" {
listen_tcp(state, addr)?
} else {