NMConnection

## NMConnection NMConnection — Describes a connection to specific network or provider |

## Synopsis

    #include <nm-connection.h>

    #define             NM_CONNECTION_SECRETS_UPDATED
    #define             NM_CONNECTION_SECRETS_CLEARED
    #define             NM_CONNECTION_CHANGED
    #define             NM_CONNECTION_PATH
    enum                NMConnectionError;
    #define             NM_CONNECTION_ERROR
    GQuark              nm_connection_error_quark           (void);
                        NMConnection;
                        NMConnectionClass;
    NMConnection *      nm_connection_new                   (void);
    NMConnection *      nm_connection_new_from_hash         (GHashTable *hash,
                                                             GError **error);
    NMConnection *      nm_connection_duplicate             (NMConnection *connection);
    NMSetting *         nm_connection_create_setting        (const char *name);
    void                nm_connection_add_setting           (NMConnection *connection,
                                                             NMSetting *setting);
    void                nm_connection_remove_setting        (NMConnection *connection,
                                                             GType setting_type);
    NMSetting *         nm_connection_get_setting           (NMConnection *connection,
                                                             GType setting_type);
    NMSetting *         nm_connection_get_setting_by_name   (NMConnection *connection,
                                                             const char *name);
    gboolean            nm_connection_replace_settings      (NMConnection *connection,
                                                             GHashTable *new_settings,
                                                             GError **error);
    gboolean            nm_connection_replace_settings_from_connection
                                                            (NMConnection *connection,
                                                             NMConnection *new_connection,
                                                             GError **error);
    gboolean            nm_connection_compare               (NMConnection *a,
                                                             NMConnection *b,
                                                             NMSettingCompareFlags flags);
    gboolean            nm_connection_diff                  (NMConnection *a,
                                                             NMConnection *b,
                                                             NMSettingCompareFlags flags,
                                                             GHashTable **out_settings);
    gboolean            nm_connection_verify                (NMConnection *connection,
                                                             GError **error);
    const char *        nm_connection_need_secrets          (NMConnection *connection,
                                                             GPtrArray **hints);
    void                nm_connection_clear_secrets         (NMConnection *connection);
    void                nm_connection_clear_secrets_with_flags
                                                            (NMConnection *connection,
                                                             NMSettingClearSecretsWithFlagsFn func,
                                                             gpointer user_data);
    gboolean            nm_connection_update_secrets        (NMConnection *connection,
                                                             const char *setting_name,
                                                             GHashTable *secrets,
                                                             GError **error);
    void                nm_connection_set_path              (NMConnection *connection,
                                                             const char *path);
    const char *        nm_connection_get_path              (NMConnection *connection);
    const char *        nm_connection_get_virtual_iface_name
                                                            (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);
    GHashTable *        nm_connection_to_hash               (NMConnection *connection,
                                                             NMSettingHashFlags flags);
    void                nm_connection_dump                  (NMConnection *connection);
    GType               nm_connection_lookup_setting_type   (const char *name);
    GType               nm_connection_lookup_setting_type_by_quark
                                                            (GQuark error_quark);
    const char *        nm_connection_get_uuid              (NMConnection *connection);
    const char *        nm_connection_get_id                (NMConnection *connection);
    const char *        nm_connection_get_connection_type   (NMConnection *connection);
    char *              nm_connection_get_virtual_device_description
                                                            (NMConnection *connection);
    NMSetting8021x *    nm_connection_get_setting_802_1x    (NMConnection *connection);
    NMSettingBluetooth * nm_connection_get_setting_bluetooth
                                                            (NMConnection *connection);
    NMSettingBond *     nm_connection_get_setting_bond      (NMConnection *connection);
    NMSettingTeam *     nm_connection_get_setting_team      (NMConnection *connection);
    NMSettingTeamPort * nm_connection_get_setting_team_port (NMConnection *connection);
    NMSettingBridge *   nm_connection_get_setting_bridge    (NMConnection *connection);
    NMSettingBridgePort * nm_connection_get_setting_bridge_port
                                                            (NMConnection *connection);
    NMSettingCdma *     nm_connection_get_setting_cdma      (NMConnection *connection);
    NMSettingConnection * nm_connection_get_setting_connection
                                                            (NMConnection *connection);
    NMSettingDcb *      nm_connection_get_setting_dcb       (NMConnection *connection);
    NMSettingGeneric *  nm_connection_get_setting_generic   (NMConnection *connection);
    NMSettingGsm *      nm_connection_get_setting_gsm       (NMConnection *connection);
    NMSettingInfiniband * nm_connection_get_setting_infiniband
                                                            (NMConnection *connection);
    NMSettingIP4Config * nm_connection_get_setting_ip4_config
                                                            (NMConnection *connection);
    NMSettingIP6Config * nm_connection_get_setting_ip6_config
                                                            (NMConnection *connection);
    NMSettingOlpcMesh * nm_connection_get_setting_olpc_mesh (NMConnection *connection);
    NMSettingPPP *      nm_connection_get_setting_ppp       (NMConnection *connection);
    NMSettingPPPOE *    nm_connection_get_setting_pppoe     (NMConnection *connection);
    NMSettingSerial *   nm_connection_get_setting_serial    (NMConnection *connection);
    NMSettingVPN *      nm_connection_get_setting_vpn       (NMConnection *connection);
    NMSettingWimax *    nm_connection_get_setting_wimax     (NMConnection *connection);
    NMSettingAdsl *     nm_connection_get_setting_adsl      (NMConnection *connection);
    NMSettingWired *    nm_connection_get_setting_wired     (NMConnection *connection);
    NMSettingWireless * nm_connection_get_setting_wireless  (NMConnection *connection);
    NMSettingWirelessSecurity * nm_connection_get_setting_wireless_security
                                                            (NMConnection *connection);
    NMSettingVlan *     nm_connection_get_setting_vlan      (NMConnection *connection);

