diff --git a/Cargo.lock b/Cargo.lock index cfbbf67..2f4c604 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -488,9 +488,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.112" +version = "0.2.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125" +checksum = "eef78b64d87775463c549fbd80e19249ef436ea3bf1de2a1eb7e717ec7fab1e9" [[package]] name = "libsqlite3-sys" @@ -884,18 +884,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.133" +version = "1.0.134" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97565067517b60e2d1ea8b268e59ce036de907ac523ad83a0475da04e818989a" +checksum = "96b3c34c1690edf8174f5b289a336ab03f568a4460d8c6df75f2f3a692b3bc6a" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.133" +version = "1.0.134" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed201699328568d8d08208fdd080e3ff594e6c422e438b6705905da01005d537" +checksum = "784ed1fbfa13fe191077537b0d70ec8ad1e903cfe04831da608aa36457cb653d" dependencies = [ "proc-macro2", "quote", @@ -961,9 +961,9 @@ checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" [[package]] name = "socket2" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516" +checksum = "0f82496b90c36d70af5fcd482edaa2e0bd16fade569de1330405fecbbdac736b" dependencies = [ "libc", "winapi", @@ -1391,7 +1391,7 @@ dependencies = [ [[package]] name = "xuproxy" -version = "0.1.0" +version = "0.2.0" dependencies = [ "anyhow", "hex", diff --git a/src/main.rs b/src/main.rs index 18627b3..fc4e685 100644 --- a/src/main.rs +++ b/src/main.rs @@ -70,14 +70,15 @@ async fn main() -> anyhow::Result<()> { let (ctx, _) = broadcast::channel(1); let server_task = tokio::spawn(run_server(config.clone(), db_conn.clone(), ctx.subscribe())); - let cleanup_task = tokio::spawn(cleanup_task(db_conn, config, ctx.subscribe())); + let cleanup_task = config.cleanup.map(|_| tokio::spawn(cleanup_task(db_conn, config, ctx.subscribe()))); terminate_signal().await; info!("Shutdown signal received, powering down"); let _ = ctx.send(()); server_task.await .unwrap_or_else(|e| error!("Couldn't await the server task: {}", e)); - cleanup_task.await - .unwrap_or_else(|e| error!("Couldn't await the cleanup task: {}", e)); + if let Some(t) = cleanup_task { + t.await.unwrap_or_else(|e| error!("Couldn't await the cleanup task: {}", e)); + } executor_thread.join().unwrap(); Ok(()) }