## NMSettingUser NMSettingUser — Describes user properties |

## Functions

NMSetting * | nm_setting_user_new ()
const char *const * | nm_setting_user_get_keys ()
const char * | nm_setting_user_get_data ()
gboolean | nm_setting_user_set_data ()
gboolean | nm_setting_user_check_key ()
gboolean | nm_setting_user_check_val ()

## Types and Values

#define | NM_SETTING_USER_SETTING_NAME
#define | NM_SETTING_USER_DATA

## Description

The NMSettingUser object is a NMSetting subclass that allow to attach arbitrary user data to NMConnection objects.

## Functions

### nm_setting_user_new ()

    NMSetting *
    nm_setting_user_new (void);

Creates a new NMSettingUser object with default values.

#### Returns

the new empty NMSettingUser object

Since: 1.8

### nm_setting_user_get_keys ()

    const char *const *
    nm_setting_user_get_keys (NMSettingUser *setting,
                              guint *out_len);

#### Parameters

setting | the NMSettingUser |
out_len | the length of the returned array. | [out]

#### Returns

a `NULL`-terminated array containing each key from the table.

[array length=out_len][transfer none]

Since: 1.8

### nm_setting_user_get_data ()

    const char *
    nm_setting_user_get_data (NMSettingUser *setting,
                              const char *key);

#### Parameters

setting | the NMSettingUser instance |
key | the key to lookup |

#### Returns

the value associated with `key` or `NULL` if no such value exists.

[transfer none]

Since: 1.8

### nm_setting_user_set_data ()

    gboolean
    nm_setting_user_set_data (NMSettingUser *setting,
                              const char *key,
                              const char *val,
                              GError **error);

#### Parameters

setting | the NMSettingUser instance |
key | the key to set |
val | the value to set or `NULL` to clear a key. | [nullable]
error | optional error argument |

#### Returns

`TRUE` if the operation was successful. The operation can fail if `key` or `val` are not valid strings according to `nm_setting_user_check_key()` and `nm_setting_user_check_val()`.

Since: 1.8

### nm_setting_user_check_key ()

    gboolean
    nm_setting_user_check_key (const char *key,
                               GError **error);

Checks whether `key` is a valid user data key. This means, key is not `NULL`, not too large and valid ASCII. Also, only digits and numbers are allowed with a few special characters. The key must contain at least one '.' and look like a fully qualified DNS name.

#### Parameters

key | the key to check |
error | a GError, `NULL` to ignore. |

#### Returns

`TRUE` if `key` is a valid user data key.

Since: 1.8

### nm_setting_user_check_val ()

    gboolean
    nm_setting_user_check_val (const char *val,
                               GError **error);

Checks whether `val` is a valid user data value. This means, value is not `NULL`, not too large and valid UTF-8.

#### Parameters

val | the value to check |
error | a GError, `NULL` to ignore. |

#### Returns

`TRUE` if `val` is a valid user data value.

Since: 1.8

## Types and Values

### NM_SETTING_USER_SETTING_NAME

    #define NM_SETTING_USER_SETTING_NAME "user"

### NM_SETTING_USER_DATA

    #define NM_SETTING_USER_DATA "data"