root request
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
|
||||
use std::{
|
||||
collections::{HashMap, VecDeque},
|
||||
net::{AddrParseError, SocketAddr},
|
||||
net::{AddrParseError, Ipv4Addr, SocketAddr},
|
||||
ops::Add,
|
||||
process::Command,
|
||||
sync::{Arc, Mutex},
|
||||
@@ -21,7 +21,7 @@ use p256::ecdsa::VerifyingKey;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct PeerInfo {
|
||||
username: String,
|
||||
pub username: String,
|
||||
pub pubkey: VerifyingKey,
|
||||
pub ip: SocketAddr,
|
||||
}
|
||||
@@ -82,6 +82,27 @@ impl HandshakeHistory {
|
||||
});
|
||||
}
|
||||
|
||||
pub fn update_peer_info(&mut self, ip: String, username: String) {
|
||||
let peerinfo = self.get_peer_info_ip(ip.clone());
|
||||
match peerinfo {
|
||||
Some(peer_info) => match ip.parse::<SocketAddr>() {
|
||||
Ok(addr) => {
|
||||
let new_peer_info = PeerInfo {
|
||||
username: username.clone(),
|
||||
pubkey: peer_info.pubkey,
|
||||
ip: addr,
|
||||
};
|
||||
self.ip_k_peerinfo_v.insert(ip, new_peer_info.clone());
|
||||
self.username_k_peerinfo_v.insert(username, new_peer_info);
|
||||
}
|
||||
Err(e) => eprintln!("parse error: {}", e),
|
||||
},
|
||||
None => {
|
||||
eprintln!("no peer info found in hashmap")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn add_new_handshake(&mut self, hash: VerifyingKey, username: String, ip: SocketAddr) {
|
||||
let peerinfo = PeerInfo {
|
||||
username: username.clone(),
|
||||
@@ -104,8 +125,8 @@ pub fn perform_discover(
|
||||
) {
|
||||
// first, sends handshake
|
||||
if hash == "root" {
|
||||
perform_handshake(sd, username, server_ip, event_tx);
|
||||
if let Some(data) = construct_message(
|
||||
perform_handshake(sd, username, server_ip, event_tx, false);
|
||||
/*if let Some(data) = construct_message(
|
||||
messages_structure::ROOTREQUEST,
|
||||
Vec::new(),
|
||||
generate_id(),
|
||||
@@ -115,7 +136,7 @@ pub fn perform_discover(
|
||||
sd.senders_ref()
|
||||
.send_via(0, data, peerinfo.ip.to_string(), false);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
} else {
|
||||
// envoyer un datum request
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user