mirror of
https://github.com/morgan9e/systemd
synced 2026-04-14 00:14:32 +09:00
systemctl: check if unit is masked in unit_find_paths()
When operating in client-side mode (force_client_side=true), unit_find_paths() now checks if the unit file is masked (symlinked to /dev/null or empty) and returns -ERFKILL, matching the behavior of the server-side path. This centralizes masked unit detection in one place, making it consistent across both client-side and server-side operations.
This commit is contained in:
@@ -29,6 +29,7 @@
|
||||
#include "reboot-util.h"
|
||||
#include "runtime-scope.h"
|
||||
#include "set.h"
|
||||
#include "stat-util.h"
|
||||
#include "string-util.h"
|
||||
#include "strv.h"
|
||||
#include "systemctl.h"
|
||||
@@ -589,6 +590,13 @@ int unit_find_paths(
|
||||
return log_error_errno(r, "Failed to find fragment for '%s': %m", unit_name);
|
||||
|
||||
if (_path) {
|
||||
/* Check if unit is masked (symlinked to /dev/null or empty) */
|
||||
r = null_or_empty_path(_path);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to check if '%s' is masked: %m", unit_name);
|
||||
if (r > 0)
|
||||
return -ERFKILL; /* special case: no logging */
|
||||
|
||||
path = strdup(_path);
|
||||
if (!path)
|
||||
return log_oom();
|
||||
|
||||
Reference in New Issue
Block a user