From 594a2f677db1bce425e84856f0cf7cf0f30b3903 Mon Sep 17 00:00:00 2001 From: Thomas Graf Date: Tue, 18 Oct 2011 13:48:43 +0200 Subject: [PATCH] libnm-util: add nm_connection_is_type() Adds a helper nm_connection_is_type(connection, type) which returns TRUE if a connection is of specified type. Signed-off-by: Thomas Graf --- libnm-util/Makefile.am | 2 +- libnm-util/libnm-util.ver | 1 + libnm-util/nm-connection.c | 31 +++++++++++++++++++++++++++++++ libnm-util/nm-connection.h | 2 ++ 4 files changed, 35 insertions(+), 1 deletion(-) diff --git a/libnm-util/Makefile.am b/libnm-util/Makefile.am index 1529b4adc..1327565ae 100644 --- a/libnm-util/Makefile.am +++ b/libnm-util/Makefile.am @@ -69,7 +69,7 @@ libnm_util_la_LIBADD = $(GLIB_LIBS) $(DBUS_LIBS) $(UUID_LIBS) SYMBOL_VIS_FILE=$(srcdir)/libnm-util.ver libnm_util_la_LDFLAGS = -Wl,--version-script=$(SYMBOL_VIS_FILE) \ - -version-info "3:0:1" + -version-info "4:0:2" if WITH_GNUTLS libnm_util_la_SOURCES += crypto_gnutls.c diff --git a/libnm-util/libnm-util.ver b/libnm-util/libnm-util.ver index edf5d2925..53c2482e2 100644 --- a/libnm-util/libnm-util.ver +++ b/libnm-util/libnm-util.ver @@ -32,6 +32,7 @@ global: nm_connection_get_setting_wireless_security; nm_connection_get_type; nm_connection_get_uuid; + nm_connection_is_type; nm_connection_lookup_setting_type; nm_connection_lookup_setting_type_by_quark; nm_connection_need_secrets; diff --git a/libnm-util/nm-connection.c b/libnm-util/nm-connection.c index 6a10128c2..cdc3b81f0 100644 --- a/libnm-util/nm-connection.c +++ b/libnm-util/nm-connection.c @@ -1050,6 +1050,37 @@ nm_connection_to_hash (NMConnection *connection, NMSettingHashFlags flags) return ret; } +/** + * nm_connection_is_type: + * @connection: the #NMConnection + * @type: a setting name to check the connection's type against (like + * %NM_SETTING_WIRELESS_SETTING_NAME or %NM_SETTING_WIRED_SETTING_NAME) + * + * A convenience function to check if the given @connection is a particular + * type (ie wired, wifi, ppp, etc). Checks the #NMSettingConnection:type + * property of the connection and matches that against @type. + * + * Returns: %TRUE if the connection is of the given @type, %FALSE if not + **/ +gboolean +nm_connection_is_type (NMConnection *connection, const char *type) +{ + NMSettingConnection *s_con; + const char *type2; + + g_return_val_if_fail (connection != NULL, FALSE); + g_return_val_if_fail (NM_IS_CONNECTION (connection), FALSE); + g_return_val_if_fail (type != NULL, FALSE); + + s_con = nm_connection_get_setting_connection (connection); + g_assert (s_con); + + type2 = nm_setting_connection_get_connection_type (s_con); + g_assert (type2); + + return !strcmp (type2, type); +} + /** * nm_connection_for_each_setting_value: * @connection: the #NMConnection diff --git a/libnm-util/nm-connection.h b/libnm-util/nm-connection.h index 3245f7e69..069dc84c1 100644 --- a/libnm-util/nm-connection.h +++ b/libnm-util/nm-connection.h @@ -161,6 +161,8 @@ void nm_connection_set_path (NMConnection *connection, const char * nm_connection_get_path (NMConnection *connection); +gboolean nm_connection_is_type (NMConnection *connection, const char *type); + void nm_connection_for_each_setting_value (NMConnection *connection, NMSettingValueIterFn func, gpointer user_data);