## Object Hierarchy

      GEnum
       +----NMConnectionError

      GObject
       +----NMConnection

## Properties

      "path"                     gchar*                : Read / Write / Construct

## Signals

      "changed"                                        : Run First
      "secrets-cleared"                                : Run First
      "secrets-updated"                                : Run First

## Description

An NMConnection describes all the settings and configuration values that are necessary to configure network devices for operation on a specific network. Connections are the fundamental operating object for NetworkManager; no device is connected without a NMConnection, or disconnected without having been connected with a NMConnection.

Each NMConnection contains a list of NMSetting objects usually referenced by name (using `nm_connection_get_setting_by_name()`) or by type (with `nm_connection_get_setting()`). The settings describe the actual parameters with which the network devices are configured, including device-specific parameters (MTU, SSID, APN, channel, rate, etc) and IP-level parameters (addresses, routes, addressing methods, etc).

## Details

### NM_CONNECTION_SECRETS_UPDATED

    #define NM_CONNECTION_SECRETS_UPDATED "secrets-updated"

### NM_CONNECTION_SECRETS_CLEARED

    #define NM_CONNECTION_SECRETS_CLEARED "secrets-cleared"

### NM_CONNECTION_CHANGED

    #define NM_CONNECTION_CHANGED         "changed"

### NM_CONNECTION_PATH

    #define NM_CONNECTION_PATH "path"

### enum NMConnectionError

    typedef enum {
    	NM_CONNECTION_ERROR_UNKNOWN = 0,                  /*< nick=UnknownError >*/
    	NM_CONNECTION_ERROR_CONNECTION_SETTING_NOT_FOUND, /*< nick=ConnectionSettingNotFound >*/
    	NM_CONNECTION_ERROR_CONNECTION_TYPE_INVALID,      /*< nick=ConnectionTypeInvalid >*/
    	NM_CONNECTION_ERROR_SETTING_NOT_FOUND             /*< nick=SettingNotFound >*/
    } NMConnectionError;

Describes errors that may result from operations involving a NMConnection.

`NM_CONNECTION_ERROR_UNKNOWN` | unknown or unclassified error
`NM_CONNECTION_ERROR_CONNECTION_SETTING_NOT_FOUND` | the NMConnection object did not contain the required NMSettingConnection object, which must be present for all connections
`NM_CONNECTION_ERROR_CONNECTION_TYPE_INVALID` | the 'type' property of the 'connection' setting did not point to a valid connection base type; ie it was not a hardware-related setting like NMSettingWired or NMSettingWireless.
`NM_CONNECTION_ERROR_SETTING_NOT_FOUND` | the NMConnection object did not contain the specified NMSetting object

### NM_CONNECTION_ERROR

    #define NM_CONNECTION_ERROR nm_connection_error_quark ()

### nm_connection_error_quark ()

    GQuark              nm_connection_error_quark           (void);

Registers an error quark for NMConnection if necessary.

