diff --git a/src/lib.rs b/src/lib.rs index 206fe52d8..1e4945a49 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -603,6 +603,7 @@ impl Node { let bcast_logger = Arc::clone(&self.logger); let bcast_ann_timestamp = Arc::clone(&self.latest_node_announcement_broadcast_timestamp); let mut stop_bcast = self.stop_sender.subscribe(); + let node_alias = self.config().node_alias; runtime.spawn(async move { // We check every 30 secs whether our last broadcast is NODE_ANN_BCAST_INTERVAL away. #[cfg(not(test))] @@ -652,7 +653,16 @@ impl Node { continue; } - bcast_pm.broadcast_node_announcement([0; 3], [0; 32], addresses); + // Extract alias if set, else select the default + let alias = if let Some(ref alias) = node_alias { + let mut buf = [0_u8; 32]; + buf[..alias.as_bytes().len()].copy_from_slice(alias.as_bytes()); + buf + } else { + [0; 32] + }; + + bcast_pm.broadcast_node_announcement([0; 3], alias, addresses); let unix_time_secs_opt = SystemTime::now().duration_since(UNIX_EPOCH).ok().map(|d| d.as_secs()); diff --git a/tests/common/mod.rs b/tests/common/mod.rs index 5959bd58e..258314463 100644 --- a/tests/common/mod.rs +++ b/tests/common/mod.rs @@ -193,6 +193,15 @@ pub(crate) fn random_listening_addresses() -> Vec { listening_addresses } +pub(crate) fn random_node_alias() -> Option { + let mut rng = thread_rng(); + let ranged_val = rng.gen_range(0..10); + match ranged_val { + 0 => None, + val => Some(format!("ldk-node-{}", val)), + } +} + pub(crate) fn random_config(anchor_channels: bool) -> Config { let mut config = Config::default(); @@ -213,6 +222,10 @@ pub(crate) fn random_config(anchor_channels: bool) -> Config { println!("Setting random LDK listening addresses: {:?}", rand_listening_addresses); config.listening_addresses = Some(rand_listening_addresses); + let alias = random_node_alias(); + println!("Setting random LDK node alias: {:?}", alias); + config.node_alias = alias; + config.log_level = LogLevel::Gossip; config