From f7cb6801a2ba3aa9856815121c8601dea903ef2c Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Thu, 4 Apr 2024 04:58:25 +0900 Subject: [PATCH] udev: do not update sysattr and sysctl value on testing Follow-up for 089bef66316e5bdc91b9984148e5a6455449c1da. --- src/udev/udev-rules.c | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c index 89840e3fb92..51732080e85 100644 --- a/src/udev/udev-rules.c +++ b/src/udev/udev-rules.c @@ -2702,14 +2702,18 @@ static int udev_rule_apply_token_to_event( break; } - log_event_debug(dev, token, "ATTR '%s' writing '%s'", buf, value); - r = write_string_file(buf, value, - WRITE_STRING_FILE_VERIFY_ON_FAILURE | - WRITE_STRING_FILE_DISABLE_BUFFER | - WRITE_STRING_FILE_AVOID_NEWLINE | - WRITE_STRING_FILE_VERIFY_IGNORE_NEWLINE); - if (r < 0) - log_event_error_errno(dev, token, r, "Failed to write ATTR{%s}, ignoring: %m", buf); + if (EVENT_MODE_DESTRUCTIVE(event)) { + log_event_debug(dev, token, "Writing ATTR{'%s'}=\"%s\".", buf, value); + r = write_string_file(buf, value, + WRITE_STRING_FILE_VERIFY_ON_FAILURE | + WRITE_STRING_FILE_DISABLE_BUFFER | + WRITE_STRING_FILE_AVOID_NEWLINE | + WRITE_STRING_FILE_VERIFY_IGNORE_NEWLINE); + if (r < 0) + log_event_error_errno(dev, token, r, "Failed to write ATTR{%s}=\"%s\", ignoring: %m", buf, value); + } else + log_event_debug(dev, token, "Running in test mode, skipping writing ATTR{%s}=\"%s\".", buf, value); + break; } case TK_A_SYSCTL: { @@ -2731,10 +2735,15 @@ static int udev_rule_apply_token_to_event( } sysctl_normalize(buf); - log_event_debug(dev, token, "SYSCTL '%s' writing '%s'", buf, value); - r = sysctl_write(buf, value); - if (r < 0) - log_event_error_errno(dev, token, r, "Failed to write SYSCTL{%s}='%s', ignoring: %m", buf, value); + + if (EVENT_MODE_DESTRUCTIVE(event)) { + log_event_debug(dev, token, "Writing SYSCTL{%s}=\"%s\".", buf, value); + r = sysctl_write(buf, value); + if (r < 0) + log_event_error_errno(dev, token, r, "Failed to write SYSCTL{%s}=\"%s\", ignoring: %m", buf, value); + } else + log_event_debug(dev, token, "Running in test mode, skipping writing SYSCTL{%s}=\"%s\".", buf, value); + break; } case TK_A_RUN_BUILTIN: -- 2.47.3