From f6b0e9152b88d041dc1b84c379fe26b9ffc59ef4 Mon Sep 17 00:00:00 2001 From: gh0st <1264131+gh0st42@users.noreply.github.com> Date: Wed, 22 Nov 2023 16:15:38 +0100 Subject: [PATCH] fix #51: strings from rnd_node_name now always start with a letter to pass is_valid_node_name test --- core/dtn7/src/dtnconfig.rs | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/core/dtn7/src/dtnconfig.rs b/core/dtn7/src/dtnconfig.rs index 0939d935..76e527e4 100644 --- a/core/dtn7/src/dtnconfig.rs +++ b/core/dtn7/src/dtnconfig.rs @@ -45,11 +45,20 @@ pub struct DtnConfig { } pub fn rnd_node_name() -> String { - thread_rng() - .sample_iter(&Alphanumeric) - .take(10) - .map(char::from) - .collect() + // generate a random node name starting with a character + let mut rng = thread_rng(); + let mut result_str = String::new(); + + // Get a random letter + let first_char = rng.gen_range(b'a'..=b'z') as char; + result_str.push(first_char); + + // Get 9 more random characters + for _ in 0..9 { + let next_char = thread_rng().sample_iter(&Alphanumeric).next().unwrap() as char; + result_str.push(next_char); + } + result_str } impl From for DtnConfig {