summaryrefslogtreecommitdiff
path: root/src/NetworkManagerUtils.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/NetworkManagerUtils.c')
-rw-r--r--src/NetworkManagerUtils.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/NetworkManagerUtils.c b/src/NetworkManagerUtils.c
index f4c3df9f5e..3128f8a5d8 100644
--- a/src/NetworkManagerUtils.c
+++ b/src/NetworkManagerUtils.c
@@ -1434,6 +1434,33 @@ nm_utils_match_connection (GSList *connections,
return best_match;
}
+int
+nm_utils_cmp_connection_by_autoconnect_priority (NMConnection **a, NMConnection **b)
+{
+ NMSettingConnection *a_s_con, *b_s_con;
+ gboolean a_ac, b_ac;
+ gint a_ap, b_ap;
+
+ a_s_con = nm_connection_get_setting_connection (*a);
+ b_s_con = nm_connection_get_setting_connection (*b);
+
+ a_ac = !!nm_setting_connection_get_autoconnect (a_s_con);
+ b_ac = !!nm_setting_connection_get_autoconnect (b_s_con);
+ if (a_ac != b_ac)
+ return ((int) b_ac) - ((int) a_ac);
+ if (!a_ac)
+ return 0;
+
+ a_ap = nm_setting_connection_get_autoconnect_priority (a_s_con);
+ b_ap = nm_setting_connection_get_autoconnect_priority (b_s_con);
+ if (a_ap != b_ap) {
+ if (a_ap > b_ap)
+ return -1;
+ return 1;
+ }
+ return 0;
+}
+
/* nm_utils_ascii_str_to_int64:
*
* A wrapper for g_ascii_strtoll, that checks whether the whole string