diff options
author | Thomas Haller <thaller@redhat.com> | 2017-02-03 15:45:06 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2017-02-10 14:43:24 +0100 |
commit | 5c5845c649d3d6ac814f43c4500b7ae4cea68f5a (patch) | |
tree | aed4e889a318c3d0b119883e83891245801f8415 | |
parent | eb5ceedbba87e5ea4d2b32ecc3e84f930c3d9835 (diff) | |
download | NetworkManager-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.c | 2 | ||||
-rw-r--r-- | src/settings/nm-settings-connection.c | 37 | ||||
-rw-r--r-- | src/settings/nm-settings-connection.h | 3 | ||||
-rw-r--r-- | src/settings/nm-settings.c | 32 | ||||
-rw-r--r-- | src/settings/nm-settings.h | 2 |
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, |