diff options
-rw-r--r-- | src/core/dbus-manager.c | 12 | ||||
-rw-r--r-- | src/shared/install.h | 12 |
2 files changed, 13 insertions, 11 deletions
diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c index 0c3b011b8b..ddfde23028 100644 --- a/src/core/dbus-manager.c +++ b/src/core/dbus-manager.c @@ -1565,13 +1565,11 @@ static int reply_unit_file_changes_and_free( unsigned i; int r; - 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; - } + if (unit_file_changes_have_modification(changes, n_changes)) { + r = bus_foreach_bus(m, NULL, send_unit_files_changed, NULL); + if (r < 0) + log_debug_errno(r, "Failed to send UnitFilesChanged signal: %m"); + } r = sd_bus_message_new_method_return(message, &reply); if (r < 0) diff --git a/src/shared/install.h b/src/shared/install.h index 99cd1409f3..219b48f428 100644 --- a/src/shared/install.h +++ b/src/shared/install.h @@ -77,16 +77,20 @@ enum UnitFileChangeType { _UNIT_FILE_CHANGE_TYPE_INVALID = -1 }; -static inline bool unit_file_change_is_modification(UnitFileChangeType type) { - return IN_SET(type, UNIT_FILE_SYMLINK, UNIT_FILE_UNLINK); -} - struct UnitFileChange { UnitFileChangeType type; char *path; char *source; }; +static inline bool unit_file_changes_have_modification(const UnitFileChange* changes, unsigned n_changes) { + unsigned i; + for (i = 0; i < n_changes; i++) + if (IN_SET(changes[i].type, UNIT_FILE_SYMLINK, UNIT_FILE_UNLINK)) + return true; + return false; +} + struct UnitFileList { char *path; UnitFileState state; |