mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-03 14:00:15 +01:00
2007-09-25 Dan Williams <dcbw@redhat.com>
* libnm-util/nm-connection.c libnm-util/nm-connection.h - (nm_connection_clear_secrets): new function; clear secrets out of each NMSetting in an NMConnection * libnm-util/nm-setting.h libnm-util/nm-setting.c - (nm_setting_clear_secrets, default_setting_clear_secrets): clear secrets out of an NMSetting - (nm_setting_connection_new, nm_setting_ip4_config_new, nm_setting_wired_new, nm_setting_wireless_new, nm_setting_wireless_security_new, nm_setting_ppp_new, nm_setting_vpn_new, nm_setting_vpn_properties_new): set clear_secrets to default handler default_setting_clear_secrets() git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@2871 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
parent
a4ab8e22e6
commit
008bab498f
5 changed files with 113 additions and 0 deletions
17
ChangeLog
17
ChangeLog
|
|
@ -1,3 +1,20 @@
|
|||
2007-09-25 Dan Williams <dcbw@redhat.com>
|
||||
|
||||
* libnm-util/nm-connection.c
|
||||
libnm-util/nm-connection.h
|
||||
- (nm_connection_clear_secrets): new function; clear secrets out of
|
||||
each NMSetting in an NMConnection
|
||||
|
||||
* libnm-util/nm-setting.h
|
||||
libnm-util/nm-setting.c
|
||||
- (nm_setting_clear_secrets, default_setting_clear_secrets): clear
|
||||
secrets out of an NMSetting
|
||||
- (nm_setting_connection_new, nm_setting_ip4_config_new,
|
||||
nm_setting_wired_new, nm_setting_wireless_new,
|
||||
nm_setting_wireless_security_new, nm_setting_ppp_new,
|
||||
nm_setting_vpn_new, nm_setting_vpn_properties_new): set clear_secrets
|
||||
to default handler default_setting_clear_secrets()
|
||||
|
||||
2007-09-25 Dan Williams <dcbw@redhat.com>
|
||||
|
||||
* src/nm-activation-request.c
|
||||
|
|
|
|||
|
|
@ -189,6 +189,25 @@ nm_connection_need_secrets (NMConnection *connection)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
clear_setting_secrets (gpointer key, gpointer data, gpointer user_data)
|
||||
{
|
||||
NMSetting *setting = (NMSetting *) data;
|
||||
|
||||
nm_setting_clear_secrets (setting);
|
||||
}
|
||||
|
||||
void
|
||||
nm_connection_clear_secrets (NMConnection *connection)
|
||||
{
|
||||
NMConnectionPrivate *priv;
|
||||
|
||||
g_return_if_fail (NM_IS_CONNECTION (connection));
|
||||
|
||||
priv = NM_CONNECTION_GET_PRIVATE (connection);
|
||||
g_hash_table_foreach (priv->settings, clear_setting_secrets, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
add_one_setting_to_hash (gpointer key, gpointer data, gpointer user_data)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -40,6 +40,8 @@ gboolean nm_connection_compare (NMConnection *connection,
|
|||
|
||||
const char * nm_connection_need_secrets (NMConnection *connection);
|
||||
|
||||
void nm_connection_clear_secrets (NMConnection *connection);
|
||||
|
||||
void nm_connection_update_secrets (NMConnection *connection,
|
||||
const char *setting_name,
|
||||
GHashTable *secrets);
|
||||
|
|
|
|||
|
|
@ -75,6 +75,15 @@ nm_setting_update_secrets (NMSetting *setting,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
nm_setting_clear_secrets (NMSetting *setting)
|
||||
{
|
||||
g_return_if_fail (setting != NULL);
|
||||
|
||||
if (setting->clear_secrets_fn)
|
||||
return setting->clear_secrets_fn (setting);
|
||||
}
|
||||
|
||||
GPtrArray *
|
||||
nm_setting_need_secrets (NMSetting *setting)
|
||||
{
|
||||
|
|
@ -366,6 +375,60 @@ nm_setting_hash (NMSetting *setting)
|
|||
return hash;
|
||||
}
|
||||
|
||||
static void
|
||||
default_setting_clear_secrets (NMSetting *setting)
|
||||
{
|
||||
SettingMember *m;
|
||||
|
||||
g_return_if_fail (setting != NULL);
|
||||
|
||||
m = setting->_members;
|
||||
while (m->key) {
|
||||
if (m->secret == FALSE)
|
||||
goto next;
|
||||
|
||||
switch (m->type) {
|
||||
case NM_S_TYPE_GVALUE_HASH: {
|
||||
GHashTable **val = (GHashTable **) G_STRUCT_MEMBER_P (setting, m->offset);
|
||||
g_hash_table_remove_all (*val);
|
||||
break;
|
||||
}
|
||||
case NM_S_TYPE_STRING: {
|
||||
char **val = (char **) G_STRUCT_MEMBER_P (setting, m->offset);
|
||||
g_free (*val);
|
||||
*val = NULL;
|
||||
break;
|
||||
}
|
||||
case NM_S_TYPE_BOOL: {
|
||||
gboolean *val = (gboolean *) G_STRUCT_MEMBER_P (setting, m->offset);
|
||||
*val = FALSE;
|
||||
break;
|
||||
}
|
||||
case NM_S_TYPE_UINT32: {
|
||||
guint32 *val = (guint32 *) G_STRUCT_MEMBER_P (setting, m->offset);
|
||||
*val = 0;
|
||||
break;
|
||||
}
|
||||
case NM_S_TYPE_BYTE_ARRAY: {
|
||||
GByteArray **val = (GByteArray **) G_STRUCT_MEMBER_P (setting, m->offset);
|
||||
g_byte_array_free (*val, TRUE);
|
||||
*val = NULL;
|
||||
break;
|
||||
}
|
||||
case NM_S_TYPE_STRING_ARRAY: {
|
||||
GSList **val = (GSList **) G_STRUCT_MEMBER_P (setting, m->offset);
|
||||
g_slist_foreach (*val, (GFunc) g_free, NULL);
|
||||
g_slist_free (*val);
|
||||
*val = NULL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
next:
|
||||
m++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Connection */
|
||||
|
||||
|
|
@ -410,6 +473,7 @@ nm_setting_connection_new (void)
|
|||
setting->_members = con_table;
|
||||
setting->verify_fn = setting_connection_verify;
|
||||
setting->hash_fn = default_setting_hash;
|
||||
setting->clear_secrets_fn = default_setting_clear_secrets;
|
||||
setting->destroy_fn = setting_connection_destroy;
|
||||
|
||||
return setting;
|
||||
|
|
@ -478,6 +542,7 @@ nm_setting_ip4_config_new (void)
|
|||
setting->_members = ip4_config_table;
|
||||
setting->verify_fn = setting_ip4_config_verify;
|
||||
setting->hash_fn = default_setting_hash;
|
||||
setting->clear_secrets_fn = default_setting_clear_secrets;
|
||||
setting->destroy_fn = setting_ip4_config_destroy;
|
||||
|
||||
return setting;
|
||||
|
|
@ -563,6 +628,7 @@ nm_setting_wired_new (void)
|
|||
setting->_members = wired_table;
|
||||
setting->verify_fn = setting_wired_verify;
|
||||
setting->hash_fn = default_setting_hash;
|
||||
setting->clear_secrets_fn = default_setting_clear_secrets;
|
||||
setting->destroy_fn = setting_wired_destroy;
|
||||
|
||||
s_wired->auto_negotiate = TRUE;
|
||||
|
|
@ -715,6 +781,7 @@ nm_setting_wireless_new (void)
|
|||
setting->_members = wireless_table;
|
||||
setting->verify_fn = setting_wireless_verify;
|
||||
setting->hash_fn = default_setting_hash;
|
||||
setting->clear_secrets_fn = default_setting_clear_secrets;
|
||||
setting->destroy_fn = setting_wireless_destroy;
|
||||
|
||||
return setting;
|
||||
|
|
@ -1057,6 +1124,7 @@ nm_setting_wireless_security_new (void)
|
|||
setting->hash_fn = default_setting_hash;
|
||||
setting->update_secrets_fn = setting_wireless_security_update_secrets;
|
||||
setting->need_secrets_fn = setting_wireless_security_need_secrets;
|
||||
setting->clear_secrets_fn = default_setting_clear_secrets;
|
||||
setting->destroy_fn = setting_wireless_security_destroy;
|
||||
|
||||
return setting;
|
||||
|
|
@ -1127,6 +1195,7 @@ nm_setting_ppp_new (void)
|
|||
setting->_members = ppp_table;
|
||||
setting->verify_fn = setting_ppp_verify;
|
||||
setting->hash_fn = default_setting_hash;
|
||||
setting->clear_secrets_fn = default_setting_clear_secrets;
|
||||
setting->destroy_fn = setting_ppp_destroy;
|
||||
|
||||
return setting;
|
||||
|
|
@ -1193,6 +1262,7 @@ nm_setting_vpn_new (void)
|
|||
setting->_members = vpn_table;
|
||||
setting->verify_fn = setting_vpn_verify;
|
||||
setting->hash_fn = default_setting_hash;
|
||||
setting->clear_secrets_fn = default_setting_clear_secrets;
|
||||
setting->destroy_fn = setting_vpn_destroy;
|
||||
|
||||
return setting;
|
||||
|
|
@ -1274,6 +1344,7 @@ nm_setting_vpn_properties_new (void)
|
|||
setting->_members = vpn_properties_table;
|
||||
setting->verify_fn = setting_vpn_properties_verify;
|
||||
setting->hash_fn = setting_vpn_properties_hash;
|
||||
setting->clear_secrets_fn = default_setting_clear_secrets;
|
||||
setting->destroy_fn = setting_vpn_properties_destroy;
|
||||
|
||||
s_vpn_props = (NMSettingVPNProperties *) setting;
|
||||
|
|
|
|||
|
|
@ -20,6 +20,8 @@ typedef gboolean (*NMSettingUpdateSecretsFn) (NMSetting *setting,
|
|||
|
||||
typedef GPtrArray *(*NMSettingNeedSecretsFn) (NMSetting *setting);
|
||||
|
||||
typedef void (*NMSettingClearSecretsFn) (NMSetting *setting);
|
||||
|
||||
typedef void (*NMSettingDestroyFn) (NMSetting *setting);
|
||||
|
||||
typedef void (*NMSettingValueIterFn) (NMSetting *setting,
|
||||
|
|
@ -52,6 +54,7 @@ struct _NMSetting {
|
|||
NMSettingToHashFn hash_fn;
|
||||
NMSettingUpdateSecretsFn update_secrets_fn;
|
||||
NMSettingNeedSecretsFn need_secrets_fn;
|
||||
NMSettingClearSecretsFn clear_secrets_fn;
|
||||
NMSettingDestroyFn destroy_fn;
|
||||
};
|
||||
|
||||
|
|
@ -59,6 +62,7 @@ gboolean nm_settings_verify (GHashTable *all_settings);
|
|||
GHashTable *nm_setting_to_hash (NMSetting *setting);
|
||||
gboolean nm_setting_update_secrets (NMSetting *setting, GHashTable *secrets);
|
||||
GPtrArray * nm_setting_need_secrets (NMSetting *setting);
|
||||
void nm_setting_clear_secrets (NMSetting *setting);
|
||||
void nm_setting_destroy (NMSetting *setting);
|
||||
void nm_setting_enumerate_values (NMSetting *setting,
|
||||
NMSettingValueIterFn func,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue