node: Add `listen` option to node config

This commit is contained in:
Michalis Zampetakis 2023-10-23 08:11:59 +03:00 committed by cloudhead
parent d67f9ea9bb
commit 0b6ede69e7
No known key found for this signature in database
2 changed files with 11 additions and 1 deletions

View File

@ -112,6 +112,11 @@ fn execute() -> anyhow::Result<()> {
let daemon = options.daemon.unwrap_or_else(|| {
net::SocketAddr::new(net::Ipv4Addr::LOCALHOST.into(), radicle::git::PROTOCOL_PORT)
});
let listen: Vec<std::net::SocketAddr> = if !options.listen.is_empty() {
options.listen.clone()
} else {
config.listen.clone()
};
let (notify, signals) = chan::bounded(1);
signals::install(notify)?;
@ -120,7 +125,7 @@ fn execute() -> anyhow::Result<()> {
log::debug!(target: "node", "Removing existing control socket..");
fs::remove_file(home.socket()).ok();
}
Runtime::init(home, config, options.listen, proxy, daemon, signals, signer)?.run()?;
Runtime::init(home, config, listen, proxy, daemon, signals, signer)?.run()?;
Ok(())
}

View File

@ -1,4 +1,5 @@
use std::collections::HashSet;
use std::net;
use std::ops::Deref;
use cyphernet::addr::PeerAddr;
@ -165,6 +166,9 @@ impl Default for PeerConfig {
pub struct Config {
/// Node alias.
pub alias: Alias,
/// Address to listen on.
#[serde(default)]
pub listen: Vec<net::SocketAddr>,
/// Peer configuration.
#[serde(default)]
pub peers: PeerConfig,
@ -204,6 +208,7 @@ impl Config {
Self {
alias,
peers: PeerConfig::default(),
listen: vec![],
connect: HashSet::default(),
external_addresses: vec![],
network: Network::default(),