Returns : | the error quark used for NMConnection errors.

### NMConnection

    typedef struct _NMConnection NMConnection;

The NMConnection struct contains only private data. It should only be accessed through the functions described below.

### NMConnectionClass

    typedef struct {
    	GObjectClass parent;

    	/* Signals */
    	void (*secrets_updated) (NMConnection *connection, const char * setting);
    } NMConnectionClass;

### nm_connection_new ()

    NMConnection *      nm_connection_new                   (void);

Creates a new NMConnection object with no NMSetting objects.

Returns : | the new empty NMConnection object

### nm_connection_new_from_hash ()

    NMConnection *      nm_connection_new_from_hash         (GHashTable *hash,
                                                             GError **error);

Creates a new NMConnection from a hash table describing the connection. See `nm_connection_to_hash()` for a description of the expected hash table.

`hash` : | the GHashTable describing the connection. [element-type utf8 GLib.HashTable]
`error` : | on unsuccessful return, an error
Returns : | the new NMConnection object, populated with settings created from the values in the hash table, or `NULL` if the connection failed to validate

### nm_connection_duplicate ()

    NMConnection *      nm_connection_duplicate             (NMConnection *connection);

Duplicates a NMConnection.

`connection` : | the NMConnection to duplicate
Returns : | a new NMConnection containing the same settings and properties as the source NMConnection. [transfer full]

### nm_connection_create_setting ()

    NMSetting *         nm_connection_create_setting        (const char *name);

Create a new NMSetting object of the desired type, given a setting name.

`name` : | a setting name
Returns : | the new setting object, or `NULL` if the setting name was unknown. [transfer full]

### nm_connection_add_setting ()

    void                nm_connection_add_setting           (NMConnection *connection,
                                                             NMSetting *setting);

Adds a NMSetting to the connection, replacing any previous NMSetting of the same name which has previously been added to the NMConnection. The connection takes ownership of the NMSetting object and does not increase the setting object's reference count.

`connection` : | a NMConnection
`setting` : | the NMSetting to add to the connection object. [transfer full]

### nm_connection_remove_setting ()

    void                nm_connection_remove_setting        (NMConnection *connection,
                                                             GType setting_type);

Removes the NMSetting with the given GType from the NMConnection. This operation dereferences the NMSetting object.

`connection` : | a NMConnection
`setting_type` : | the GType of the setting object to remove

### nm_connection_get_setting ()

    NMSetting *         nm_connection_get_setting           (NMConnection *connection,
                                                             GType setting_type);

Gets the NMSetting with the given GType, if one has been previously added to the NMConnection.

`connection` : | a NMConnection
`setting_type` : | the GType of the setting object to return
Returns : | the NMSetting, or `NULL` if no setting of that type was previously added to the NMConnection. [transfer none]

### nm_connection_get_setting_by_name ()

    NMSetting *         nm_connection_get_setting_by_name   (NMConnection *connection,
                                                             const char *name);

Gets the NMSetting with the given name, if one has been previously added the NMConnection.

`connection` : | a NMConnection
`name` : | a setting name
Returns : | the NMSetting, or `NULL` if no setting with that name was previously added to the NMConnection. [transfer none]

### nm_connection_replace_settings ()

    gboolean            nm_connection_replace_settings      (NMConnection *connection,
                                                             GHashTable *new_settings,
                                                             GError **error);

`connection` : | a NMConnection
`new_settings` : | a GHashTable of settings. [element-type utf8 GLib.HashTable]
`error` : | location to store error, or `NULL`
Returns : | `TRUE` if the settings were valid and added to the connection, `FALSE` if they were not

### nm_connection_replace_settings_from_connection ()

    gboolean            nm_connection_replace_settings_from_connection
                                                            (NMConnection *connection,
                                                             NMConnection *new_connection,
                                                             GError **error);

Deep-copies the settings of `new_conenction` and replaces the settings of `connection` with the copied settings.

`connection` : | a NMConnection
`new_connection` : | a NMConnection to replace the settings of `connection` with
`error` : | location to store error, or `NULL`
Returns : | `TRUE` if the settings were valid and added to the connection, `FALSE` if they were not

Since 0.9.10

### nm_connection_compare ()

    gboolean            nm_connection_compare               (NMConnection *a,
                                                             NMConnection *b,
                                                             NMSettingCompareFlags flags);

Compares two NMConnection objects for similarity, with comparison behavior modified by a set of flags. See `nm_setting_compare()` for a description of each flag's behavior.

