|
|
@@ -9,7 +9,9 @@ pub async fn sleep(millis: u64) {
|
|
|
}
|
|
|
|
|
|
pub fn make_node_id(node_name: &String) -> Result<String> {
|
|
|
- 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<String> {
|
|
|
@@ -30,11 +32,15 @@ pub fn make_session_id(node_id: &str, session: &Session) -> Result<String> {
|
|
|
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<String> {
|
|
|
- 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<String> {
|
|
|
@@ -42,24 +48,62 @@ pub fn make_empty_id(node_id: &str, session: &Session, count: u64) -> Result<Str
|
|
|
|
|
|
let mut num = 0_u64;
|
|
|
|
|
|
- let session_chars = match session {
|
|
|
- Session::Inbound => 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 {
|