]> OzVa Git service - ozva-cloud/commitdiff
fix: unable to start if config file omit bind/port fields (#294)
authorsigoden <sigoden@gmail.com>
Sat, 25 Nov 2023 10:54:36 +0000 (18:54 +0800)
committerGitHub <noreply@github.com>
Sat, 25 Nov 2023 10:54:36 +0000 (18:54 +0800)
src/args.rs

index fe2ffb30790dce677f251e815f468b1ed3421d0f..c7b00a475b3f24ff860b1252dfad009e1b8b8ef0 100644 (file)
@@ -237,7 +237,9 @@ pub struct Args {
     pub serve_path: PathBuf,
     #[serde(deserialize_with = "deserialize_bind_addrs")]
     #[serde(rename = "bind")]
+    #[serde(default = "default_addrs")]
     pub addrs: Vec<BindAddr>,
+    #[serde(default = "default_port")]
     pub port: u16,
     #[serde(skip)]
     pub path_is_file: bool,
@@ -273,8 +275,8 @@ impl Args {
     pub fn parse(matches: ArgMatches) -> Result<Args> {
         let mut args = Self {
             serve_path: default_serve_path(),
-            addrs: BindAddr::parse_addrs(&["0.0.0.0", "::"]).unwrap(),
-            port: 5000,
+            addrs: default_addrs(),
+            port: default_port(),
             ..Default::default()
         };
 
@@ -479,3 +481,11 @@ where
 fn default_serve_path() -> PathBuf {
     PathBuf::from(".")
 }
+
+fn default_addrs() -> Vec<BindAddr> {
+    BindAddr::parse_addrs(&["0.0.0.0", "::"]).unwrap()
+}
+
+fn default_port() -> u16 {
+    5000
+}