`a` : | a NMConnection
`b` : | a second NMConnection to compare with the first
`flags` : | compare flags, e.g. `NM_SETTING_COMPARE_FLAG_EXACT`
Returns : | `TRUE` if the comparison succeeds, `FALSE` if it does not

### nm_connection_diff ()

    gboolean            nm_connection_diff                  (NMConnection *a,
                                                             NMConnection *b,
                                                             NMSettingCompareFlags flags,
                                                             GHashTable **out_settings);

Compares two NMConnection objects for similarity, with comparison behavior modified by a set of flags. See `nm_setting_compare()` for a description of each flag's behavior. If the connections differ, settings and keys within each setting that differ are added to the returned `out_settings` hash table. No values are returned, only key names.

`a` : | a NMConnection
`b` : | a second NMConnection to compare with the first
`flags` : | compare flags, e.g. `NM_SETTING_COMPARE_FLAG_EXACT`
`out_settings` : | if the connections differ, on return a hash table mapping setting names to second-level GHashTable (utf8 to guint32), which contains the key names that differ mapped to one or more of `NMSettingDiffResult` as a bitfield. [element-type utf8 GLib.HashTable]
Returns : | `TRUE` if the connections contain the same values, `FALSE` if they do not

### nm_connection_verify ()

    gboolean            nm_connection_verify                (NMConnection *connection,
                                                             GError **error);

Validates the connection and all its settings. Each setting's properties have allowed values, and some values are dependent on other values. For example, if a Wi-Fi connection is security enabled, the NMSettingWireless setting object's 'security' property must contain the setting name of the NMSettingWirelessSecurity object, which must also be present in the connection for the connection to be valid. As another example, the NMSettingWired object's 'mac-address' property must be a validly formatted MAC address. The returned GError contains information about which setting and which property failed validation, and how it failed validation.

`connection` : | the NMConnection to verify
`error` : | location to store error, or `NULL`
Returns : | `TRUE` if the connection is valid, `FALSE` if it is not

### nm_connection_need_secrets ()

    const char *        nm_connection_need_secrets          (NMConnection *connection,
                                                             GPtrArray **hints);

Returns the name of the first setting object in the connection which would need secrets to make a successful connection. The returned hints are only intended as a guide to what secrets may be required, because in some circumstances, there is no way to conclusively determine exactly which secrets are needed.

`connection` : | the NMConnection
`hints` : | the address of a pointer to a GPtrArray, initialized to `NULL`, which on return points to an allocated GPtrArray containing the property names of secrets of the NMSetting which may be required; the caller owns the array and must free the array itself with `g_ptr_array_free()`, but not free its elements. [out][element-type utf8][allow-none][transfer container]
Returns : | the setting name of the NMSetting object which has invalid or missing secrets

### nm_connection_clear_secrets ()

    void                nm_connection_clear_secrets         (NMConnection *connection);

Clears and frees any secrets that may be stored in the connection, to avoid keeping secret data in memory when not needed.

`connection` : | the NMConnection

### nm_connection_clear_secrets_with_flags ()

    void                nm_connection_clear_secrets_with_flags
                                                            (NMConnection *connection,
                                                             NMSettingClearSecretsWithFlagsFn func,
                                                             gpointer user_data);

Clears and frees secrets determined by `func`.

`connection` : | the NMConnection
`func` : | function to be called to determine whether a specific secret should be cleared or not. [scope call]
`user_data` : | caller-supplied data passed to `func`

### nm_connection_update_secrets ()

    gboolean            nm_connection_update_secrets        (NMConnection *connection,
                                                             const char *setting_name,
                                                             GHashTable *secrets,
                                                             GError **error);

Update the specified setting's secrets, given a hash table of secrets intended for that setting (deserialized from D-Bus for example). Will also extract the given setting's secrets hash if given a hash of hashes, as would be returned from `nm_connection_to_hash()`. If `setting_name` is `NULL`, expects a fully serialized NMConnection as returned by `nm_connection_to_hash()` and will update all secrets from all settings contained in `secrets`.

