It works again, just very slowly. I could try to make it faster but not now.
This commit is contained in:
parent
91539e2efe
commit
518b275bd9
|
@ -27,7 +27,6 @@ pub fn listen_to_client(tx: mpsc::Sender<String>, rx: mpsc::Receiver<String>, po
|
||||||
}
|
}
|
||||||
match rx.try_recv() {
|
match rx.try_recv() {
|
||||||
Ok(value) => {
|
Ok(value) => {
|
||||||
dbg!(&value);
|
|
||||||
match stream.write_all(value.as_bytes()) {
|
match stream.write_all(value.as_bytes()) {
|
||||||
Ok(_) => {}
|
Ok(_) => {}
|
||||||
Err(_e) => println!("Couldn't send {value}"),
|
Err(_e) => println!("Couldn't send {value}"),
|
||||||
|
|
30
src/main.rs
30
src/main.rs
|
@ -8,6 +8,7 @@ use std::collections::HashMap;
|
||||||
use std::net::{Shutdown, TcpStream};
|
use std::net::{Shutdown, TcpStream};
|
||||||
use std::sync::mpsc;
|
use std::sync::mpsc;
|
||||||
use std::thread;
|
use std::thread;
|
||||||
|
use std::time::Duration;
|
||||||
use std::{env, fs};
|
use std::{env, fs};
|
||||||
|
|
||||||
mod listener_server;
|
mod listener_server;
|
||||||
|
@ -137,10 +138,6 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
let reciever = &command.params[0];
|
let reciever = &command.params[0];
|
||||||
if !keys.contains_key(reciever) {
|
if !keys.contains_key(reciever) {
|
||||||
writer_channel_tx.send(format!("PRIVMSG {reciever} :START_KEY\r\n"))?;
|
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
|
writer_channel_tx
|
||||||
.send(bytes_to_privmsg_base64(public_key.clone(), reciever))?;
|
.send(bytes_to_privmsg_base64(public_key.clone(), reciever))?;
|
||||||
|
@ -166,8 +163,10 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
foreign_key.push(recieved.params[1].clone());
|
foreign_key.push(recieved.params[1].clone());
|
||||||
}
|
}
|
||||||
foreign_key.pop();
|
foreign_key.pop();
|
||||||
|
|
||||||
println!("Got a foreign key from {reciever}");
|
println!("Got a foreign key from {reciever}");
|
||||||
let foreign_key = foreign_key.concat();
|
let foreign_key = foreign_key.concat();
|
||||||
|
dbg!(&foreign_key);
|
||||||
|
|
||||||
let foreign_key = general_purpose::STANDARD.decode(foreign_key)?;
|
let foreign_key = general_purpose::STANDARD.decode(foreign_key)?;
|
||||||
|
|
||||||
|
@ -208,6 +207,8 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dbg!(&recieved_parsed);
|
||||||
|
|
||||||
if recieved_parsed.params[1] == "START_MESSAGE" {
|
if recieved_parsed.params[1] == "START_MESSAGE" {
|
||||||
let reciever = get_nick(&recieved_parsed.source.clone().unwrap());
|
let reciever = get_nick(&recieved_parsed.source.clone().unwrap());
|
||||||
let sample_privmsg = recieved.clone();
|
let sample_privmsg = recieved.clone();
|
||||||
|
@ -225,7 +226,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
.unwrap_or("".to_string())
|
.unwrap_or("".to_string())
|
||||||
.starts_with(&begin_source_reciever)
|
.starts_with(&begin_source_reciever)
|
||||||
{
|
{
|
||||||
listener_channel_tx.send(recieved_raw)?;
|
listener_channel_tx.send(recieved_raw.replace(&server, "127.0.0.1"))?;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -240,6 +241,12 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
listener_channel_tx
|
listener_channel_tx
|
||||||
.send(sample_privmsg.replace("START_MESSAGE", &decrypted_message))?;
|
.send(sample_privmsg.replace("START_MESSAGE", &decrypted_message))?;
|
||||||
} else if recieved_parsed.params[1] == "START_KEY" {
|
} 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 reciever = get_nick(&recieved_parsed.source.clone().unwrap());
|
||||||
let mut foreign_key: Vec<String> = Vec::new();
|
let mut foreign_key: Vec<String> = Vec::new();
|
||||||
while !foreign_key.contains(&"END_KEY".to_string()) {
|
while !foreign_key.contains(&"END_KEY".to_string()) {
|
||||||
|
@ -254,26 +261,25 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
.unwrap_or("".to_string())
|
.unwrap_or("".to_string())
|
||||||
.starts_with(&begin_source_reciever)
|
.starts_with(&begin_source_reciever)
|
||||||
{
|
{
|
||||||
listener_channel_tx.send(recieved_raw)?;
|
listener_channel_tx.send(recieved_raw.replace(&server, "127.0.0.1"))?;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreign_key.push(recieved.params[1].clone());
|
foreign_key.push(recieved.params[1].clone());
|
||||||
}
|
}
|
||||||
foreign_key.pop();
|
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 = foreign_key.concat();
|
||||||
|
|
||||||
let foreign_key = general_purpose::STANDARD.decode(foreign_key)?;
|
let foreign_key = general_purpose::STANDARD.decode(foreign_key)?;
|
||||||
|
dbg!("Decoded the key");
|
||||||
|
|
||||||
let key = SignedPublicKey::from_bytes(foreign_key.as_slice())?;
|
let key = SignedPublicKey::from_bytes(foreign_key.as_slice())?;
|
||||||
|
dbg!("Deserialized the key");
|
||||||
|
|
||||||
keys.insert(reciever.to_string(), 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"))?;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue