From c17333e5c0ed42e07f33c21b7169441ef3a368d3 Mon Sep 17 00:00:00 2001 From: Vecna Date: Thu, 7 Sep 2023 14:26:45 -0400 Subject: [PATCH] Use a bucket, not a single bridgeline --- src/main.rs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/main.rs b/src/main.rs index aa6590d..537d562 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,6 +7,7 @@ use client_net::HyperNet; use curve25519_dalek::scalar::Scalar; use getopts::Options; use lox_library::bridge_table::BridgeLine; +use lox_library::bridge_table::MAX_BRIDGES_PER_BUCKET; use lox_library::IssuerPubKey; use serde::Serialize; use std::env::args; @@ -98,25 +99,29 @@ async fn main() { // Get Lox Credential and BridgeLine let lox_cred_filename = "lox_cred.json"; - let bridgeline_filename = "bridgeline.json"; - let (lox_cred, bridgeline) = if matches.opt_present("N") + let bucket_filename = "bucket.json"; + let (lox_cred, bucket) = if matches.opt_present("N") || !Path::new(lox_cred_filename).exists() - || !Path::new(bridgeline_filename).exists() + || !Path::new(bucket_filename).exists() { // get new Lox Credential let open_invite = get_open_invitation(&net).await; let (cred, bl) = get_lox_credential(&net, &open_invite, get_lox_pub(&lox_auth_pubkeys)).await; + let mut bucket = [BridgeLine::default(); MAX_BRIDGES_PER_BUCKET]; + // note: this is a bucket with one real bridgeline and n-1 + // default (zeroed out) bridgelines + bucket[0] = bl; // save to files for next time save_object(&cred, &lox_cred_filename); - save_object(&bl, &bridgeline_filename); - (cred, bl) + save_object(&bucket, &bucket_filename); + (cred, bucket) } else { // Read existing Lox Credential and BridgeLine from files let cred = serde_json::from_reader(File::open(lox_cred_filename).unwrap()).unwrap(); - let bl = serde_json::from_reader(File::open(bridgeline_filename).unwrap()).unwrap(); - (cred, bl) + let bucket = serde_json::from_reader(File::open(bucket_filename).unwrap()).unwrap(); + (cred, bucket) }; let lox_cred = if matches.opt_present("L") {