`connection` : | the NMConnection
`setting_name` : | the setting object name to which the secrets apply
`secrets` : | a GHashTable mapping string:GValue of setting property names and secrets of the given `setting_name`. [element-type utf8 GObject.Value]
`error` : | location to store error, or `NULL`
Returns : | `TRUE` if the secrets were successfully updated, `FALSE` if the update failed (tried to update secrets for a setting that doesn't exist, etc)

### nm_connection_set_path ()

    void                nm_connection_set_path              (NMConnection *connection,
                                                             const char *path);

Sets the D-Bus path of the connection. This property is not serialized, and is only for the reference of the caller. Sets the "path" property.

`connection` : | the NMConnection
`path` : | the D-Bus path of the connection as given by the settings service which provides the connection

### nm_connection_get_path ()

    const char *        nm_connection_get_path              (NMConnection *connection);

Returns the connection's D-Bus path.

`connection` : | the NMConnection
Returns : | the D-Bus path of the connection, previously set by a call to `nm_connection_set_path()`.

### nm_connection_get_virtual_iface_name ()

    const char *        nm_connection_get_virtual_iface_name
                                                            (NMConnection *connection);

Returns the name of the virtual kernel interface which the connection needs to use if specified in the settings. This function abstracts all connection types which require this functionality. For all other connection types, this function will return `NULL`.

`connection` : | The NMConnection
Returns : | Name of the kernel interface or `NULL`

### nm_connection_is_type ()

    gboolean            nm_connection_is_type               (NMConnection *connection,
                                                             const char *type);

A convenience function to check if the given `connection` is a particular type (ie wired, Wi-Fi, ppp, etc). Checks the "type" property of the connection and matches that against `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`)
Returns : | `TRUE` if the connection is of the given `type`, `FALSE` if not

### nm_connection_for_each_setting_value ()

    void                nm_connection_for_each_setting_value
                                                            (NMConnection *connection,
                                                             NMSettingValueIterFn func,
                                                             gpointer user_data);

Iterates over the properties of each NMSetting object in the NMConnection, calling the supplied user function for each property.

`connection` : | the NMConnection
`func` : | user-supplied function called for each setting's property. [scope call]
`user_data` : | user data passed to `func` at each invocation

### nm_connection_to_hash ()

    GHashTable *        nm_connection_to_hash               (NMConnection *connection,
                                                             NMSettingHashFlags flags);

Converts the NMConnection into a GHashTable describing the connection, suitable for marshalling over D-Bus or serializing. The hash table mapping is string:GHashTable with each element in the returned hash representing a NMSetting object. The keys are setting object names, and the values are GHashTables mapping string:GValue, each of which represents the properties of the NMSetting object.

`connection` : | the NMConnection
`flags` : | hash flags, e.g. `NM_SETTING_HASH_FLAG_ALL`
Returns : | a new GHashTable describing the connection, its settings, and each setting's properties. The caller owns the hash table and must unref the hash table with `g_hash_table_unref()` when it is no longer needed. [transfer full][element-type utf8 GLib.HashTable]

### nm_connection_dump ()

    void                nm_connection_dump                  (NMConnection *connection);

Print the connection to stdout. For debugging purposes ONLY, should NOT be used for serialization of the connection or machine-parsed in any way. The output format is not guaranteed to be stable and may change at any time.

`connection` : | the NMConnection

### nm_connection_lookup_setting_type ()

    GType               nm_connection_lookup_setting_type   (const char *name);

Returns the GType of the setting's class for a given setting name.

`name` : | a setting name
Returns : | the GType of the setting's class

### nm_connection_lookup_setting_type_by_quark ()

    GType               nm_connection_lookup_setting_type_by_quark
                                                            (GQuark error_quark);

Returns the GType of the setting's class for a given setting error quark. Useful for figuring out which setting a returned error is for.

`error_quark` : | a setting error quark
Returns : | the GType of the setting's class

### nm_connection_get_uuid ()

    const char *        nm_connection_get_uuid              (NMConnection *connection);

A shortcut to return the UUID from the connection's NMSettingConnection.

`connection` : | the NMConnection
Returns : | the UUID from the connection's 'connection' setting

### nm_connection_get_id ()

    const char *        nm_connection_get_id                (NMConnection *connection);

A shortcut to return the ID from the connection's NMSettingConnection.

`connection` : | the NMConnection
Returns : | the ID from the connection's 'connection' setting

### nm_connection_get_connection_type ()

    const char *        nm_connection_get_connection_type   (NMConnection *connection);

A shortcut to return the type from the connection's NMSettingConnection.

`connection` : | the NMConnection
Returns : | the type from the connection's 'connection' setting

Since 0.9.10

### nm_connection_get_virtual_device_description ()

    char *              nm_connection_get_virtual_device_description
                                                            (NMConnection *connection);

