mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-30 03:50:10 +01:00
keyfile: Read and write the new 8021x.password-raw field
This commit is contained in:
parent
b08e2b8932
commit
9fc134ee83
2 changed files with 48 additions and 0 deletions
|
|
@ -823,6 +823,22 @@ ssid_parser (NMSetting *setting, const char *key, GKeyFile *keyfile, const char
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
password_raw_parser (NMSetting *setting, const char *key, GKeyFile *keyfile, const char *keyfile_path)
|
||||
{
|
||||
const char *setting_name = nm_setting_get_name (setting);
|
||||
GByteArray *array;
|
||||
|
||||
array = get_uchar_array (keyfile, setting_name, key, FALSE, TRUE);
|
||||
if (array) {
|
||||
g_object_set (setting, key, array, NULL);
|
||||
g_byte_array_free (array, TRUE);
|
||||
} else {
|
||||
g_warning ("%s: ignoring invalid raw password for %s / %s",
|
||||
__func__, setting_name, key);
|
||||
}
|
||||
}
|
||||
|
||||
static char *
|
||||
get_cert_path (const char *keyfile_path, GByteArray *cert_path)
|
||||
{
|
||||
|
|
@ -1021,6 +1037,10 @@ static KeyParser key_parsers[] = {
|
|||
NM_SETTING_WIRELESS_SSID,
|
||||
TRUE,
|
||||
ssid_parser },
|
||||
{ NM_SETTING_802_1X_SETTING_NAME,
|
||||
NM_SETTING_802_1X_PASSWORD_RAW,
|
||||
TRUE,
|
||||
password_raw_parser },
|
||||
{ NM_SETTING_802_1X_SETTING_NAME,
|
||||
NM_SETTING_802_1X_CA_CERT,
|
||||
TRUE,
|
||||
|
|
|
|||
|
|
@ -532,6 +532,31 @@ ssid_writer (GKeyFile *file,
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
password_raw_writer (GKeyFile *file,
|
||||
const char *keyfile_dir,
|
||||
const char *uuid,
|
||||
NMSetting *setting,
|
||||
const char *key,
|
||||
const GValue *value)
|
||||
{
|
||||
const char *setting_name = nm_setting_get_name (setting);
|
||||
GByteArray *array;
|
||||
int i, *tmp_array;
|
||||
|
||||
g_return_if_fail (G_VALUE_HOLDS (value, DBUS_TYPE_G_UCHAR_ARRAY));
|
||||
|
||||
array = (GByteArray *) g_value_get_boxed (value);
|
||||
if (!array || !array->len)
|
||||
return;
|
||||
|
||||
tmp_array = g_new (gint, array->len);
|
||||
for (i = 0; i < array->len; i++)
|
||||
tmp_array[i] = (int) array->data[i];
|
||||
g_key_file_set_integer_list (file, setting_name, key, tmp_array, array->len);
|
||||
g_free (tmp_array);
|
||||
}
|
||||
|
||||
typedef struct ObjectType {
|
||||
const char *key;
|
||||
const char *suffix;
|
||||
|
|
@ -790,6 +815,9 @@ static KeyWriter key_writers[] = {
|
|||
{ NM_SETTING_WIRELESS_SETTING_NAME,
|
||||
NM_SETTING_WIRELESS_SSID,
|
||||
ssid_writer },
|
||||
{ NM_SETTING_802_1X_SETTING_NAME,
|
||||
NM_SETTING_802_1X_PASSWORD_RAW,
|
||||
password_raw_writer },
|
||||
{ NM_SETTING_802_1X_SETTING_NAME,
|
||||
NM_SETTING_802_1X_CA_CERT,
|
||||
cert_writer },
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue