]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core/unit: unit_is_filtered() -> unit_passes_filter() and invert logic 34022/head
authorMike Yuan <me@yhndnzj.com>
Sat, 17 Aug 2024 11:18:31 +0000 (13:18 +0200)
committerMike Yuan <me@yhndnzj.com>
Sat, 17 Aug 2024 18:09:51 +0000 (20:09 +0200)
Follow-up for 6d2984d21bf2a8f71d379ef6bc13a761bb2e2756

The current semantics of "filtered" in unit_is_filtered()
are actually the contrary of ListUnitsFiltered(). Let's
make things consistent, i.e. return true when the unit
shall be included.

src/basic/strv.h
src/core/dbus-manager.c
src/core/unit.c
src/core/unit.h

index 965189d36e8764042fa0e2f52d7c620c7e47a6df..bd90305e63e097bdd098908b8943ae6d1bc23c74 100644 (file)
@@ -235,7 +235,6 @@ bool strv_fnmatch_full(char* const* patterns, const char *s, int flags, size_t *
 static inline bool strv_fnmatch(char* const* patterns, const char *s) {
         return strv_fnmatch_full(patterns, s, 0, NULL);
 }
-
 static inline bool strv_fnmatch_or_empty(char* const* patterns, const char *s, int flags) {
         assert(s);
         return strv_isempty(patterns) ||
index 1fa8b15a80175996f62482e60cccf1f63b9c68de..91c10a4e00c3f16e0f1c43b97ed5176da5dfa89c 100644 (file)
@@ -1218,7 +1218,7 @@ static int list_units_filtered(sd_bus_message *message, void *userdata, sd_bus_e
                 if (k != u->id)
                         continue;
 
-                if (unit_is_filtered(u, states, patterns))
+                if (!unit_passes_filter(u, states, patterns))
                         continue;
 
                 r = reply_unit_info(reply, u);
index e0f9f9b84a613d1d6ae9a32b39ae62a2868f8a12..5d8b940608c1107b23cfca4ca450071b30c10443 100644 (file)
@@ -6472,20 +6472,20 @@ int unit_arm_timer(
         return 0;
 }
 
-bool unit_is_filtered(Unit *u, char *const *states, char *const *patterns) {
+bool unit_passes_filter(Unit *u, char * const *states, char * const *patterns) {
         assert(u);
 
         if (!strv_isempty(states)) {
-                char *const *unit_states = STRV_MAKE(
+                char * const *unit_states = STRV_MAKE(
                                 unit_load_state_to_string(u->load_state),
                                 unit_active_state_to_string(unit_active_state(u)),
                                 unit_sub_state_to_string(u));
 
                 if (!strv_overlap(states, unit_states))
-                        return true;
+                        return false;
         }
 
-        return !strv_isempty(patterns) && !strv_fnmatch_or_empty(patterns, u->id, FNM_NOESCAPE);
+        return strv_fnmatch_or_empty(patterns, u->id, FNM_NOESCAPE);
 }
 
 static int unit_get_nice(Unit *u) {
index bb360e30ed23a6bfd68ef0f426112b9ccea19bc7..cabf7cc42193768d47f81a0d53a5f89af77a4787 100644 (file)
@@ -1040,7 +1040,7 @@ Condition *unit_find_failed_condition(Unit *u);
 
 int unit_arm_timer(Unit *u, sd_event_source **source, bool relative, usec_t usec, sd_event_time_handler_t handler);
 
-bool unit_is_filtered(Unit *u, char *const *states, char *const *patterns);
+bool unit_passes_filter(Unit *u, char * const *states, char * const *patterns);
 
 int unit_compare_priority(Unit *a, Unit *b);