diff --git a/bin/dnetview/src/util.rs b/bin/dnetview/src/util.rs index 1e6cec69e..113485947 100644 --- a/bin/dnetview/src/util.rs +++ b/bin/dnetview/src/util.rs @@ -9,7 +9,9 @@ pub async fn sleep(millis: u64) { } pub fn make_node_id(node_name: &String) -> Result { - Ok(serial::serialize_hex(node_name)) + let mut id = serial::serialize_hex(node_name); + id.insert_str(0, "NODE"); + Ok(id) } pub fn make_session_id(node_id: &str, session: &Session) -> Result { @@ -30,11 +32,15 @@ pub fn make_session_id(node_id: &str, session: &Session) -> Result { num += i as u64 } - Ok(serial::serialize_hex(&num)) + let mut id = serial::serialize_hex(&num); + id.insert_str(0, "SESSION"); + Ok(id) } pub fn make_connect_id(id: &u64) -> Result { - Ok(serial::serialize_hex(id)) + let mut id = serial::serialize_hex(id); + id.insert_str(0, "CONNECT"); + Ok(id) } pub fn make_empty_id(node_id: &str, session: &Session, count: u64) -> Result { @@ -42,24 +48,62 @@ pub fn make_empty_id(node_id: &str, session: &Session, count: u64) -> Result vec!['i', 'n'], - Session::Outbound => vec!['o', 'u', 't'], - Session::Manual => vec!['m', 'a', 'n'], - Session::Offline => vec!['o', 'f', 'f'], + let id = match session { + Session::Inbound => { + let session_chars = vec!['i', 'n']; + for i in session_chars { + num += i as u64 + } + for i in node_id.chars() { + num += i as u64 + } + num += count; + let mut id = serial::serialize_hex(&num); + id.insert_str(0, "EMPTYIN"); + id + } + Session::Outbound => { + let session_chars = vec!['o', 'u', 't']; + for i in session_chars { + num += i as u64 + } + for i in node_id.chars() { + num += i as u64 + } + num += count; + let mut id = serial::serialize_hex(&num); + id.insert_str(0, "EMPTYOUT"); + id + } + Session::Manual => { + let session_chars = vec!['m', 'a', 'n']; + for i in session_chars { + num += i as u64 + } + for i in node_id.chars() { + num += i as u64 + } + num += count; + let mut id = serial::serialize_hex(&num); + id.insert_str(0, "EMPTYMAN"); + id + } + Session::Offline => { + let session_chars = vec!['o', 'f', 'f']; + for i in session_chars { + num += i as u64 + } + for i in node_id.chars() { + num += i as u64 + } + num += count; + let mut id = serial::serialize_hex(&num); + id.insert_str(0, "EMPTYOFF"); + id + } }; - for i in session_chars { - num += i as u64 - } - - for i in node_id.chars() { - num += i as u64 - } - - num += count; - - Ok(serial::serialize_hex(&num)) + Ok(id) } pub fn is_empty_session(connects: &[ConnectInfo]) -> bool {