diff options
| author | murilo ijanc | 2026-03-25 22:19:39 -0300 |
|---|---|---|
| committer | murilo ijanc | 2026-03-25 22:19:39 -0300 |
| commit | 4214189961d59b9de15e221a9c4b229c0d646e78 (patch) | |
| tree | c96c719d8e861f7f4c726eee7818deb673d587b2 /src/bin/tp.rs | |
| parent | 24c3402c9d27fc26bd3afe8c05276f52338514f8 (diff) | |
| download | tesseras-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.rs | 16 |
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 |