From 78e39ccc831dcc3e2ceb365df492a544ae84ff5f Mon Sep 17 00:00:00 2001 From: chenjiayi Date: Tue, 9 Apr 2024 19:27:45 +0800 Subject: [PATCH 1/3] fix(devmaster): correct the database path The database is not cleaned up after remove uevent, as the database path is incorrect. --- exts/devmaster/src/lib/utils/commons.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exts/devmaster/src/lib/utils/commons.rs b/exts/devmaster/src/lib/utils/commons.rs index 700caf2d..80e37b3a 100644 --- a/exts/devmaster/src/lib/utils/commons.rs +++ b/exts/devmaster/src/lib/utils/commons.rs @@ -19,7 +19,7 @@ use std::{ use crate::{error::*, log_dev, rules::FormatSubstitutionType, utils::trie::*}; use basic::{error::errno_is_privilege, IN_SET}; -use device::{Device, DB_BASE_DIR}; +use device::{Device, DB_BASE_DIR, DEFAULT_BASE_DIR}; use lazy_static::lazy_static; use nix::{errno::Errno, unistd::unlink}; use snafu::ResultExt; @@ -575,7 +575,7 @@ pub(crate) fn device_update_tag( pub(crate) fn cleanup_db(dev: Rc) -> Result<()> { let id = dev.get_device_id().context(DeviceSnafu)?; - let db_path = format!("{}{}", DB_BASE_DIR, id); + let db_path = format!("{}/{}/{}", DEFAULT_BASE_DIR, DB_BASE_DIR, id); match unlink(db_path.as_str()) { Ok(_) => log_dev!(debug, dev, format!("unlinked '{}'", db_path)), -- Gitee From 90bab54b6648407577082c6baf80e766a6ad8c61 Mon Sep 17 00:00:00 2001 From: chenjiayi Date: Wed, 17 Apr 2024 18:41:39 +0800 Subject: [PATCH 2/3] fix(devmaster): fix incorrect cmdline parameter value due to previous refactor Previous 87234aafd1ab7a82588e45b8d104bda2d708ef90 changed the procedure on how to get a cmdline parameter. The logic in devmaster was not modified synchronously. --- exts/devmaster/src/lib/rules/exec_mgr.rs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/exts/devmaster/src/lib/rules/exec_mgr.rs b/exts/devmaster/src/lib/rules/exec_mgr.rs index 22b9a2ad..54e0093e 100644 --- a/exts/devmaster/src/lib/rules/exec_mgr.rs +++ b/exts/devmaster/src/lib/rules/exec_mgr.rs @@ -903,20 +903,16 @@ impl ExecuteManager { } MatchImportCmdline => { let cmdline = basic::cmdline::Cmdline::default(); - let s = cmdline.get_param(&token_value); - if s.is_none() { + if !cmdline.has_param(&token_value) { return Ok(token.read().unwrap().as_ref().unwrap().op == OperatorType::Nomatch); } - let value = match s.as_ref().unwrap().split_once('=') { - Some(ret) => ret.1, - None => "", - }; + let value = cmdline.get_param(&token_value); execute_err!( token.read().unwrap().as_ref().unwrap(), - device.add_property(&token_value, if value.is_empty() { "1" } else { value }) + device.add_property(&token_value, &value.unwrap_or_default()) )?; Ok(token.read().unwrap().as_ref().unwrap().op == OperatorType::Match) -- Gitee From c486f1c60dbf56fc174f3c488484fc6e0a8b903d Mon Sep 17 00:00:00 2001 From: chenjiayi Date: Wed, 17 Apr 2024 18:52:58 +0800 Subject: [PATCH 3/3] fix(devmaster): supply log messages on loading .link config files Supply missed log messages. --- exts/devmaster/src/lib/config/netif_conf.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/exts/devmaster/src/lib/config/netif_conf.rs b/exts/devmaster/src/lib/config/netif_conf.rs index 9c593902..44ae7f72 100644 --- a/exts/devmaster/src/lib/config/netif_conf.rs +++ b/exts/devmaster/src/lib/config/netif_conf.rs @@ -132,6 +132,8 @@ impl NetifConfigCtx { if name.ends_with(".link") { let conf_path = dir_path.join(&name); + log::debug!("loading .link config: {:?}", conf_path); + let s = match std::fs::read_to_string(&conf_path) { Ok(content) => content, Err(e) => { -- Gitee