Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
node: Add `listen` option to node config
Michalis Zampetakis committed 2 years ago
commit 0b6ede69e7ae15ff9a30b968d6e5a70c3b9a6256
parent d67f9ea9bbce819072d430209343b1387d136805
2 files changed +11 -1
modified radicle-node/src/main.rs
@@ -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(())
}
modified radicle/src/node/config.rs
@@ -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(),