Clean up code and improve readability

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