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.
#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"
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();