diff --git a/exts/devmaster/src/lib/rules/exec_unit.rs b/exts/devmaster/src/lib/rules/exec_unit.rs index 6bd12343840b545e2c0033b3dc82896688c500b1..d3f72ca34a4a06284f2f8a37c7c95f11de079e7b 100644 --- a/exts/devmaster/src/lib/rules/exec_unit.rs +++ b/exts/devmaster/src/lib/rules/exec_unit.rs @@ -241,14 +241,23 @@ impl ExecuteUnitData { } fn rename_netif(&self) -> Result { + let ifindex = match self.device.borrow().get_ifindex().context(DeviceSnafu) { + Ok(ifindex) => ifindex, + Err(e) => { + if e.get_errno() == nix::Error::ENOENT { + return Ok(false); + } + + return Err(e); + } + }; + let rt = tokio::runtime::Runtime::new().unwrap(); if let Err(e) = rt.block_on(async { let (connection, handle, _) = new_connection().unwrap(); tokio::spawn(connection); - let ifindex = self.device.borrow().get_ifindex().context(DeviceSnafu)?; - set_link_name(handle, ifindex, self.name.clone()) .await .context(RtnetlinkSnafu) diff --git a/exts/devmaster/src/lib/rules/node.rs b/exts/devmaster/src/lib/rules/node.rs index c5fbff0f99cedebab780b97a5fc586a7c271e518..3a68f0bde6db42f8ae505f4e9ff1e69dd13e88da 100644 --- a/exts/devmaster/src/lib/rules/node.rs +++ b/exts/devmaster/src/lib/rules/node.rs @@ -379,7 +379,7 @@ pub(crate) fn get_prior_dir(symlink: &str) -> Result { Some(v) => v, }; - let name = match cano_link.strip_prefix("/dev") { + let name = match cano_link.strip_prefix("/dev/") { Some(s) => s, None => { return Err(Error::Nix { @@ -716,7 +716,7 @@ mod test { } } - remove_dir_all("/run/devmaster/links/\\x2ftest\\x2fupdate_prior_dir/").unwrap(); + remove_dir_all("/run/devmaster/links/test\\x2fupdate_prior_dir/").unwrap(); } Err(e) => { assert!(e.get_errno() == nix::Error::EACCES); diff --git a/exts/devmaster/src/lib/rules/rules_load.rs b/exts/devmaster/src/lib/rules/rules_load.rs index d5bd8ebba3b6f45fa5d4e0d2cd22020c4b85698c..a5e4237960135b0c3230753c30cac2abb9a33432 100644 --- a/exts/devmaster/src/lib/rules/rules_load.rs +++ b/exts/devmaster/src/lib/rules/rules_load.rs @@ -1660,7 +1660,7 @@ impl RuleToken { if op != OperatorType::Assign { return Err(Error::RulesLoadError { - msg: "Key 'GOTO' can not take assign operator.".to_string(), + msg: "Key 'GOTO' should take '=' operator.".to_string(), }); } @@ -1683,7 +1683,7 @@ impl RuleToken { if op != OperatorType::Assign { return Err(Error::RulesLoadError { - msg: "Key 'LABEL' can not take assign operator.".to_string(), + msg: "Key 'LABEL' should take '=' operator.".to_string(), }); }