Broken status message to client
parent
1282848df3
commit
b7251620cc
|
@ -2,11 +2,16 @@ use paris::{error, info, success};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use std::error::Error;
|
use std::error::Error;
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use tokio::io::AsyncWriteExt;
|
use tokio::io::{AsyncBufReadExt, AsyncReadExt, AsyncWriteExt, BufReader};
|
||||||
use tokio::net::TcpStream;
|
use tokio::net::TcpStream;
|
||||||
use url::Url;
|
use url::Url;
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
|
|
||||||
|
#[derive(Serialize, Deserialize, Debug)]
|
||||||
|
struct Status {
|
||||||
|
status: bool,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, Debug)]
|
#[derive(Serialize, Deserialize, Debug)]
|
||||||
enum BuildSystem {
|
enum BuildSystem {
|
||||||
Cargo,
|
Cargo,
|
||||||
|
@ -80,8 +85,12 @@ struct Message {
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
async fn main() -> Result<(), Box<dyn Error>> {
|
async fn main() -> Result<(), Box<dyn Error>> {
|
||||||
// Connect to a peer
|
// Connect to a peer
|
||||||
let mut stream = TcpStream::connect("127.0.0.1:9134").await?;
|
let mut stream = TcpStream::connect("127.0.0.1:9134").await.unwrap();
|
||||||
success!("Connected to: <green>127.0.0.1:9134<//>");
|
success!("Connected to: <green>127.0.0.1:9134<//>");
|
||||||
|
let (reader, mut writer) = stream.split();
|
||||||
|
|
||||||
|
let mut reader = BufReader::new(reader);
|
||||||
|
let mut line = String::new();
|
||||||
|
|
||||||
let test_command = Command {
|
let test_command = Command {
|
||||||
build_system: BuildSystem::Cargo,
|
build_system: BuildSystem::Cargo,
|
||||||
|
@ -99,12 +108,30 @@ async fn main() -> Result<(), Box<dyn Error>> {
|
||||||
basename: "serde_json".to_string(),
|
basename: "serde_json".to_string(),
|
||||||
};
|
};
|
||||||
|
|
||||||
let j = serde_json::to_string(&test_message)?;
|
let j = serde_json::to_string(&test_message).unwrap();
|
||||||
stream.write_all(&j.as_bytes()).await?;
|
writer.write_all(&j.as_bytes()).await.unwrap();
|
||||||
|
|
||||||
info!(
|
info!(
|
||||||
"Sent JSON:\n<bright-white>{}<//>",
|
"Sent JSON:\n<bright-white>{}<//>",
|
||||||
serde_json::to_string_pretty(&test_message)?
|
serde_json::to_string_pretty(&test_message).unwrap()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
loop {
|
||||||
|
info!("{}", &line);
|
||||||
|
let bytes_read = reader.read_line(&mut line).await.unwrap();
|
||||||
|
|
||||||
|
let json: Status = match serde_json::from_str(&line) {
|
||||||
|
Ok(v) => v,
|
||||||
|
Err(e) => {
|
||||||
|
error!("{}", e);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
info!(
|
||||||
|
"Got JSON:\n<bright-white>{}<//>",
|
||||||
|
serde_json::to_string_pretty(&test_message).unwrap()
|
||||||
|
);
|
||||||
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,11 @@ use url::Url;
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
use uuid_simd::UuidExt;
|
use uuid_simd::UuidExt;
|
||||||
|
|
||||||
|
#[derive(Serialize, Deserialize)]
|
||||||
|
struct Status {
|
||||||
|
status: bool,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize)]
|
#[derive(Serialize, Deserialize)]
|
||||||
struct HostConfig {
|
struct HostConfig {
|
||||||
ip: String,
|
ip: String,
|
||||||
|
@ -165,7 +170,7 @@ async fn process_socket(
|
||||||
salt: SaltString,
|
salt: SaltString,
|
||||||
argon2: Argon2<'_>,
|
argon2: Argon2<'_>,
|
||||||
) {
|
) {
|
||||||
let (reader, writer) = socket.split();
|
let (reader, mut writer) = socket.split();
|
||||||
|
|
||||||
let mut reader = BufReader::new(reader);
|
let mut reader = BufReader::new(reader);
|
||||||
let mut line = String::new();
|
let mut line = String::new();
|
||||||
|
@ -191,9 +196,11 @@ async fn process_socket(
|
||||||
.authenticate(pass.clone(), salt.clone(), argon2.clone())
|
.authenticate(pass.clone(), salt.clone(), argon2.clone())
|
||||||
.await
|
.await
|
||||||
{
|
{
|
||||||
tokio::spawn(async move {
|
build(json, address).await;
|
||||||
build(json, address).await;
|
let status = Status { status: true };
|
||||||
});
|
let j_status = serde_json::to_string(&status).unwrap();
|
||||||
|
info!("<bright-white>{}<//>", j_status);
|
||||||
|
writer.write_all(j_status.as_bytes()).await.unwrap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
None => {
|
None => {
|
||||||
|
@ -202,6 +209,10 @@ async fn process_socket(
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
build(json, address).await;
|
build(json, address).await;
|
||||||
|
let status = Status { status: true };
|
||||||
|
let j_status = serde_json::to_string(&status).unwrap();
|
||||||
|
info!("<bright-white>{}<//>", j_status);
|
||||||
|
writer.write_all(j_status.as_bytes()).await.unwrap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue