summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2017-02-03 15:45:06 +0100
committerThomas Haller <thaller@redhat.com>2017-02-10 14:43:24 +0100
commit5c5845c649d3d6ac814f43c4500b7ae4cea68f5a (patch)
treeaed4e889a318c3d0b119883e83891245801f8415
parenteb5ceedbba87e5ea4d2b32ecc3e84f930c3d9835 (diff)
downloadNetworkManager-5c5845c649d3d6ac814f43c4500b7ae4cea68f5a.tar.gz
core: add and use nm_settings_connection_cmp_timestamp*()
Only move the function, no change in behavior.
-rw-r--r--src/nm-manager.c2
-rw-r--r--src/settings/nm-settings-connection.c37
-rw-r--r--src/settings/nm-settings-connection.h3
-rw-r--r--src/settings/nm-settings.c32
-rw-r--r--src/settings/nm-settings.h2
5 files changed, 42 insertions, 34 deletions
diff --git a/src/nm-manager.c b/src/nm-manager.c
index 1bad6925b2..9893f7c475 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -1738,7 +1738,7 @@ get_existing_connection (NMManager *self, NMDevice *device, gboolean *out_genera
* When no configured connection matches the generated connection, we keep
* the generated connection instead.
*/
- connections = g_slist_reverse (g_slist_sort (connections, nm_settings_sort_connections));
+ connections = g_slist_reverse (g_slist_sort (connections, (GCompareFunc) nm_settings_connection_cmp_timestamp));
matched = NM_SETTINGS_CONNECTION (nm_utils_match_connection (connections,
connection,
nm_device_has_carrier (device),
diff --git a/src/settings/nm-settings-connection.c b/src/settings/nm-settings-connection.c
index 81dcb69898..66069e740f 100644
--- a/src/settings/nm-settings-connection.c
+++ b/src/settings/nm-settings-connection.c
@@ -2162,6 +2162,43 @@ nm_settings_connection_set_flags_all (NMSettingsConnection *self, NMSettingsConn
/*****************************************************************************/
+/* sorting for "best" connections.
+ * The function sorts connections in ascending timestamp order.
+ * That means an older connection (lower timestamp) goes before
+ * a newer one.
+ */
+int
+nm_settings_connection_cmp_timestamp (NMSettingsConnection *ac, NMSettingsConnection *bc)
+{
+ guint64 ats = 0, bts = 0;
+
+ if (ac == bc)
+ return 0;
+ if (!ac)
+ return -1;
+ if (!bc)
+ return 1;
+
+ /* In the future we may use connection priorities in addition to timestamps */
+ nm_settings_connection_get_timestamp (ac, &ats);
+ nm_settings_connection_get_timestamp (bc, &bts);
+
+ if (ats < bts)
+ return -1;
+ else if (ats > bts)
+ return 1;
+ return 0;
+}
+
+int
+nm_settings_connection_cmp_timestamp_p_with_data (gconstpointer pa, gconstpointer pb, gpointer user_data)
+{
+ return nm_settings_connection_cmp_timestamp (*((NMSettingsConnection **) pa),
+ *((NMSettingsConnection **) pb));
+}
+
+/*****************************************************************************/
+
/**
* nm_settings_connection_get_timestamp:
* @self: the #NMSettingsConnection
diff --git a/src/settings/nm-settings-connection.h b/src/settings/nm-settings-connection.h
index c5ddd8173e..fa7e4b5592 100644
--- a/src/settings/nm-settings-connection.h
+++ b/src/settings/nm-settings-connection.h
@@ -184,6 +184,9 @@ NMSettingsConnectionFlags nm_settings_connection_get_flags (NMSettingsConnection
NMSettingsConnectionFlags nm_settings_connection_set_flags (NMSettingsConnection *self, NMSettingsConnectionFlags flags, gboolean set);
NMSettingsConnectionFlags nm_settings_connection_set_flags_all (NMSettingsConnection *self, NMSettingsConnectionFlags flags);
+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);
+
gboolean nm_settings_connection_get_timestamp (NMSettingsConnection *self,
guint64 *out_timestamp);
diff --git a/src/settings/nm-settings.c b/src/settings/nm-settings.c
index 50b3b77222..dba9332d26 100644
--- a/src/settings/nm-settings.c
+++ b/src/settings/nm-settings.c
@@ -2085,36 +2085,6 @@ nm_settings_device_removed (NMSettings *self, NMDevice *device, gboolean quittin
/*****************************************************************************/
-/* GCompareFunc helper for sorting "best" connections.
- * The function sorts connections in ascending timestamp order.
- * That means an older connection (lower timestamp) goes before
- * a newer one.
- */
-gint
-nm_settings_sort_connections (gconstpointer a, gconstpointer b)
-{
- NMSettingsConnection *ac = (NMSettingsConnection *) a;
- NMSettingsConnection *bc = (NMSettingsConnection *) b;
- guint64 ats = 0, bts = 0;
-
- if (ac == bc)
- return 0;
- if (!ac)
- return -1;
- if (!bc)
- return 1;
-
- /* In the future we may use connection priorities in addition to timestamps */
- nm_settings_connection_get_timestamp (ac, &ats);
- nm_settings_connection_get_timestamp (bc, &bts);
-
- if (ats < bts)
- return -1;
- else if (ats > bts)
- return 1;
- return 0;
-}
-
/**
* nm_settings_get_best_connections:
* @self: the #NMSetting
@@ -2169,7 +2139,7 @@ nm_settings_get_best_connections (NMSettings *self,
}
/* List is sorted with oldest first */
- sorted = g_slist_insert_sorted (sorted, connection, nm_settings_sort_connections);
+ sorted = g_slist_insert_sorted (sorted, connection, (GCompareFunc) nm_settings_connection_cmp_timestamp);
added++;
if (max_requested && added > max_requested) {
diff --git a/src/settings/nm-settings.h b/src/settings/nm-settings.h
index c8a7ebae0c..3e56bf388e 100644
--- a/src/settings/nm-settings.h
+++ b/src/settings/nm-settings.h
@@ -126,8 +126,6 @@ void nm_settings_device_added (NMSettings *self, NMDevice *device);
void nm_settings_device_removed (NMSettings *self, NMDevice *device, gboolean quitting);
-gint nm_settings_sort_connections (gconstpointer a, gconstpointer b);
-
gboolean nm_settings_get_startup_complete (NMSettings *self);
void nm_settings_set_transient_hostname (NMSettings *self,