]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
systemctl: move compare_unit_info() to bus-unit-util.[ch]
authorLennart Poettering <lennart@poettering.net>
Wed, 7 Oct 2020 19:56:41 +0000 (21:56 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 7 Oct 2020 20:19:37 +0000 (22:19 +0200)
It's an auxiliary function to the UnitInfo structures, and very generic.
Let's hence move it over to the other code operating with UnitInfo, even
if it's not used by code outside of systemctl (yet).

src/shared/bus-unit-util.c
src/shared/bus-unit-util.h
src/systemctl/systemctl.c

index 3ae3c12f92149165644996692cc97630b933ef21..6fe6131292dceee15ff159948396a5814fa25b12 100644 (file)
@@ -2407,3 +2407,20 @@ int unit_load_state(sd_bus *bus, const char *name, char **load_state) {
 
         return 0;
 }
+
+int unit_info_compare(const UnitInfo *a, const UnitInfo *b) {
+        int r;
+
+        /* First, order by machine */
+        r = strcasecmp_ptr(a->machine, b->machine);
+        if (r != 0)
+                return r;
+
+        /* Second, order by unit type */
+        r = strcasecmp_ptr(strrchr(a->id, '.'), strrchr(b->id, '.'));
+        if (r != 0)
+                return r;
+
+        /* Third, order by name */
+        return strcasecmp(a->id, b->id);
+}
index a0b496f62c8a2088a679d3d00a00c65b6a20e868..544767b0336eb99e1439ccc812963eb18e11ae8a 100644 (file)
@@ -28,3 +28,5 @@ int bus_append_unit_property_assignment_many(sd_bus_message *m, UnitType t, char
 int bus_deserialize_and_dump_unit_file_changes(sd_bus_message *m, bool quiet, UnitFileChange **changes, size_t *n_changes);
 
 int unit_load_state(sd_bus *bus, const char *name, char **load_state);
+
+int unit_info_compare(const UnitInfo *a, const UnitInfo *b);
index ec06243ab3f80693014c1042228b35cef5825486..1a283f64c9640f9e85918147226c24c22466b476 100644 (file)
@@ -323,23 +323,6 @@ static bool install_client_side(void) {
         return false;
 }
 
-static int compare_unit_info(const UnitInfo *a, const UnitInfo *b) {
-        int r;
-
-        /* First, order by machine */
-        r = strcasecmp_ptr(a->machine, b->machine);
-        if (r != 0)
-                return r;
-
-        /* Second, order by unit type */
-        r = strcasecmp_ptr(strrchr(a->id, '.'), strrchr(b->id, '.'));
-        if (r != 0)
-                return r;
-
-        /* Third, order by name */
-        return strcasecmp(a->id, b->id);
-}
-
 static const char* unit_type_suffix(const char *name) {
         const char *dot;
 
@@ -865,7 +848,7 @@ static int list_units(int argc, char *argv[], void *userdata) {
                         return r;
         }
 
-        typesafe_qsort(unit_infos, r, compare_unit_info);
+        typesafe_qsort(unit_infos, r, unit_info_compare);
         return output_units_list(unit_infos, r);
 }
 
@@ -5724,7 +5707,7 @@ static int show_all(
 
         c = (unsigned) r;
 
-        typesafe_qsort(unit_infos, c, compare_unit_info);
+        typesafe_qsort(unit_infos, c, unit_info_compare);
 
         for (u = unit_infos; u < unit_infos + c; u++) {
                 _cleanup_free_ char *p = NULL;