summaryrefslogtreecommitdiff
path: root/src/core/dbus-manager.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2016-04-16 19:31:53 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2016-04-16 21:51:09 -0400
commit9a0a413a195a21888cf926be5595d0efc1eef0fe (patch)
tree80034840b635cecbb8d2fff9416a833e244b0e01 /src/core/dbus-manager.c
parent76ec966f0e33685f8331603805c0349adceea836 (diff)
systemctl/core: ignore masked units in preset-all
With any masked unit that would that would be enabled by presets, we'd get: test@rawhide $ sudo systemctl preset-all Failed to execute operation: Unit file is masked. test@rawhide $ sudo systemctl --root=/ preset-all Operation failed: Cannot send after transport endpoint shutdown Simply ignore those units: test@rawhide $ sudo systemctl preset-all Unit xxx.service is masked, ignoring.
Diffstat (limited to 'src/core/dbus-manager.c')
-rw-r--r--src/core/dbus-manager.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c
index 0b12aae2ef..9a913a6c91 100644
--- a/src/core/dbus-manager.c
+++ b/src/core/dbus-manager.c
@@ -1565,11 +1565,13 @@ static int reply_unit_file_changes_and_free(
unsigned i;
int r;
- if (n_changes > 0) {
- r = bus_foreach_bus(m, NULL, send_unit_files_changed, NULL);
- if (r < 0)
- log_debug_errno(r, "Failed to send UnitFilesChanged signal: %m");
- }
+ for (i = 0; i < n_changes; i++)
+ if (unit_file_change_is_modification(changes[i].type)) {
+ r = bus_foreach_bus(m, NULL, send_unit_files_changed, NULL);
+ if (r < 0)
+ log_debug_errno(r, "Failed to send UnitFilesChanged signal: %m");
+ break;
+ }
r = sd_bus_message_new_method_return(message, &reply);
if (r < 0)