Returns the name that `nm_device_disambiguate_names()` would return for the virtual device that would be created for `connection`. Eg, "VLAN (eth1.1)".

`connection` : | an NMConnection for a virtual device type
Returns : | the name of `connection`'s device, or `NULL` if `connection` is not a virtual connection type. [transfer full]

Since 0.9.10

### nm_connection_get_setting_802_1x ()

    NMSetting8021x *    nm_connection_get_setting_802_1x    (NMConnection *connection);

A shortcut to return any NMSetting8021x the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSetting8021x if the connection contains one, otherwise `NULL`. [transfer none]

### nm_connection_get_setting_bluetooth ()

    NMSettingBluetooth * nm_connection_get_setting_bluetooth
                                                            (NMConnection *connection);

A shortcut to return any NMSettingBluetooth the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingBluetooth if the connection contains one, otherwise `NULL`. [transfer none]

### nm_connection_get_setting_bond ()

    NMSettingBond *     nm_connection_get_setting_bond      (NMConnection *connection);

A shortcut to return any NMSettingBond the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingBond if the connection contains one, otherwise `NULL`. [transfer none]

### nm_connection_get_setting_team ()

    NMSettingTeam *     nm_connection_get_setting_team      (NMConnection *connection);

A shortcut to return any NMSettingTeam the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingTeam if the connection contains one, otherwise `NULL`. [transfer none]

Since 0.9.10

### nm_connection_get_setting_team_port ()

    NMSettingTeamPort * nm_connection_get_setting_team_port (NMConnection *connection);

A shortcut to return any NMSettingTeamPort the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingTeamPort if the connection contains one, otherwise `NULL`. [transfer none]

Since 0.9.10

### nm_connection_get_setting_bridge ()

    NMSettingBridge *   nm_connection_get_setting_bridge    (NMConnection *connection);

A shortcut to return any NMSettingBridge the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingBridge if the connection contains one, otherwise `NULL`. [transfer none]

### nm_connection_get_setting_bridge_port ()

    NMSettingBridgePort * nm_connection_get_setting_bridge_port
                                                            (NMConnection *connection);

A shortcut to return any NMSettingBridgePort the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingBridgePort if the connection contains one, otherwise `NULL`. [transfer none]

### nm_connection_get_setting_cdma ()

    NMSettingCdma *     nm_connection_get_setting_cdma      (NMConnection *connection);

A shortcut to return any NMSettingCdma the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingCdma if the connection contains one, otherwise `NULL`. [transfer none]

### nm_connection_get_setting_connection ()

    NMSettingConnection * nm_connection_get_setting_connection
                                                            (NMConnection *connection);

A shortcut to return any NMSettingConnection the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingConnection if the connection contains one, otherwise `NULL`. [transfer none]

### nm_connection_get_setting_dcb ()

    NMSettingDcb *      nm_connection_get_setting_dcb       (NMConnection *connection);

A shortcut to return any NMSettingDcb the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingDcb if the connection contains one, otherwise NULL. [transfer none]

Since 0.9.10

### nm_connection_get_setting_generic ()

    NMSettingGeneric *  nm_connection_get_setting_generic   (NMConnection *connection);

A shortcut to return any NMSettingGeneric the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingGeneric if the connection contains one, otherwise NULL. [transfer none]

Since 0.9.10

### nm_connection_get_setting_gsm ()

    NMSettingGsm *      nm_connection_get_setting_gsm       (NMConnection *connection);

A shortcut to return any NMSettingGsm the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingGsm if the connection contains one, otherwise `NULL`. [transfer none]

### nm_connection_get_setting_infiniband ()

    NMSettingInfiniband * nm_connection_get_setting_infiniband
                                                            (NMConnection *connection);

A shortcut to return any NMSettingInfiniband the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingInfiniband if the connection contains one, otherwise `NULL`. [transfer none]

### nm_connection_get_setting_ip4_config ()

    NMSettingIP4Config * nm_connection_get_setting_ip4_config
                                                            (NMConnection *connection);

A shortcut to return any NMSettingIP4Config the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingIP4Config if the connection contains one, otherwise `NULL`. [transfer none]

### nm_connection_get_setting_ip6_config ()

    NMSettingIP6Config * nm_connection_get_setting_ip6_config
                                                            (NMConnection *connection);

