From e94c0a345f587801ac5d1a84281ac90b717cd088 Mon Sep 17 00:00:00 2001 From: Matt Fleming Date: Mon, 21 Oct 2024 11:05:28 -0400 Subject: Make opt optional for frontends Allow frontends to avoid jumping through hoops to create an Opt object, for example, when configuration is handled by a config file. Includes-commit: 8204820b217b6d60906b8361d2e077ed743b970b Replicated-from: https://github.com/cloudflare/pingora/pull/390 --- .bleep | 2 +- pingora-core/src/server/mod.rs | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.bleep b/.bleep index ec4e3de..6aa8cd3 100644 --- a/.bleep +++ b/.bleep @@ -1 +1 @@ -e7a903e2509b977352e40d5f0be884a04379c066 \ No newline at end of file +986270b9e07bce082ff02c86ca183b8c81d7abb8 \ No newline at end of file diff --git a/pingora-core/src/server/mod.rs b/pingora-core/src/server/mod.rs index 9762dc8..3622354 100644 --- a/pingora-core/src/server/mod.rs +++ b/pingora-core/src/server/mod.rs @@ -194,11 +194,13 @@ impl Server { /// /// If a configuration file path is provided as part of `opt`, it will be ignored /// and a warning will be logged. - pub fn new_with_opt_and_conf(opt: Opt, mut conf: ServerConf) -> Server { - if let Some(c) = opt.conf.as_ref() { - warn!("Ignoring command line argument using '{c}' as configuration, and using provided configuration instead."); + pub fn new_with_opt_and_conf(opt: Option, mut conf: ServerConf) -> Server { + if let Some(opt) = &opt { + if let Some(c) = opt.conf.as_ref() { + warn!("Ignoring command line argument using '{c}' as configuration, and using provided configuration instead."); + } + conf.merge_with_opt(&opt); } - conf.merge_with_opt(&opt); let (tx, rx) = watch::channel(false); @@ -209,7 +211,7 @@ impl Server { shutdown_watch: tx, shutdown_recv: rx, configuration: Arc::new(conf), - options: Some(opt), + options: opt, #[cfg(feature = "sentry")] sentry: None, } -- cgit v1.2.3