summaryrefslogtreecommitdiffstats
path: root/src/bin/client
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-08-24 18:42:48 +0200
committersalmonik <salmonik@tuta.io>2026-08-24 18:42:48 +0200
commit13a7fe604e570c3ee745f1797dffed59aec4ee27 (patch)
treef2f39642843ae876e234c91e3b6231ab7b21636f /src/bin/client
parentAdd hosts command, info shows current host+fingerprint, disconnect-before-con... (diff)
downloadzagan-bet-13a7fe604e570c3ee745f1797dffed59aec4ee27.tar.gz
zagan-bet-13a7fe604e570c3ee745f1797dffed59aec4ee27.zip
Alias localhost to 127.0.0.1, fix info to show host+fingerprint
Diffstat (limited to 'src/bin/client')
-rw-r--r--src/bin/client/repl.rs53
1 files changed, 20 insertions, 33 deletions
diff --git a/src/bin/client/repl.rs b/src/bin/client/repl.rs
index dd55acc..9d5f699 100644
--- a/src/bin/client/repl.rs
+++ b/src/bin/client/repl.rs
@@ -286,6 +286,9 @@ impl ClientState {
286 } 286 }
287 } else { 287 } else {
288 let mut a = parts[1].to_string(); 288 let mut a = parts[1].to_string();
289 if a == "localhost" {
290 a = "127.0.0.1".to_string();
291 }
289 if !a.contains(':') { 292 if !a.contains(':') {
290 a = format!("{}:{}", a, self.default_port); 293 a = format!("{}:{}", a, self.default_port);
291 } 294 }
@@ -519,40 +522,24 @@ impl ClientState {
519 println!("\nLogged out"); 522 println!("\nLogged out");
520 } 523 }
521 "info" => { 524 "info" => {
522 if self.stream.is_none() { 525 if let Some(addr) = &self.addr {
523 println!("\nNot connected. Use 'connect <ip>:<port>' first."); 526 let fp = database::get_fingerprint(&self.conn, addr);
524 continue 'outer; 527 println!("\nConnected to: {}", addr);
525 } 528 match fp {
526 let s = self.stream.as_mut().unwrap(); 529 Some(fp) => println!("Fingerprint: {}", fp),
527 let writer_stream = s.try_clone().unwrap(); 530 None => println!("Fingerprint: (not trusted)"),
528 let mut writer = writer_stream; 531 }
529 let response_reader_stream = s.try_clone().unwrap();
530 let mut response_reader =
531 BufReader::new(response_reader_stream);
532 if let Err(_) = writeln!(writer, "INFO") {
533 self.stream = None;
534 println!("\nConnection lost");
535 continue 'outer;
536 }
537 let mut response = String::new();
538 if let Err(_) = response_reader.read_line(&mut response)
539 {
540 self.stream = None;
541 println!("\nConnection lost");
542 } else { 532 } else {
543 let resp = response.trim(); 533 println!("\nNot connected to any host.");
544 if resp.starts_with("INFO ") { 534 }
545 let parts: Vec<&str> = 535 if let Some(s) = &self.stream {
546 resp.split_whitespace().collect(); 536 let mut s = s.try_clone().unwrap();
547 if parts.len() == 4 { 537 let _ = writeln!(s, "INFO");
548 println!("\nLogged in as {} (ID: {})\r\nBalance: {} PLN", parts[1], parts[2], parts[3]); 538 let mut reader = BufReader::new(s);
549 } else { 539 let mut response = String::new();
550 println!("\n{}", resp); 540 let _ = reader.read_line(&mut response);
551 } 541 if !response.is_empty() {
552 } else if resp.starts_with("ERROR ") { 542 println!("{}", response.trim());
553 println!("\nError: {}", &resp[6..]);
554 } else {
555 println!("\n{}", resp);
556 } 543 }
557 } 544 }
558 } 545 }