A shortcut to return any NMSettingIP6Config the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingIP6Config if the connection contains one, otherwise `NULL`. [transfer none]

### nm_connection_get_setting_olpc_mesh ()

    NMSettingOlpcMesh * nm_connection_get_setting_olpc_mesh (NMConnection *connection);

A shortcut to return any NMSettingOlpcMesh the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingOlpcMesh if the connection contains one, otherwise `NULL`. [transfer none]

### nm_connection_get_setting_ppp ()

    NMSettingPPP *      nm_connection_get_setting_ppp       (NMConnection *connection);

A shortcut to return any NMSettingPPP the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingPPP if the connection contains one, otherwise `NULL`. [transfer none]

### nm_connection_get_setting_pppoe ()

    NMSettingPPPOE *    nm_connection_get_setting_pppoe     (NMConnection *connection);

A shortcut to return any NMSettingPPPOE the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingPPPOE if the connection contains one, otherwise `NULL`. [transfer none]

### nm_connection_get_setting_serial ()

    NMSettingSerial *   nm_connection_get_setting_serial    (NMConnection *connection);

A shortcut to return any NMSettingSerial the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingSerial if the connection contains one, otherwise `NULL`. [transfer none]

### nm_connection_get_setting_vpn ()

    NMSettingVPN *      nm_connection_get_setting_vpn       (NMConnection *connection);

A shortcut to return any NMSettingVPN the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingVPN if the connection contains one, otherwise `NULL`. [transfer none]

### nm_connection_get_setting_wimax ()

    NMSettingWimax *    nm_connection_get_setting_wimax     (NMConnection *connection);

A shortcut to return any NMSettingWimax the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingWimax if the connection contains one, otherwise `NULL`. [transfer none]

### nm_connection_get_setting_adsl ()

    NMSettingAdsl *     nm_connection_get_setting_adsl      (NMConnection *connection);

A shortcut to return any NMSettingAdsl the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingAdsl if the connection contains one, otherwise `NULL`. [transfer none]

### nm_connection_get_setting_wired ()

    NMSettingWired *    nm_connection_get_setting_wired     (NMConnection *connection);

A shortcut to return any NMSettingWired the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingWired if the connection contains one, otherwise `NULL`. [transfer none]

### nm_connection_get_setting_wireless ()

    NMSettingWireless * nm_connection_get_setting_wireless  (NMConnection *connection);

A shortcut to return any NMSettingWireless the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingWireless if the connection contains one, otherwise `NULL`. [transfer none]

### nm_connection_get_setting_wireless_security ()

    NMSettingWirelessSecurity * nm_connection_get_setting_wireless_security
                                                            (NMConnection *connection);

A shortcut to return any NMSettingWirelessSecurity the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingWirelessSecurity if the connection contains one, otherwise `NULL`. [transfer none]

### nm_connection_get_setting_vlan ()

    NMSettingVlan *     nm_connection_get_setting_vlan      (NMConnection *connection);

A shortcut to return any NMSettingVlan the connection might contain.

`connection` : | the NMConnection
Returns : | an NMSettingVlan if the connection contains one, otherwise `NULL`. [transfer none]

## Property Details

### The `"path"` property

      "path"                     gchar*                : Read / Write / Construct

The connection's D-Bus path, used only by the calling process as a record of the D-Bus path of the connection as provided by a settings service.

Default value: NULL

## Signal Details

### The `"changed"` signal

    void                user_function                      (NMConnection *connection,
                                                            gpointer      user_data)       : Run First

The ::changed signal is emitted when any property of any property (including secrets) of any setting of the connection is modified, or when settings are added or removed.

`connection` : | the object on which the signal is emitted
`user_data` : | user data set when the signal handler was connected.

Since 0.9.10

### The `"secrets-cleared"` signal

    void                user_function                      (NMConnection *connection,
                                                            gpointer      user_data)       : Run First

The ::secrets-cleared signal is emitted when the secrets of a connection are cleared.

`connection` : | the object on which the signal is emitted
`user_data` : | user data set when the signal handler was connected.

### The `"secrets-updated"` signal

    void                user_function                      (NMConnection *connection,
                                                            gchar        *setting_name,
                                                            gpointer      user_data)         : Run First

The ::secrets-updated signal is emitted when the secrets of a setting have been changed.

`connection` : | the object on which the signal is emitted
`setting_name` : | the setting name of the NMSetting for which secrets were updated
`user_data` : | user data set when the signal handler was connected.