core: add and use nm_settings_connection_cmp_default*()

Only move the function, no change in behavior.
This commit is contained in:
Thomas Haller 2017-02-03 16:00:33 +01:00
parent 5c5845c649
commit 4a2572fcc1
3 changed files with 35 additions and 30 deletions

View file

@ -2197,6 +2197,38 @@ nm_settings_connection_cmp_timestamp_p_with_data (gconstpointer pa, gconstpointe
*((NMSettingsConnection **) pb));
}
int
nm_settings_connection_cmp_default (NMSettingsConnection *a, NMSettingsConnection *b)
{
NMSettingConnection *con_a;
NMSettingConnection *con_b;
guint64 ts_a = 0, ts_b = 0;
gboolean can_ac_a, can_ac_b;
con_a = nm_connection_get_setting_connection (NM_CONNECTION (a));
con_b = nm_connection_get_setting_connection (NM_CONNECTION (b));
can_ac_a = !!nm_setting_connection_get_autoconnect (con_a);
can_ac_b = !!nm_setting_connection_get_autoconnect (con_b);
if (can_ac_a != can_ac_b)
return can_ac_a ? -1 : 1;
nm_settings_connection_get_timestamp (a, &ts_a);
nm_settings_connection_get_timestamp (b, &ts_b);
if (ts_a > ts_b)
return -1;
else if (ts_a == ts_b)
return 0;
return 1;
}
int
nm_settings_connection_cmp_default_p_with_data (gconstpointer pa, gconstpointer pb, gpointer user_data)
{
return nm_settings_connection_cmp_default (*((NMSettingsConnection **) pa),
*((NMSettingsConnection **) pb));
}
/*****************************************************************************/
/**

View file

@ -186,6 +186,8 @@ NMSettingsConnectionFlags nm_settings_connection_set_flags_all (NMSettingsConnec
int nm_settings_connection_cmp_timestamp (NMSettingsConnection *ac, NMSettingsConnection *ab);
int nm_settings_connection_cmp_timestamp_p_with_data (gconstpointer pa, gconstpointer pb, gpointer user_data);
int nm_settings_connection_cmp_default (NMSettingsConnection *a, NMSettingsConnection *b);
int nm_settings_connection_cmp_default_p_with_data (gconstpointer pa, gconstpointer pb, gpointer user_data);
gboolean nm_settings_connection_get_timestamp (NMSettingsConnection *self,
guint64 *out_timestamp);

View file

@ -393,35 +393,6 @@ error:
g_clear_object (&subject);
}
static int
connection_sort (gconstpointer pa, gconstpointer pb)
{
NMConnection *a = NM_CONNECTION (pa);
NMSettingConnection *con_a;
NMConnection *b = NM_CONNECTION (pb);
NMSettingConnection *con_b;
guint64 ts_a = 0, ts_b = 0;
gboolean can_ac_a, can_ac_b;
con_a = nm_connection_get_setting_connection (a);
g_assert (con_a);
con_b = nm_connection_get_setting_connection (b);
g_assert (con_b);
can_ac_a = !!nm_setting_connection_get_autoconnect (con_a);
can_ac_b = !!nm_setting_connection_get_autoconnect (con_b);
if (can_ac_a != can_ac_b)
return can_ac_a ? -1 : 1;
nm_settings_connection_get_timestamp (NM_SETTINGS_CONNECTION (pa), &ts_a);
nm_settings_connection_get_timestamp (NM_SETTINGS_CONNECTION (pb), &ts_b);
if (ts_a > ts_b)
return -1;
else if (ts_a == ts_b)
return 0;
return 1;
}
/**
* nm_settings_get_connections:
* @self: the #NMSettings
@ -485,7 +456,7 @@ nm_settings_get_connections_sorted (NMSettings *self)
g_hash_table_iter_init (&iter, NM_SETTINGS_GET_PRIVATE (self)->connections);
while (g_hash_table_iter_next (&iter, NULL, &data))
list = g_slist_insert_sorted (list, data, connection_sort);
list = g_slist_insert_sorted (list, data, (GCompareFunc) nm_settings_connection_cmp_default);
return list;
}