Use the real structure with Server-Broker-Client instead of Client-Server-Requester previously used in Bonk v1

This commit is contained in:
2024-02-12 17:33:56 +01:00
parent 7ee40b7dbe
commit 857b9171af
11 changed files with 604 additions and 157 deletions

View File

@@ -8,3 +8,4 @@ edition = "2021"
[dependencies]
tokio-rustls = "0.25.0"
rustls-pemfile = "2.0.0"
serde = { version = "1.0", features = ["derive"] }

View File

@@ -1,5 +1,6 @@
use std::io::{BufReader, Error, ErrorKind};
use rustls_pemfile::{read_one, Item};
use serde::{Deserialize, Serialize};
use tokio_rustls::rustls::pki_types::{CertificateDer, PrivatePkcs8KeyDer};
pub fn load_cert(filename: &str) -> std::io::Result<CertificateDer> {
@@ -23,3 +24,39 @@ pub fn load_prkey(filename: &str) -> std::io::Result<PrivatePkcs8KeyDer> {
Err(Error::new(ErrorKind::InvalidInput, "no pkcs8key"))
}
}
#[derive(Debug, Serialize, Deserialize)]
pub enum RequiredReplyValues {
Ok,
GenericFailure { status_code: u32, msg: Option<String> },
}
#[derive(Debug, Serialize, Deserialize)]
pub enum FromServerMessage {
RequiredReply(RequiredReplyValues),
ChangeName { name: String },
WhoAmI,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum YouAreValues {
Registered { name: String },
NotRegistered,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum ToServerMessage {
Required { id: String },
YouAre(YouAreValues),
}
#[derive(Debug, Serialize, Deserialize)]
pub enum FromGuestServerMessage {
Announce { name: String }
}
#[derive(Debug, Serialize, Deserialize)]
pub enum ToGuestServerMessage {
OkAnnounce {},
FailedAnnounce { status_code: u32, msg: Option<String> }, // TODO: make it better?
}