diff --git a/src/listener_server.rs b/src/listener_server.rs index 24e82d9..56e449b 100644 --- a/src/listener_server.rs +++ b/src/listener_server.rs @@ -27,7 +27,6 @@ pub fn listen_to_client(tx: mpsc::Sender, rx: mpsc::Receiver, po } match rx.try_recv() { Ok(value) => { - dbg!(&value); match stream.write_all(value.as_bytes()) { Ok(_) => {} Err(_e) => println!("Couldn't send {value}"), diff --git a/src/main.rs b/src/main.rs index fa503f6..8b4ec91 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,6 +8,7 @@ use std::collections::HashMap; use std::net::{Shutdown, TcpStream}; use std::sync::mpsc; use std::thread; +use std::time::Duration; use std::{env, fs}; mod listener_server; @@ -137,10 +138,6 @@ fn main() -> Result<(), Box> { let reciever = &command.params[0]; if !keys.contains_key(reciever) { writer_channel_tx.send(format!("PRIVMSG {reciever} :START_KEY\r\n"))?; - userstring = ircparser::parse(&writer_channel_rx.recv()?).unwrap()[0] - .source - .clone() - .unwrap(); writer_channel_tx .send(bytes_to_privmsg_base64(public_key.clone(), reciever))?; @@ -166,8 +163,10 @@ fn main() -> Result<(), Box> { foreign_key.push(recieved.params[1].clone()); } foreign_key.pop(); + println!("Got a foreign key from {reciever}"); let foreign_key = foreign_key.concat(); + dbg!(&foreign_key); let foreign_key = general_purpose::STANDARD.decode(foreign_key)?; @@ -207,6 +206,8 @@ fn main() -> Result<(), Box> { listener_channel_tx.send(recieved.replace(&server, "127.0.0.1"))?; continue; } + + dbg!(&recieved_parsed); if recieved_parsed.params[1] == "START_MESSAGE" { let reciever = get_nick(&recieved_parsed.source.clone().unwrap()); @@ -225,7 +226,7 @@ fn main() -> Result<(), Box> { .unwrap_or("".to_string()) .starts_with(&begin_source_reciever) { - listener_channel_tx.send(recieved_raw)?; + listener_channel_tx.send(recieved_raw.replace(&server, "127.0.0.1"))?; continue; } @@ -240,6 +241,12 @@ fn main() -> Result<(), Box> { listener_channel_tx .send(sample_privmsg.replace("START_MESSAGE", &decrypted_message))?; } else if recieved_parsed.params[1] == "START_KEY" { + let reciever = get_nick(&recieved_parsed.source.clone().unwrap()); + let to_send = bytes_to_privmsg_base64(public_key.clone(), &reciever); + writer_channel_tx.send(to_send)?; + writer_channel_tx.send(format!("PRIVMSG {reciever} END_KEY\r\n"))?; + + dbg!("Started Getting a key"); let reciever = get_nick(&recieved_parsed.source.clone().unwrap()); let mut foreign_key: Vec = Vec::new(); while !foreign_key.contains(&"END_KEY".to_string()) { @@ -254,26 +261,25 @@ fn main() -> Result<(), Box> { .unwrap_or("".to_string()) .starts_with(&begin_source_reciever) { - listener_channel_tx.send(recieved_raw)?; + listener_channel_tx.send(recieved_raw.replace(&server, "127.0.0.1"))?; continue; } foreign_key.push(recieved.params[1].clone()); } foreign_key.pop(); - println!("Got a foreign key from {reciever}"); + dbg!("Got a foreign key from"); + dbg!(&reciever); + let foreign_key = foreign_key.concat(); let foreign_key = general_purpose::STANDARD.decode(foreign_key)?; + dbg!("Decoded the key"); let key = SignedPublicKey::from_bytes(foreign_key.as_slice())?; + dbg!("Deserialized the key"); keys.insert(reciever.to_string(), key); - - let reciever = get_nick(&recieved_parsed.source.clone().unwrap()); - let to_send = bytes_to_privmsg_base64(public_key.clone(), &reciever); - writer_channel_tx.send(to_send)?; - writer_channel_tx.send(format!("PRIVMSG {reciever} END_KEY\r\n"))?; } } }