From: Wolfgang Bumiller Date: Tue, 26 May 2020 09:52:36 +0000 (+0200) Subject: client: improve connection/new fingerprint query X-Git-Tag: v0.2.2~5 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=a595f0fee0e3c4b2961c18a7edda31ad4e70b118;p=proxmox-backup.git client: improve connection/new fingerprint query Signed-off-by: Wolfgang Bumiller --- diff --git a/src/client/http_client.rs b/src/client/http_client.rs index 23c4aa54..52d699e1 100644 --- a/src/client/http_client.rs +++ b/src/client/http_client.rs @@ -400,21 +400,22 @@ impl HttpClient { if interactive && tty::stdin_isatty() { println!("fingerprint: {}", fp_string); loop { - print!("Want to trust? (y/n): "); + print!("Are you sure you want to continue connecting? (y/n): "); let _ = std::io::stdout().flush(); - let mut buf = [0u8; 1]; - use std::io::Read; - match std::io::stdin().read_exact(&mut buf) { - Ok(()) => { - if buf[0] == b'y' || buf[0] == b'Y' { + use std::io::{BufRead, BufReader}; + let mut line = String::new(); + match BufReader::new(std::io::stdin()).read_line(&mut line) { + Ok(_) => { + let trimmed = line.trim(); + if trimmed == "y" || trimmed == "Y" { return (true, Some(fp_string)); - } else if buf[0] == b'n' || buf[0] == b'N' { + } else if trimmed == "n" || trimmed == "N" { return (false, None); + } else { + continue; } } - Err(_) => { - return (false, None); - } + Err(_) => return (false, None), } } }