aboutsummaryrefslogtreecommitdiffstats
path: root/src/bin/tp.rs
diff options
context:
space:
mode:
authormurilo ijanc2026-03-25 22:19:39 -0300
committermurilo ijanc2026-03-25 22:19:39 -0300
commit4214189961d59b9de15e221a9c4b229c0d646e78 (patch)
treec96c719d8e861f7f4c726eee7818deb673d587b2 /src/bin/tp.rs
parent24c3402c9d27fc26bd3afe8c05276f52338514f8 (diff)
downloadtesseras-paste-4214189961d59b9de15e221a9c4b229c0d646e78.tar.gz
Add automatic re-join and -v flag for verbose logging
When the routing table drops to zero peers, the daemon now re-joins bootstrap nodes every 60s, unbanning their addresses first so replies are not silently discarded. Both tp and tpd accept -v for debug-level output without needing RUST_LOG environment variable.
Diffstat (limited to 'src/bin/tp.rs')
-rw-r--r--src/bin/tp.rs16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/bin/tp.rs b/src/bin/tp.rs
index 5c4c473..fbfc872 100644
--- a/src/bin/tp.rs
+++ b/src/bin/tp.rs
@@ -18,7 +18,7 @@ fn default_socket() -> PathBuf {
}
fn usage() {
- eprintln!("usage: tp [-s sock] <command> [args]");
+ eprintln!("usage: tp [-s sock] [-v] <command> [args]");
eprintln!();
eprintln!("commands:");
eprintln!(" put [-t ttl] [-p] read stdin, store paste");
@@ -30,6 +30,7 @@ fn usage() {
eprintln!(" status show daemon status");
eprintln!();
eprintln!(" -s sock Unix socket path");
+ eprintln!(" -v verbose output");
eprintln!(" -t ttl time-to-live (e.g. 24h 30m 3600)");
}
@@ -52,6 +53,7 @@ fn main() {
let args: Vec<String> = std::env::args().collect();
let mut sock_path = default_socket();
+ let mut verbose = false;
let mut cmd_start = 1;
// Parse global options before command
@@ -67,6 +69,10 @@ fn main() {
});
cmd_start = i + 1;
}
+ "-v" => {
+ verbose = true;
+ cmd_start = i + 1;
+ }
"-h" | "--help" => {
usage();
return;
@@ -177,6 +183,11 @@ fn main() {
sandbox::unveil_lock();
sandbox::do_pledge("stdio unix rpath");
+ if verbose {
+ eprintln!("socket: {}", sock_path.display());
+ eprintln!(">> {}", request.trim());
+ }
+
let stream = match UnixStream::connect(&sock_path) {
Ok(s) => s,
Err(e) => {
@@ -202,6 +213,9 @@ fn main() {
Ok(l) => l,
Err(_) => break,
};
+ if verbose {
+ eprintln!("<< {}", line);
+ }
if let Some(data) = line.strip_prefix("OK ") {
if is_get {
// Decode base58 → raw bytes → stdout