aboutsummaryrefslogtreecommitdiffstats
path: root/src/bin/tpd.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/tpd.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/tpd.rs')
-rw-r--r--src/bin/tpd.rs24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/bin/tpd.rs b/src/bin/tpd.rs
index e1ebc7b..c18d88b 100644
--- a/src/bin/tpd.rs
+++ b/src/bin/tpd.rs
@@ -49,25 +49,18 @@ fn usage() {
eprintln!(" -g global NAT (public server)");
eprintln!(" -n no auto-bootstrap (skip DNS SRV)");
eprintln!(" -b host:port bootstrap peer (repeatable)");
+ eprintln!(" -v verbose (debug logging)");
eprintln!(" -h show this help");
}
fn main() {
- env_logger::Builder::from_env(
- env_logger::Env::default().default_filter_or("info"),
- )
- .format(|buf, record| {
- use std::io::Write;
- writeln!(buf, "[{}]: {}", record.level(), record.args())
- })
- .init();
-
let mut port: u16 = 0;
let mut dir = default_dir();
let mut sock: Option<PathBuf> = None;
let mut http_port: Option<u16> = None;
let mut global = false;
let mut no_auto_bootstrap = false;
+ let mut verbose = false;
let mut bootstrap: Vec<String> = Vec::new();
let args: Vec<String> = std::env::args().collect();
@@ -111,6 +104,7 @@ fn main() {
}
"-g" => global = true,
"-n" => no_auto_bootstrap = true,
+ "-v" => verbose = true,
"-b" => {
i += 1;
if let Some(addr) = args.get(i) {
@@ -133,6 +127,16 @@ fn main() {
i += 1;
}
+ let default_level = if verbose { "debug" } else { "info" };
+ env_logger::Builder::from_env(
+ env_logger::Env::default().default_filter_or(default_level),
+ )
+ .format(|buf, record| {
+ use std::io::Write;
+ writeln!(buf, "[{}]: {}", record.level(), record.args())
+ })
+ .init();
+
let sock_path = sock.unwrap_or_else(|| dir.join("daemon.sock"));
// Ensure directories exist
@@ -288,7 +292,7 @@ fn main() {
})
});
- daemon::run_daemon(&mut node, &store, &rx, &shutdown);
+ daemon::run_daemon(&mut node, &store, &rx, &shutdown, &bootstrap);
let _ = std::fs::remove_file(&sock_path);
let _ = handle.join();