X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=src%2Fconfig.rs;h=4b94b3ed73357db4659e2c3fde777e4e67b13e66;hb=61e5e6f6f32aa750ba645574e8e101e10d71c202;hp=c38b580661af81fd2ed7118486f48ff0936402b8;hpb=f61cda6a95175c90fa7986e32bf7080d2167342a;p=hippotat.git diff --git a/src/config.rs b/src/config.rs index c38b580..4b94b3e 100644 --- a/src/config.rs +++ b/src/config.rs @@ -58,7 +58,7 @@ ifname_client = hippo%d ifname_server = shippo%d max_clock_skew = 300 -ipif = userv root ipif %(local)s,%(peer)s,%(mtu)s,slip,%(ifname)s '%(rnets)s' +ipif = userv root ipif %{local},%{peer},%{mtu},slip,%{ifname} '%{rnets}' mtu = 1500 @@ -694,11 +694,11 @@ impl InstanceConfig { .collect::>(); let bad = parking_lot::Mutex::new(vec![]); *var = regex_replace_all!( - r#"%(?:%|\((\w+)\)s|.)"#, + r#"%(?:%|\((\w+)\)s|\{(\w+)\}|.)"#, &var, - |whole, k| (|| Ok::<_,String>({ + |whole, k1, k2| (|| Ok::<_,String>({ if whole == "%%" { "%" } - else if k != "" { + else if let Some(&k) = [k1,k2].iter().find(|&&s| s != "") { substs.get(k).ok_or_else( || format!("unknown key %({})s", k) )?