Clean up code and improve readability

This commit is contained in:
onyinyang 2023-03-24 13:16:26 -04:00
parent 22ef5d157d
commit 562b74c274
No known key found for this signature in database
GPG Key ID: 156A6435430C2036
1 changed files with 18 additions and 30 deletions

View File

@ -20,7 +20,6 @@ use lox::{BridgeAuth, BridgeDb, OPENINV_LENGTH};
use rand::RngCore;
use rdsys_backend::{proto::ResourceDiff, start_stream};
use serde::{Deserialize, Serialize};
use serde_json;
use serde_with::serde_as;
use std::{
convert::Infallible,
@ -123,7 +122,6 @@ impl LoxServerContext {
fn update_bridge(&self, bridgeline: BridgeLine) -> bool {
let mut ba_obj = self.ba.lock().unwrap();
let mut db_obj = self.db.lock().unwrap();
ba_obj.bridge_update(&bridgeline)
}
@ -152,9 +150,9 @@ impl LoxServerContext {
fn gen_invite(&self) -> Invite {
let obj = self.db.lock().unwrap();
return Invite {
Invite {
invite: obj.invite(),
};
}
}
fn open_inv(&self, req: open_invite::Request) -> open_invite::Response {
@ -233,11 +231,11 @@ async fn handle(
.body(Body::from("Allow POST"))
.unwrap()),
_ => match (req.method(), req.uri().path()) {
(&Method::GET, "/invite") => Ok::<_, Infallible>(generate_invite(cloned_context)),
(&Method::GET, "/reachability") => {
(&Method::POST, "/invite") => Ok::<_, Infallible>(generate_invite(cloned_context)),
(&Method::POST, "/reachability") => {
Ok::<_, Infallible>(send_reachability_cred(cloned_context))
}
(&Method::GET, "/pubkeys") => Ok::<_, Infallible>(send_keys(cloned_context)),
(&Method::POST, "/pubkeys") => Ok::<_, Infallible>(send_keys(cloned_context)),
(&Method::POST, "/openreq") => Ok::<_, Infallible>({
let bytes = body::to_bytes(req.into_body()).await.unwrap();
verify_and_send_open_cred(bytes, cloned_context)
@ -286,10 +284,7 @@ async fn handle(
fn generate_invite(context: LoxServerContext) -> Response<Body> {
let invite = context.gen_invite();
let token = serde_json::to_string(&invite).unwrap();
let mut resp = Response::new(Body::from(token));
resp.headers_mut()
.insert("Access-Control-Allow-Origin", HeaderValue::from_static("*"));
resp
prepare_header(token)
}
// Return the serialized encrypted bridge table
@ -297,20 +292,13 @@ fn send_reachability_cred(context: LoxServerContext) -> Response<Body> {
context.advance_days_TEST(85); // FOR TESTING ONLY
let enc_table = context.encrypt_table();
let etable = EncBridgeTable { etable: enc_table };
let mut resp = Response::new(Body::from(serde_json::to_string(&etable).unwrap()));
resp.headers_mut()
.insert("Access-Control-Allow-Origin", HeaderValue::from_static("*"));
resp
prepare_header(serde_json::to_string(&etable).unwrap())
}
// Return the serialized pubkeys for the Bridge Authority
fn send_keys(context: LoxServerContext) -> Response<Body> {
let pubkeys = context.pubkeys();
let mut resp = Response::new(Body::from(serde_json::to_string(&pubkeys).unwrap()));
resp.headers_mut()
.insert("Access-Control-Allow-Origin", HeaderValue::from_static("*"));
resp
prepare_header(serde_json::to_string(&pubkeys).unwrap())
}
fn verify_and_send_open_cred(request: Bytes, context: LoxServerContext) -> Response<Body> {
@ -417,7 +405,7 @@ async fn rdsys_bridge_parser(
) {
tokio::select! {
start_bridge_parser = parse_bridges(rdsys_tx, rx) => start_bridge_parser ,
_ = kill.recv() => {println!("Shut down bridge_parser"); return},
_ = kill.recv() => {println!("Shut down bridge_parser");},
}
}
@ -427,7 +415,7 @@ async fn parse_bridges(rdsys_tx: mpsc::Sender<Command>, mut rx: mpsc::Receiver<R
loop {
let resourcediff = rx.recv().await.unwrap();
let cmd = Command::Rdsys {
resourcediff: resourcediff,
resourcediff,
};
rdsys_tx.send(cmd).await.unwrap();
sleep(Duration::from_secs(1)).await;
@ -440,7 +428,7 @@ async fn create_context_manager(
) {
tokio::select! {
create_context = context_manager(context_rx) => create_context,
_ = kill.recv() => {println!("Shut down context_manager"); return},
_ = kill.recv() => {println!("Shut down context_manager");},
}
}
@ -461,8 +449,8 @@ async fn context_manager(mut context_rx: mpsc::Receiver<Command>) {
match cmd {
Rdsys { resourcediff } => {
for new_resource in resourcediff.new {
for pt in new_resource {
if let Some(new_resources) = resourcediff.new {
for pt in new_resources {
println!("A NEW RESOURCE: {:?}", pt);
let mut bucket = [
BridgeLine::default(),
@ -510,8 +498,8 @@ async fn context_manager(mut context_rx: mpsc::Receiver<Command>) {
}
}
}
for changed_resource in resourcediff.changed {
for pt in changed_resource {
if let Some(changed_resources) = resourcediff.changed {
for pt in changed_resources {
println!("A NEW CHANGED RESOURCE: {:?}", pt);
for resource in pt.1 {
let mut ip_bytes: [u8; 16] = [0; 16];
@ -548,8 +536,8 @@ async fn context_manager(mut context_rx: mpsc::Receiver<Command>) {
}
}
}
for gone_resource in resourcediff.gone {
for pt in gone_resource {
if let Some(gone_resources) = resourcediff.gone {
for pt in gone_resources {
println!("A NEW GONE RESOURCE: {:?}", pt);
for resource in pt.1 {
let mut ip_bytes: [u8; 16] = [0; 16];
@ -672,7 +660,7 @@ async fn main() {
let request_tx = request_tx.clone();
let (response_tx, response_rx) = oneshot::channel();
let cmd = Command::Request {
req: req,
req,
sender: response_tx,
};
async move {