2020-11-01 16:46:47 +00:00
|
|
|
mod chat;
|
2020-11-22 14:31:45 +00:00
|
|
|
|
|
|
|
mod db;
|
2020-09-10 22:01:13 +00:00
|
|
|
mod encrypting;
|
2020-11-01 16:46:47 +00:00
|
|
|
use async_std::io;
|
|
|
|
use chat::front_conn::listen_client;
|
2020-09-10 22:01:13 +00:00
|
|
|
|
2020-11-22 14:31:45 +00:00
|
|
|
use std::{
|
|
|
|
sync::{
|
|
|
|
mpsc,
|
|
|
|
mpsc::{Receiver, Sender},
|
|
|
|
},
|
|
|
|
thread,
|
|
|
|
};
|
2020-11-01 16:46:47 +00:00
|
|
|
fn main() -> io::Result<()> {
|
2020-11-22 14:31:45 +00:00
|
|
|
// listen_client();
|
|
|
|
|
|
|
|
enum ClientMessage {
|
|
|
|
Message(String),
|
|
|
|
Nope,
|
|
|
|
}
|
2020-11-22 14:48:24 +00:00
|
|
|
struct MFA {
|
|
|
|
encoded_msg: String, // TODO add User field
|
2020-11-22 14:31:45 +00:00
|
|
|
}; //Message from above
|
|
|
|
|
|
|
|
struct ClientHandler {
|
|
|
|
message: ClientMessage,
|
|
|
|
}
|
|
|
|
|
|
|
|
struct ServerHandler {
|
2020-11-22 14:48:24 +00:00
|
|
|
messages: Vec<MFA>,
|
2020-11-22 14:31:45 +00:00
|
|
|
}
|
|
|
|
|
2020-11-22 14:48:24 +00:00
|
|
|
let (server_sender, server_receiver): (Sender<MFA>, Receiver<MFA>) = mpsc::channel(); // server sender, server receiver
|
|
|
|
let (client_sender, client_receiver): (Sender<MFA>, Receiver<MFA>) = mpsc::channel(); // client sender, client receiver
|
2020-11-22 14:31:45 +00:00
|
|
|
|
|
|
|
let client_listener = thread::spawn(move || {
|
2020-11-22 14:48:24 +00:00
|
|
|
let new_msg: MFA = client_receiver.recv().unwrap();
|
|
|
|
println!("{:?}", new_msg.encoded_msg);
|
2020-11-22 14:31:45 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
let server_listener = thread::spawn(move || loop {
|
|
|
|
let m1 = String::from("It's a encoded message from Jim");
|
|
|
|
let m2 = String::from("It's a encoded message from one killer, who trying to find you");
|
|
|
|
|
2020-11-22 14:48:24 +00:00
|
|
|
// let mut fromabove = ServerHandler{messages: vec![MFA(m1), MFA(m2)]};
|
2020-11-22 14:31:45 +00:00
|
|
|
|
2020-11-22 14:48:24 +00:00
|
|
|
// for msg in fromabove.messages.iter() {
|
|
|
|
let msg = MFA { encoded_msg: m1 };
|
2020-11-22 14:31:45 +00:00
|
|
|
|
2020-11-22 14:48:24 +00:00
|
|
|
client_sender.send(msg);
|
|
|
|
// }
|
2020-11-22 14:31:45 +00:00
|
|
|
|
|
|
|
let mut a: ClientHandler = ClientHandler {
|
|
|
|
message: ClientMessage::Message(String::from("yup")),
|
2020-11-22 14:48:24 +00:00
|
|
|
};
|
2020-11-22 14:31:45 +00:00
|
|
|
let it_will_drop = match a.message {
|
|
|
|
ClientMessage::Message(m) => m,
|
|
|
|
ClientMessage::Nope => String::from("fail!!"),
|
|
|
|
};
|
|
|
|
});
|
2020-11-22 14:48:24 +00:00
|
|
|
server_listener.join().expect("fail listening server");
|
|
|
|
client_listener.join().expect("fail listening client");
|
2020-11-22 14:31:45 +00:00
|
|
|
Ok(())
|
2020-11-01 16:46:47 +00:00
|
|
|
}
|
|
|
|
/*
|
2020-09-10 22:01:13 +00:00
|
|
|
fn main() {
|
2020-11-01 16:46:47 +00:00
|
|
|
let server = TcpListener::bind("127.0.0.1:9001").unwrap();
|
|
|
|
println!("{:?}", &server);
|
|
|
|
for stream in server.incoming() {
|
|
|
|
spawn(move || {
|
|
|
|
println!("{:?}", &stream);
|
|
|
|
let mut websocket: WebSocket<std::net::TcpStream> = accept(stream.unwrap()).unwrap();
|
|
|
|
loop {
|
|
|
|
let msg = websocket.read_message().unwrap();
|
|
|
|
|
|
|
|
// We do not want to send back ping/pong messages.
|
|
|
|
if msg.is_binary() || msg.is_text() {
|
|
|
|
websocket.write_message(msg).unwrap();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}*/
|
|
|
|
/*
|
|
|
|
let (one, two) = keys;
|
2020-09-10 22:01:13 +00:00
|
|
|
|
2020-11-01 16:46:47 +00:00
|
|
|
let value =String::from_utf8_lossy(&*one);
|
|
|
|
let strVal = String::from(value);
|
|
|
|
let newbytes = strVal.into_bytes();
|
|
|
|
print!("{:?}", newbytes);
|
2020-09-10 22:01:13 +00:00
|
|
|
|
2020-11-01 16:46:47 +00:00
|
|
|
let newkey = PrivateKey::import(newbytes);
|
2020-09-10 22:01:13 +00:00
|
|
|
|
2020-11-01 16:46:47 +00:00
|
|
|
Let conn = Connection::open("myfile.db").unwrap();
|
2020-09-10 22:01:13 +00:00
|
|
|
|
2020-11-01 16:46:47 +00:00
|
|
|
conn.execute("CREATE TABLE person (
|
|
|
|
id INTEGER PRIMARY KEY,
|
|
|
|
name TEXT NOT NULL,
|
|
|
|
email TEXT NOT NULL
|
|
|
|
)", NO_PARAMS).unwrap();
|
|
|
|
let name: String = "Steve Example".to_string();
|
|
|
|
let email: String = "steve@example.org".to_string();
|
|
|
|
conn.execute("INSERT INTO person (name, email) VALUES (?1, ?2)",
|
|
|
|
&[&name, &email]).unwrap();
|
2020-09-10 22:01:13 +00:00
|
|
|
|
|
|
|
}
|
2020-11-01 16:46:47 +00:00
|
|
|
*/
|
|
|
|
//let mut std = cli::cli_base::get_stdin();
|