From 3d94dea3977d05871e0c123abd6a58aad7352a40 Mon Sep 17 00:00:00 2001 From: Michael Gehring Date: Mon, 21 Dec 2015 21:07:43 +0100 Subject: [PATCH] hostname: fix '-i' --- src/hostname/hostname.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/hostname/hostname.rs b/src/hostname/hostname.rs index fd78c87db..1b4969d35 100644 --- a/src/hostname/hostname.rs +++ b/src/hostname/hostname.rs @@ -70,6 +70,9 @@ pub fn uumain(args: Vec) -> i32 { let hostname = xgethostname(); if matches.opt_present("i") { + // XXX: to_socket_addrs needs hostname:port so append a dummy port and remove it later. + // This should use std::net::lookup_host, but that is still marked unstable. + let hostname = hostname + ":1"; match hostname.to_socket_addrs() { Ok(addresses) => { let mut hashset = HashSet::new(); @@ -77,7 +80,11 @@ pub fn uumain(args: Vec) -> i32 { for addr in addresses { // XXX: not sure why this is necessary... if !hashset.contains(&addr) { - output.push_str(&format!("{}", addr)); + let mut ip = format!("{}", addr); + if ip.ends_with(":1") { + ip = ip[..ip.len()-2].to_string(); + } + output.push_str(&ip); output.push_str(" "); hashset.insert(addr.clone()); }