Clean up code and improve readability
This commit is contained in:
parent
22ef5d157d
commit
562b74c274
|
@ -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 {
|
||||||
|
|
Loading…
Reference in New Issue