diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index b839506..3d37872 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -1,5 +1,8 @@
+
+
+
@@ -11,14 +14,12 @@
-
-
-
-
+
-
-
+
+
+
@@ -28,6 +29,14 @@
+
+
+
+
+
+
+
+
@@ -45,6 +54,7 @@
+
@@ -62,6 +72,11 @@
+
+
+
+
+
@@ -69,7 +84,9 @@
+
+
@@ -85,10 +102,15 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/api/handlers.rs b/src/api/handlers.rs
index 2d88634..1003c98 100644
--- a/src/api/handlers.rs
+++ b/src/api/handlers.rs
@@ -22,6 +22,13 @@ use crate::db::types::Id;
pub fn start_app(server_sender: SP) -> Result<()> {
server_sender.send(PackedMessage::ToFreenet(ClientHello::new("start_app_request".to_string(), 2.0).convert())).unwrap();
+ server_sender.send(PackedMessage::ToFreenet("\n\
+ ClientGet\n\
+ URI=USK@B5CYo9jdAndaZ4IoKdJKCi28bY96f03FhUdY4PO6anY,9AHiE5ZdMJ9BuIXdv7hucus5VbVtwz9tKjj9LcPbtwM,AQACAAE/user-3/0\n\
+ Identifier=check\n\
+ ReturnType=direct\n\
+ EndMessage\n\
+ \n".to_string())).unwrap();
Ok(())
//sending *JSON*, what everything is OK
}
diff --git a/src/chat/front_conn.rs b/src/chat/front_conn.rs
index 7565ae8..4494294 100644
--- a/src/chat/front_conn.rs
+++ b/src/chat/front_conn.rs
@@ -58,12 +58,21 @@ async fn connect_to_client(
.await
.expect("err during the ws handshake");
+ let ss = server_sender.clone();
log::info!("connected to: {}", addr);
let (sender, receiver) = ws.split();
- let t1 = task::spawn(connection_for_sending(receiver, server_sender, conn));
- connection_for_receiving(sender, client_receiver, client_repeater).await?;
+ log::debug!("launching repeater...");
+ let t1 = task::spawn(connection_for_receiving(
+ sender,
+ client_receiver,
+ client_repeater,
+ ));
+ let t2 = task::spawn(connection_for_sending(receiver, server_sender, conn));
+ let t3 = task::spawn(request_repeater(ss));
t1.await?;
+ t3.await?;
+ t2.await?;
}
Ok(())
@@ -75,24 +84,34 @@ async fn connection_for_receiving(
server_sender: SP,
) -> io::Result<()> {
log::info!("Connection for receiving launched");
+ // let mut prev: PackedMessage = PackedMessage::FromFreenet("nothing".to_string());
while let Ok(res) = client_receiver.recv() {
//TODO call client get after receiving NodeHello
+ // log::debug!("RES {:?}", &res);
+ // log::debug!("PREV {:?}", &prev);
+ // if res != &prev {
+ // prev = res.clone();
+ // log::debug!("they are different");
match res {
PackedMessage::FromCore(json) => {
+ let j = json.clone();
sender
- .send(Message::Text(json))
+ .send(Message::Text(j))
.await
.expect("Couldn't send message");
}
PackedMessage::FromFreenet(response) => {
+ let r = response.clone();
+ log::debug!("Got:\n {}", &response);
sender
// TODO freenet_response_handler
- .send(Message::Text(response))
+ .send(Message::Text(r.to_string()))
.await
.expect("Couldn't send messge");
}
_ => {}
}
+ // }
}
Ok(())
}
@@ -102,6 +121,7 @@ async fn connection_for_sending(
server_sender: SP,
conn: rusqlite::Connection,
) -> io::Result<()> {
+ let ss = server_sender.clone();
log::info!("Connection for sending launched");
let mut new_msg = receiver.next();
loop {
diff --git a/src/chat/serv_conn.rs b/src/chat/serv_conn.rs
index 0cf09dc..57d6f74 100644
--- a/src/chat/serv_conn.rs
+++ b/src/chat/serv_conn.rs
@@ -19,8 +19,10 @@ async fn connect_to_server(client_sender: SP, server_receiver: RP) -> io::Result
.unwrap_or_else(|| "127.0.0.1:9481".to_string());
let sr = client_sender.clone();
- let stream = TcpStream::connect(&addr).await.expect("Unable to connect to FCP");
- let (receiver, sender) = stream.into_split();
+ let stream = TcpStream::connect(&addr)
+ .await
+ .expect("Unable to connect to FCP");
+ let (receiver, sender) = stream.into_split();
log::info!("Connected to FCP");
let t = task::spawn(server_responce_getter(receiver, client_sender));
to_server_sender(sender, server_receiver, sr).await?;
@@ -30,17 +32,22 @@ async fn connect_to_server(client_sender: SP, server_receiver: RP) -> io::Result
}
}
async fn server_responce_getter(mut receiver: OwnedReadHalf, client_sender: SP) -> io::Result<()> {
+ // let mut prev = [0; 1024];
loop {
// each freenet responce have an identifier and program will define what to do with request by this identifier
//TODO create handle_fcp_response function
let mut buffer = [0; 1024];
match receiver.read(&mut buffer).await {
Ok(_) => {
- let received = String::from_utf8_lossy(&buffer[..]);
- client_sender
- .send(PackedMessage::FromFreenet(received.to_string()))
- .expect("Falied to send message to client thread");
- log::info!("Sended to client!");
+ // if prev != buffer {
+ let received = String::from_utf8_lossy(&buffer[..]);
+ log::debug!("gotted {:?}", &received);
+ client_sender
+ .send(PackedMessage::FromFreenet(received.to_string()))
+ .expect("Falied to send message to client thread");
+ log::info!("Sended to client! {}", received.chars().count());
+ // prev = buffer;
+ // }
}
Err(e) => log::error!("Error: {} ", e),
}
diff --git a/src/chat/serv_handler.rs b/src/chat/serv_handler.rs
index 8fb05f3..a9f499c 100644
--- a/src/chat/serv_handler.rs
+++ b/src/chat/serv_handler.rs
@@ -25,6 +25,7 @@ pub async fn to_server_sender(
log::info!("Message sended to client thread");
}
PackedMessage::ToFreenet(req) => {
+ log::debug!("SENDED {}", req);
sender.write(req.as_bytes()).await?;
log::info!("Message sended to freenet");
}
diff --git a/src/chat/stay_awake.rs b/src/chat/stay_awake.rs
index dc55887..fd0a023 100644
--- a/src/chat/stay_awake.rs
+++ b/src/chat/stay_awake.rs
@@ -1,31 +1,47 @@
use crate::chat::types::PackedMessage;
use async_std::io;
use fcpv2::client::fcp_types::ClientGet;
-use fcpv2::types::{traits::FcpRequest, ReturnType, SSK};
+use fcpv2::types::{traits::FcpRequest, ReturnType, KEY, SSK, USK};
use std::sync::mpsc::Sender;
type SP = Sender;
pub async fn request_repeater(ss: SP) -> io::Result<()> {
+ // loop {
+ //TODO create a field with tracked users
+ log::debug!("Request Repeater Started!");
loop {
- //TODO create a field with tracked users
- let time = std::time::Duration::from_millis(1000);
+ let time = std::time::Duration::from_millis(600);
std::thread::sleep(time);
+ log::debug!("enough sleep");
match ss.send(PackedMessage::ToFreenet(
- ClientGet::new_default(SSK{sign_key: "9Zq-H7vg1iN6852rcL3mQQaIfPZODnIJnKyIy1dE6mk".to_string(), decrypt_key: "n-vQibdLXPDMtW7k5ftbR9HVz4Tb184lUc~MiUGHWAM".to_string(),settings: Some("AQACAAE".to_string())},
- "check",
- ReturnType::Direct).convert()
- // message: format!(
- // "ClientGet\n\
- // URI=KSK@msg23.txt\n\
- // Identifier=doesnt_matter?\n\
- // Verbosity=0\n\
- // ReturnType=direct\n\
- // EndMessage\n\n"
- // ),
+ ClientGet::new_default(
+ KEY::USK(
+ USK {
+ ssk: SSK {
+ sign_key: "B5CYo9jdAndaZ4IoKdJKCi28bY96f03FhUdY4PO6anY".to_string(),
+ decrypt_key: "9AHiE5ZdMJ9BuIXdv7hucus5VbVtwz9tKjj9LcPbtwM".to_string(),
+ settings: Some("AQACAAE".to_string()),
+ },
+ path: "user-3/0".to_string(),
+ }
+ ),
+ "check",
+ ReturnType::Direct,
+ )
+ .convert(),
)) {
- Ok(_) => {}
- Err(e) => log::error!("{:?}", e),
- }
+ Ok(_) => {},
+ Err(e) => continue ,
+ }
}
}
+//}
+// message: format!(
+// "ClientGet\n\
+// URI=KSK@msg23.txt\n\
+// Identifier=doesnt_matter?\n\
+// Verbosity=0\n\
+// ReturnType=direct\n\
+// EndMessage\n\n"
+// ),
diff --git a/src/chat/types.rs b/src/chat/types.rs
index a0ac380..3a22905 100644
--- a/src/chat/types.rs
+++ b/src/chat/types.rs
@@ -32,7 +32,7 @@ use std::sync::mpsc::{Receiver, Sender};
// }
//}
-
+#[derive(PartialEq, Clone, Debug)]
pub enum PackedMessage {
ToFreenet(String),
FromFreenet(String),