chiark / gitweb /
config, wip parsing
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 24 Jul 2021 12:39:23 +0000 (13:39 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 24 Jul 2021 12:39:23 +0000 (13:39 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Cargo.lock
Cargo.toml
src/config.rs
src/prelude.rs

index 247b02fbd9f0ec195803e978a4aad6228ea970af..f3d40afd51f2010bfde5c344d158e3e9dbf99326 100644 (file)
@@ -202,6 +202,7 @@ dependencies = [
  "fehler",
  "hippotat-macros",
  "hyper",
+ "ipnet",
  "itertools",
  "lazy-regex",
  "log",
@@ -292,6 +293,12 @@ dependencies = [
  "cfg-if",
 ]
 
+[[package]]
+name = "ipnet"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68f2d64f2edebec4ce84ad108148e67e1064789bee435edc5b60ad398714a3a9"
+
 [[package]]
 name = "itertools"
 version = "0.10.1"
index 9396f91a758fbee17054d59eef6c8fcf2887910b..d2f3b3001252e1165621f4fafcd94f2a88af805c 100644 (file)
@@ -21,6 +21,7 @@ env_logger = "0.9"
 extend = "1"
 fehler = "1"
 hyper = "0.14"
+ipnet = "2"
 itertools = "0.10"
 lazy-regex = "2"
 regex = "1.5"
index 9b0f18411344c355b67dcaca87ba1bf34df695de..ed4023e0d6e0af0a21caf5c8d3e193c37244e2b6 100644 (file)
@@ -38,7 +38,7 @@ pub struct InstanceConfig {
 
   // Ordinary settings:
   pub addrs:                        Vec<IpAddr>,
-//xxx  pub vnetwork:                     Vec<CidrString>,
+  pub vnetwork:                     Vec<IpNet>,
   pub vaddr:                        Vec<IpAddr>,
   pub vrelay:                       IpAddr,
   pub port:                         u16,
@@ -55,7 +55,7 @@ pub struct InstanceConfig {
   #[client]  pub max_batch_up:                 u32,
   #[client]  pub http_retry:                   Duration,
   #[client]  pub url:                          Uri,
-//xxx  #[client]  pub vroutes:                      Vec<CidrString>,
+  #[client]  pub vroutes:                      Vec<IpNet>,
 }
 
 #[derive(Debug,Clone,Hash,Eq,PartialEq)]
@@ -300,6 +300,7 @@ macro_rules! parseable_from_str { ($t:ty $(, $def:expr)? ) => {
 parseable_from_str!{u16, default() }
 parseable_from_str!{u32, default() }
 parseable_from_str!{String, default() }
+parseable_from_str!{IpNet, default() }
 parseable_from_str!{IpAddr, Ipv4Addr::UNSPECIFIED.into() }
 parseable_from_str!{Uri, default() }
 
index 29336ff716ff235631c1fb4339bab7694ee9e7aa..bcb3416898f0e3834a78edd20613e2eef0bdc32b 100644 (file)
@@ -17,6 +17,7 @@ pub use anyhow::{anyhow, Context};
 pub use extend::ext;
 pub use fehler::{throw, throws};
 pub use hyper::Uri;
+pub use ipnet::IpNet;
 pub use itertools::Itertools;
 pub use lazy_regex::regex_is_match;
 pub use structopt::StructOpt;