diff options
Diffstat (limited to '')
| -rw-r--r-- | src/bin/server/main.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/bin/server/main.rs b/src/bin/server/main.rs index 2770387..85e3134 100644 --- a/src/bin/server/main.rs +++ b/src/bin/server/main.rs | |||
| @@ -35,6 +35,20 @@ fn main() { | |||
| 35 | } | 35 | } |
| 36 | }; | 36 | }; |
| 37 | 37 | ||
| 38 | // A round cannot survive the process that held its state. Record any bet | ||
| 39 | // that was reserved but never settled, before serving new players. | ||
| 40 | let db_path = std::env::var("SERVER_DB").unwrap_or_else(|_| "server.db".to_string()); | ||
| 41 | match zagan_bet::server::core::recover_orphaned_reservations(&db_path) { | ||
| 42 | Ok(0) => {} | ||
| 43 | Ok(count) => println!( | ||
| 44 | "Settled {count} orphaned reservation(s) as abandoned after a restart" | ||
| 45 | ), | ||
| 46 | Err(error) => { | ||
| 47 | eprintln!("Failed to settle orphaned reservations in {db_path}: {error}"); | ||
| 48 | std::process::exit(1); | ||
| 49 | } | ||
| 50 | } | ||
| 51 | |||
| 38 | let tls = match tls::TlsServer::new("identity.p12") { | 52 | let tls = match tls::TlsServer::new("identity.p12") { |
| 39 | Ok(t) => Arc::new(t), | 53 | Ok(t) => Arc::new(t), |
| 40 | Err(e) => { | 54 | Err(e) => { |
