From d32c352ccc3cf00ab99d61b13e8e457641afca3c Mon Sep 17 00:00:00 2001 From: Vecna Date: Tue, 4 Jun 2024 12:49:24 -0400 Subject: [PATCH] Have Troll Patrol generate new negative report key if necessary --- src/bin/simulation.rs | 4 ---- src/request_handler.rs | 9 ++++++++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/bin/simulation.rs b/src/bin/simulation.rs index dac46ec..63b1bae 100644 --- a/src/bin/simulation.rs +++ b/src/bin/simulation.rs @@ -199,10 +199,6 @@ pub async fn main() { } } - // Have Troll Patrol run its update process so we have a negative - // report key for tomorrow - tp_net_test.request("/update".to_string(), vec![]).await; - // Advance LA's time to tomorrow la_net_test .request( diff --git a/src/request_handler.rs b/src/request_handler.rs index 04489ef..f2a6d2f 100644 --- a/src/request_handler.rs +++ b/src/request_handler.rs @@ -33,7 +33,14 @@ pub async fn handle(db: &Db, req: Request) -> Result, Infal return Ok(prepare_header(val)); } }; - let pubkey = get_negative_report_public_key(&db, date); + // Get the current key or generate a new one. Note that + // this code is only called in simulation. In + // production, users should not be able to induce Troll + // Patrol to generate new keys. + let pubkey = match get_negative_report_public_key(&db, date) { + Some(k) => Some(k), + None => new_negative_report_key(&db, date), + }; prepare_header(serde_json::to_string(&pubkey).unwrap()) }), (&Method::POST, "/negativereport") => Ok::<_, Infallible>({