From 485d149fe80915d94ed49ea6c2c0552cf7a3e79a Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Fri, 28 Oct 2011 23:04:16 +0200 Subject: Imported Upstream version 0.9.1.95 --- libnm-util/nm-setting-vpn.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'libnm-util/nm-setting-vpn.c') diff --git a/libnm-util/nm-setting-vpn.c b/libnm-util/nm-setting-vpn.c index 50091cb9..755c1a45 100644 --- a/libnm-util/nm-setting-vpn.c +++ b/libnm-util/nm-setting-vpn.c @@ -611,6 +611,30 @@ compare_property (NMSetting *setting, return same; } +static void +clear_secrets_with_flags (NMSetting *setting, + GParamSpec *pspec, + NMSettingClearSecretsWithFlagsFn func, + gpointer user_data) +{ + NMSettingVPNPrivate *priv = NM_SETTING_VPN_GET_PRIVATE (setting); + GHashTableIter iter; + const char *secret; + + if (priv->secrets == NULL) + return; + + /* Iterate through secrets hash and check each entry */ + g_hash_table_iter_init (&iter, priv->secrets); + while (g_hash_table_iter_next (&iter, (gpointer) &secret, NULL)) { + NMSettingSecretFlags flags = NM_SETTING_SECRET_FLAG_NONE; + + nm_setting_get_secret_flags (setting, secret, &flags, NULL); + if (func (setting, pspec->name, flags, user_data) == TRUE) + g_hash_table_iter_remove (&iter); + } +} + static void destroy_one_secret (gpointer data) { @@ -733,6 +757,7 @@ nm_setting_vpn_class_init (NMSettingVPNClass *setting_class) parent_class->set_secret_flags = set_secret_flags; parent_class->need_secrets = need_secrets; parent_class->compare_property = compare_property; + parent_class->clear_secrets_with_flags = clear_secrets_with_flags; /* Properties */ /** -- cgit 1.3.0-6-gf8a5