From e2b5e75a3e50d217fe1990eae7a0c905483b552f Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Fri, 7 Feb 2020 18:30:41 +0100 Subject: [PATCH] pbsbanner: use match and also return error Signed-off-by: Thomas Lamprecht --- src/bin/pbsbanner.rs | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/src/bin/pbsbanner.rs b/src/bin/pbsbanner.rs index 927f68ac..6bccfe1d 100644 --- a/src/bin/pbsbanner.rs +++ b/src/bin/pbsbanner.rs @@ -18,31 +18,28 @@ configure this server - connect to: "" ); - if let Ok(saddrs) = addr.to_socket_addrs() { - let saddrs: Vec<_> = saddrs + let msg = match addr.to_socket_addrs() { + Ok(saddrs) => { + let saddrs: Vec<_> = saddrs .filter_map(|s| match !s.ip().is_loopback() { true => Some(format!(" https://{}/", s)), false => None, }) .collect(); - if !saddrs.is_empty() { - writeln!(&mut banner, "{}", saddrs.join("\n")).unwrap(); - } else { - writeln!( - &mut banner, - "hostname '{}' does not resolves to any non-loopback address", - nodename - ) - .unwrap(); - } - } else { - writeln!(&mut banner, "could not resolve hostname '{}'", nodename).unwrap(); - } + if !saddrs.is_empty() { + saddrs.join("\n") + } else { + format!("hostname '{}' does not resolves to any non-loopback address", nodename) + } + }, + Err(e) => format!("could not resolve hostname '{}': {}", nodename, e), + }; + banner += &msg; // unwrap will never fail for write!: // https://github.com/rust-lang/rust/blob/1.39.0/src/liballoc/string.rs#L2318-L2331 - write!(&mut banner, "\n{:-<78}\n\n", "").unwrap(); + write!(&mut banner, "\n\n{:-<78}\n\n", "").unwrap(); fs::write("/etc/issue", banner.as_bytes()).expect("Unable to write banner to issue file"); }