NMClient: libnm Reference Manual

## NMClient NMClient |

## Functions

GQuark | nm_client_error_quark ()
void | nm_dns_entry_unref ()
const char * | nm_dns_entry_get_interface ()
const char *const * | nm_dns_entry_get_nameservers ()
const char *const * | nm_dns_entry_get_domains ()
int | nm_dns_entry_get_priority ()
gboolean | nm_dns_entry_get_vpn ()
NMClient * | nm_client_new ()
void | nm_client_new_async ()
NMClient * | nm_client_new_finish ()
NMClientInstanceFlags | nm_client_get_instance_flags ()
GDBusConnection * | nm_client_get_dbus_connection ()
GMainContext * | nm_client_get_main_context ()
GObject * | nm_client_get_context_busy_watcher ()
const char * | nm_client_get_dbus_name_owner ()
const char * | nm_client_get_version ()
NMState | nm_client_get_state ()
gboolean | nm_client_get_startup ()
gboolean | nm_client_get_nm_running ()
NMObject * | nm_client_get_object_by_path ()
NMMetered | nm_client_get_metered ()
gboolean | nm_client_networking_get_enabled ()
const guint32 * | nm_client_get_capabilities ()
gboolean | nm_client_networking_set_enabled ()
gboolean | nm_client_wireless_get_enabled ()
void | nm_client_wireless_set_enabled ()
gboolean | nm_client_wireless_hardware_get_enabled ()
gboolean | nm_client_wwan_get_enabled ()
void | nm_client_wwan_set_enabled ()
gboolean | nm_client_wwan_hardware_get_enabled ()
gboolean | nm_client_wimax_get_enabled ()
void | nm_client_wimax_set_enabled ()
gboolean | nm_client_wimax_hardware_get_enabled ()
gboolean | nm_client_connectivity_check_get_available ()
gboolean | nm_client_connectivity_check_get_enabled ()
void | nm_client_connectivity_check_set_enabled ()
const char * | nm_client_connectivity_check_get_uri ()
gboolean | nm_client_get_logging ()
gboolean | nm_client_set_logging ()
NMClientPermissionResult | nm_client_get_permission_result ()
NMTernary | nm_client_get_permissions_state ()
NMConnectivityState | nm_client_get_connectivity ()
NMConnectivityState | nm_client_check_connectivity ()
void | nm_client_check_connectivity_async ()
NMConnectivityState | nm_client_check_connectivity_finish ()
gboolean | nm_client_save_hostname ()
void | nm_client_save_hostname_async ()
gboolean | nm_client_save_hostname_finish ()
const GPtrArray * | nm_client_get_devices ()
const GPtrArray * | nm_client_get_all_devices ()
NMDevice * | nm_client_get_device_by_path ()
NMDevice * | nm_client_get_device_by_iface ()
const GPtrArray * | nm_client_get_active_connections ()
NMActiveConnection * | nm_client_get_primary_connection ()
NMActiveConnection * | nm_client_get_activating_connection ()
void | nm_client_activate_connection_async ()
NMActiveConnection * | nm_client_activate_connection_finish ()
void | nm_client_add_and_activate_connection_async ()
NMActiveConnection * | nm_client_add_and_activate_connection_finish ()
void | nm_client_add_and_activate_connection2 ()
NMActiveConnection * | nm_client_add_and_activate_connection2_finish ()
gboolean | nm_client_deactivate_connection ()
void | nm_client_deactivate_connection_async ()
gboolean | nm_client_deactivate_connection_finish ()
const GPtrArray * | nm_client_get_connections ()
NMRemoteConnection * | nm_client_get_connection_by_id ()
NMRemoteConnection * | nm_client_get_connection_by_path ()
NMRemoteConnection * | nm_client_get_connection_by_uuid ()
void | nm_client_add_connection_async ()
NMRemoteConnection * | nm_client_add_connection_finish ()
void | nm_client_add_connection2 ()
NMRemoteConnection * | nm_client_add_connection2_finish ()
gboolean | nm_client_load_connections ()
void | nm_client_load_connections_async ()
gboolean | nm_client_load_connections_finish ()
gboolean | nm_client_reload_connections ()
void | nm_client_reload_connections_async ()
gboolean | nm_client_reload_connections_finish ()
const char * | nm_client_get_dns_mode ()
const char * | nm_client_get_dns_rc_manager ()
const GPtrArray * | nm_client_get_dns_configuration ()
const GPtrArray * | nm_client_get_checkpoints ()
void | nm_client_checkpoint_create ()
NMCheckpoint * | nm_client_checkpoint_create_finish ()
void | nm_client_checkpoint_destroy ()
gboolean | nm_client_checkpoint_destroy_finish ()
void | nm_client_checkpoint_rollback ()
GHashTable * | nm_client_checkpoint_rollback_finish ()
void | nm_client_checkpoint_adjust_rollback_timeout ()
gboolean | nm_client_checkpoint_adjust_rollback_timeout_finish ()
void | nm_client_reload ()
gboolean | nm_client_reload_finish ()
void | nm_client_dbus_call ()
GVariant * | nm_client_dbus_call_finish ()
void | nm_client_dbus_set_property ()
gboolean | nm_client_dbus_set_property_finish ()
void | nm_utils_print ()

## Types and Values

enum | NMClientInstanceFlags
#define | NM_CLIENT_VERSION
#define | NM_CLIENT_STATE
#define | NM_CLIENT_STARTUP
#define | NM_CLIENT_NM_RUNNING
#define | NM_CLIENT_DBUS_CONNECTION
#define | NM_CLIENT_DBUS_NAME_OWNER
#define | NM_CLIENT_INSTANCE_FLAGS
#define | NM_CLIENT_NETWORKING_ENABLED
#define | NM_CLIENT_WIRELESS_ENABLED
#define | NM_CLIENT_WWAN_ENABLED
#define | NM_CLIENT_WIMAX_ENABLED
#define | NM_CLIENT_WIRELESS_HARDWARE_ENABLED
#define | NM_CLIENT_WWAN_HARDWARE_ENABLED
#define | NM_CLIENT_WIMAX_HARDWARE_ENABLED
#define | NM_CLIENT_ACTIVE_CONNECTIONS
#define | NM_CLIENT_CONNECTIVITY
#define | NM_CLIENT_CONNECTIVITY_CHECK_URI
#define | NM_CLIENT_CONNECTIVITY_CHECK_AVAILABLE
#define | NM_CLIENT_CONNECTIVITY_CHECK_ENABLED
#define | NM_CLIENT_PRIMARY_CONNECTION
#define | NM_CLIENT_ACTIVATING_CONNECTION
#define | NM_CLIENT_DEVICES
#define | NM_CLIENT_ALL_DEVICES
#define | NM_CLIENT_CONNECTIONS
#define | NM_CLIENT_HOSTNAME
#define | NM_CLIENT_CAN_MODIFY
#define | NM_CLIENT_METERED
#define | NM_CLIENT_DNS_MODE
#define | NM_CLIENT_DNS_RC_MANAGER
#define | NM_CLIENT_DNS_CONFIGURATION
#define | NM_CLIENT_CHECKPOINTS
#define | NM_CLIENT_CAPABILITIES
#define | NM_CLIENT_PERMISSIONS_STATE
#define | NM_CLIENT_DEVICE_ADDED
#define | NM_CLIENT_DEVICE_REMOVED
#define | NM_CLIENT_ANY_DEVICE_ADDED
#define | NM_CLIENT_ANY_DEVICE_REMOVED
#define | NM_CLIENT_PERMISSION_CHANGED
#define | NM_CLIENT_CONNECTION_ADDED
#define | NM_CLIENT_CONNECTION_REMOVED
#define | NM_CLIENT_ACTIVE_CONNECTION_ADDED
#define | NM_CLIENT_ACTIVE_CONNECTION_REMOVED
enum | NMClientError
#define | NM_CLIENT_ERROR

## Object Hierarchy

        GBoxed
        ╰── NMDnsEntry
        GEnum
        ╰── NMClientError
        GFlags
        ╰── NMClientInstanceFlags

## Description

## Functions

### nm_client_error_quark ()

    GQuark
    nm_client_error_quark (void);

Registers an error quark for NMClient if necessary.

#### Returns

the error quark used for NMClient errors.

### nm_dns_entry_unref ()

    void
    nm_dns_entry_unref (NMDnsEntry *entry);

Decreases the reference count of the object. If the reference count reaches zero, the object will be destroyed.

#### Parameters

entry | the NMDnsEntry |

Since: 1.6

### nm_dns_entry_get_interface ()

    const char *
    nm_dns_entry_get_interface (NMDnsEntry *entry);

Gets the interface on which name servers are contacted.

#### Parameters

entry | the NMDnsEntry |

#### Returns

the interface name.

[transfer none]

Since: 1.6

### nm_dns_entry_get_nameservers ()

    const char *const *
    nm_dns_entry_get_nameservers (NMDnsEntry *entry);

Gets the list of name servers for this entry.

#### Parameters

entry | the NMDnsEntry |

#### Returns

the list of name servers.

[transfer none]

Since: 1.6

### nm_dns_entry_get_domains ()

    const char *const *
    nm_dns_entry_get_domains (NMDnsEntry *entry);

Gets the list of DNS domains.

#### Parameters

entry | the NMDnsEntry |

#### Returns

the list of DNS domains.

[transfer none]

Since: 1.6

### nm_dns_entry_get_priority ()

    int
    nm_dns_entry_get_priority (NMDnsEntry *entry);

Gets the priority of the entry

#### Parameters

entry | the NMDnsEntry |

#### Returns

the priority of the entry

Since: 1.6

### nm_dns_entry_get_vpn ()

    gboolean
    nm_dns_entry_get_vpn (NMDnsEntry *entry);

Gets whether the entry refers to VPN name servers.

#### Parameters

entry | the NMDnsEntry |

#### Returns

`TRUE` if the entry refers to VPN name servers

Since: 1.6

### nm_client_new ()

    NMClient *
    nm_client_new (GCancellable *cancellable,
                   GError **error);

Creates a new NMClient.

Note that this will do blocking D-Bus calls to initialize the client. You can use `nm_client_new_async()` if you want to avoid that.

#### Parameters

cancellable | a GCancellable, or `NULL` |
error | location for a GError, or `NULL` |

#### Returns

a new NMClient or NULL on an error

### nm_client_new_async ()

    void
    nm_client_new_async (GCancellable *cancellable,
                         GAsyncReadyCallback callback,
                         gpointer user_data);

Creates a new NMClient and begins asynchronously initializing it. `callback` will be called when it is done; use `nm_client_new_finish()` to get the result. Note that on an error, the callback can be invoked with two first parameters as NULL.

#### Parameters

cancellable | a GCancellable, or `NULL` |
callback | callback to call when the client is created |
user_data | data for `callback` |

### nm_client_new_finish ()

    NMClient *
    nm_client_new_finish (GAsyncResult *result,
                          GError **error);

Gets the result of an `nm_client_new_async()` call.

#### Parameters

result | a GAsyncResult |
error | location for a GError, or `NULL` |

#### Returns

a new NMClient, or `NULL` on error

### nm_client_get_instance_flags ()

    NMClientInstanceFlags
    nm_client_get_instance_flags (NMClient *self);

#### Parameters

self | the NMClient instance. |

#### Returns

the NMClientInstanceFlags flags.

Since: 1.24

### nm_client_get_dbus_connection ()

    GDBusConnection *
    nm_client_get_dbus_connection (NMClient *client);

Gets the `GDBusConnection` of the instance. This can be either passed when constructing the instance (as "dbus-connection" property), or it will be automatically initialized during async/sync init.

#### Parameters

client | a NMClient |

#### Returns

the D-Bus connection of the client, or `NULL` if none is set.

[transfer none]

Since: 1.22

### nm_client_get_main_context ()

    GMainContext *
    nm_client_get_main_context (NMClient *self);

The NMClient instance is permanently associated with the current thread default GMainContext, referenced the time when the instance was created. To receive events, the user must iterate this context and can use it to synchronize access to the client.

Note that even after NMClient instance got destroyed, there might still be pending sources registered in the context. That means, to fully clean up, the user must continue iterating the context as long as the `nm_client_get_context_busy_watcher()` object is alive.

#### Parameters

self | the NMClient instance |

#### Returns

the GMainContext of the client.

[transfer none]

Since: 1.22

### nm_client_get_context_busy_watcher ()

    GObject *
    nm_client_get_context_busy_watcher (NMClient *self);

#### Parameters

self | the NMClient instance. |

#### Returns

a GObject that stays alive as long as there are pending D-Bus operations.

NMClient will schedule asynchronous D-Bus requests which will complete on the GMainContext associated with the instance. When destroying the NMClient instance, those requests are cancelled right away, however their pending requests are still outstanding and queued in the GMainContext. These outstanding callbacks keep the GMainContext alive. In order to fully release all resources, the user must keep iterating the main context until all these callbacks are handled. Of course, at this point no more actual callbacks will be invoked for the user, those are all internally cancelled.

This just leaves one problem: how long does the user need to keep the GMainContext running to ensure everything is cleaned up? The answer is this GObject. Subscribe a weak reference to the returned object and keep iterating the main context until the object got unreferenced.

Note that after the NMClient instance gets destroyed, the remaining callbacks will be invoked right away. That means, the user won't have to iterate the main context much longer.

[transfer none]

Since: 1.22

### nm_client_get_dbus_name_owner ()

    const char *
    nm_client_get_dbus_name_owner (NMClient *client);

#### Parameters

client | a NMClient |

#### Returns

the current name owner of the D-Bus service of NetworkManager.

[transfer none]

Since: 1.22

### nm_client_get_version ()

    const char *
    nm_client_get_version (NMClient *client);

Gets NetworkManager version.

#### Parameters

client | a NMClient |

#### Returns

string with the version (or `NULL` if NetworkManager is not running)

### nm_client_get_state ()

    NMState
    nm_client_get_state (NMClient *client);

Gets the current daemon state.

#### Parameters

client | a NMClient |

#### Returns

the current `NMState`

### nm_client_get_startup ()

    gboolean
    nm_client_get_startup (NMClient *client);

Tests whether the daemon is still in the process of activating connections at startup.

#### Parameters

client | a NMClient |

#### Returns

whether the daemon is still starting up

### nm_client_get_nm_running ()

    gboolean
    nm_client_get_nm_running (NMClient *client);

Determines whether the daemon is running.

#### Parameters

client | a NMClient |

#### Returns

`TRUE` if the daemon is running

### nm_client_get_object_by_path ()

    NMObject *
    nm_client_get_object_by_path (NMClient *client,
                                  const char *dbus_path);

#### Parameters

client | the NMClient instance |
dbus_path | the D-Bus path of the object to look up |

#### Returns

the NMObject instance that is cached under `dbus_path` , or `NULL` if no such object exists.

[transfer none]

Since: 1.24

### nm_client_get_metered ()

    NMMetered
    nm_client_get_metered (NMClient *client);

#### Parameters

client | a NMClient |

#### Returns

whether the default route is metered.

Since: 1.22

### nm_client_networking_get_enabled ()

    gboolean
    nm_client_networking_get_enabled (NMClient *client);

Whether networking is enabled or disabled.

#### Parameters

client | a NMClient |

#### Returns

`TRUE` if networking is enabled, `FALSE` if networking is disabled

### nm_client_get_capabilities ()

    const guint32 *
    nm_client_get_capabilities (NMClient *client,
                                gsize *length);

#### Parameters

client | the NMClient instance |
length | the number of returned capabilities. | [out][allow-none]

#### Returns

the list of capabilities reported by the server or `NULL` if the capabilities are unknown. The numeric values correspond to NMCapability enum. The array is terminated by a numeric zero sentinel at position `length` .

[transfer none][array length=length]

Since: 1.24

### nm_client_networking_set_enabled ()

    gboolean
    nm_client_networking_set_enabled (NMClient *client,
                                      gboolean enabled,
                                      GError **error);

`nm_client_networking_set_enabled` has been deprecated since version 1.22 and should not be used in newly-written code.

Use the async command `nm_client_dbus_call()` on `NM_DBUS_PATH`, `NM_DBUS_INTERFACE` to call "Enable" with "(b)" arguments and no return value.

Enables or disables networking. When networking is disabled, all controlled interfaces are disconnected and deactivated. When networking is enabled, all controlled interfaces are available for activation.

#### Parameters

client | a NMClient |
enabled | `TRUE` to set networking enabled, `FALSE` to set networking disabled |
error | return location for a GError, or `NULL`. | [allow-none]

#### Returns

`TRUE` on success, `FALSE` otherwise

### nm_client_wireless_get_enabled ()

    gboolean
    nm_client_wireless_get_enabled (NMClient *client);

Determines whether the wireless is enabled.

#### Parameters

client | a NMClient |

#### Returns

`TRUE` if wireless is enabled

### nm_client_wireless_set_enabled ()

    void
    nm_client_wireless_set_enabled (NMClient *client,
                                    gboolean enabled);

`nm_client_wireless_set_enabled` has been deprecated since version 1.22 and should not be used in newly-written code.

Use the async command `nm_client_dbus_set_property()` on `NM_DBUS_PATH`, `NM_DBUS_INTERFACE` to set "WirelessEnabled" property to a "(b)" value.

Enables or disables wireless devices.

#### Parameters

client | a NMClient |
enabled | `TRUE` to enable wireless |

### nm_client_wireless_hardware_get_enabled ()

    gboolean
    nm_client_wireless_hardware_get_enabled
                                   (NMClient *client);

Determines whether the wireless hardware is enabled.

#### Parameters

client | a NMClient |

#### Returns

`TRUE` if the wireless hardware is enabled

### nm_client_wwan_get_enabled ()

    gboolean
    nm_client_wwan_get_enabled (NMClient *client);

Determines whether WWAN is enabled.

#### Parameters

client | a NMClient |

#### Returns

`TRUE` if WWAN is enabled

### nm_client_wwan_set_enabled ()

    void
    nm_client_wwan_set_enabled (NMClient *client,
                                gboolean enabled);

`nm_client_wwan_set_enabled` has been deprecated since version 1.22 and should not be used in newly-written code.

Use the async command `nm_client_dbus_set_property()` on `NM_DBUS_PATH`, `NM_DBUS_INTERFACE` to set "WwanEnabled" property to a "(b)" value.

Enables or disables WWAN devices.

#### Parameters

client | a NMClient |
enabled | `TRUE` to enable WWAN |

### nm_client_wwan_hardware_get_enabled ()

    gboolean
    nm_client_wwan_hardware_get_enabled (NMClient *client);

Determines whether the WWAN hardware is enabled.

#### Parameters

client | a NMClient |

#### Returns

`TRUE` if the WWAN hardware is enabled

### nm_client_wimax_get_enabled ()

    gboolean
    nm_client_wimax_get_enabled (NMClient *client);

`nm_client_wimax_get_enabled` has been deprecated since version 1.22 and should not be used in newly-written code.

This function always returns FALSE because WiMax is no longer supported.

Determines whether WiMAX is enabled.

#### Parameters

client | a NMClient |

#### Returns

`TRUE` if WiMAX is enabled

### nm_client_wimax_set_enabled ()

    void
    nm_client_wimax_set_enabled (NMClient *client,
                                 gboolean enabled);

`nm_client_wimax_set_enabled` has been deprecated since version 1.22 and should not be used in newly-written code.

This function does nothing because WiMax is no longer supported.

Enables or disables WiMAX devices.

#### Parameters

client | a NMClient |
enabled | `TRUE` to enable WiMAX |

### nm_client_wimax_hardware_get_enabled ()

    gboolean
    nm_client_wimax_hardware_get_enabled (NMClient *client);

`nm_client_wimax_hardware_get_enabled` has been deprecated since version 1.22 and should not be used in newly-written code.

This function always returns FALSE because WiMax is no longer supported.

Determines whether the WiMAX hardware is enabled.

#### Parameters

client | a NMClient |

#### Returns

`TRUE` if the WiMAX hardware is enabled

### nm_client_connectivity_check_get_available ()

    gboolean
    nm_client_connectivity_check_get_available
                                   (NMClient *client);

Determine whether connectivity checking is available. This requires that the URI of a connectivity service has been set in the configuration file.

#### Parameters

client | a NMClient |

#### Returns

`TRUE` if connectivity checking is available.

Since: 1.10

### nm_client_connectivity_check_get_enabled ()

    gboolean
    nm_client_connectivity_check_get_enabled
                                   (NMClient *client);

Determine whether connectivity checking is enabled.

#### Parameters

client | a NMClient |

#### Returns

`TRUE` if connectivity checking is enabled.

Since: 1.10

### nm_client_connectivity_check_set_enabled ()

    void
    nm_client_connectivity_check_set_enabled
                                   (NMClient *client,
                                    gboolean enabled);

`nm_client_connectivity_check_set_enabled` has been deprecated since version 1.22 and should not be used in newly-written code.

Use the async command `nm_client_dbus_set_property()` on `NM_DBUS_PATH`, `NM_DBUS_INTERFACE` to set "ConnectivityCheckEnabled" property to a "(b)" value.

Enable or disable connectivity checking. Note that if a connectivity checking URI has not been configured, this will not have any effect.

#### Parameters

client | a NMClient |
enabled | `TRUE` to enable connectivity checking |

Since: 1.10

### nm_client_connectivity_check_get_uri ()

    const char *
    nm_client_connectivity_check_get_uri (NMClient *client);

Get the URI that will be queried to determine if there is internet connectivity.

#### Parameters

client | a NMClient |

#### Returns

the connectivity URI in use.

[transfer none]

Since: 1.20

### nm_client_get_logging ()

    gboolean
    nm_client_get_logging (NMClient *client,
                           char **level,
                           char **domains,
                           GError **error);

`nm_client_get_logging` has been deprecated since version 1.22 and should not be used in newly-written code.

Use the async command `nm_client_dbus_call()` on `NM_DBUS_PATH`, `NM_DBUS_INTERFACE` to call "GetLogging" with no arguments to get "(ss)" for level and domains.

Gets NetworkManager current logging level and domains.

#### Parameters

client | a NMClient |
level | return location for logging level string. | [allow-none]
domains | return location for log domains string. The string is a list of domains separated by ",". | [allow-none]
error | return location for a GError, or `NULL`. | [allow-none]

#### Returns

`TRUE` on success, `FALSE` otherwise

### nm_client_set_logging ()

    gboolean
    nm_client_set_logging (NMClient *client,
                           const char *level,
                           const char *domains,
                           GError **error);

`nm_client_set_logging` has been deprecated since version 1.22 and should not be used in newly-written code.

Use the async command `nm_client_dbus_call()` on `NM_DBUS_PATH`, `NM_DBUS_INTERFACE` to call "SetLogging" with "(ss)" arguments for level and domains.

Sets NetworkManager logging level and/or domains.

#### Parameters

client | a NMClient |
level | logging level to set (`NULL` or an empty string for no change). | [allow-none]
domains | logging domains to set. The string should be a list of log domains separated by ",". (`NULL` or an empty string for no change). | [allow-none]
error | return location for a GError, or `NULL`. | [allow-none]

#### Returns

`TRUE` on success, `FALSE` otherwise

### nm_client_get_permission_result ()

    NMClientPermissionResult
    nm_client_get_permission_result (NMClient *client,
                                     NMClientPermission permission);

Requests the result of a specific permission, which indicates whether the client can or cannot perform the action the permission represents

#### Parameters

client | a NMClient |
permission | the permission for which to return the result, one of NMClientPermission |

#### Returns

the permission's result, one of NMClientPermissionResult

### nm_client_get_permissions_state ()

    NMTernary
    nm_client_get_permissions_state (NMClient *self);

#### Parameters

self | the NMClient instance |

#### Returns

the state of the cached permissions. `NM_TERNARY_DEFAULT` means that no permissions result was yet received. All permissions are unknown. `NM_TERNARY_TRUE` means that the permissions got received and are cached. %`NM_TERNARY_FALSE` means that permissions are cached, but they are invalided as "CheckPermissions" signal was received in the meantime.

Since: 1.24

### nm_client_get_connectivity ()

    NMConnectivityState
    nm_client_get_connectivity (NMClient *client);

Gets the current network connectivity state. Contrast `nm_client_check_connectivity()` and `nm_client_check_connectivity_async()`, which re-check the connectivity state first before returning any information.

#### Parameters

client | an NMClient |

#### Returns

the current connectivity state

### nm_client_check_connectivity ()

    NMConnectivityState
    nm_client_check_connectivity (NMClient *client,
                                  GCancellable *cancellable,
                                  GError **error);

`nm_client_check_connectivity` has been deprecated since version 1.22 and should not be used in newly-written code.

Use `nm_client_check_connectivity_async()` or GDBusConnection.

Updates the network connectivity state and returns the (new) current state. Contrast `nm_client_get_connectivity()`, which returns the most recent known state without re-checking.

This is a blocking call; use `nm_client_check_connectivity_async()` if you do not want to block.

#### Parameters

client | an NMClient |
cancellable | a GCancellable |
error | return location for a GError |

#### Returns

the (new) current connectivity state

### nm_client_check_connectivity_async ()

    void
    nm_client_check_connectivity_async (NMClient *client,
                                        GCancellable *cancellable,
                                        GAsyncReadyCallback callback,
                                        gpointer user_data);

Asynchronously updates the network connectivity state and invokes `callback` when complete. Contrast `nm_client_get_connectivity()`, which (immediately) returns the most recent known state without re-checking, and `nm_client_check_connectivity()`, which blocks.

#### Parameters

client | an NMClient |
cancellable | a GCancellable |
callback | callback to call with the result |
user_data | data for `callback` . |

### nm_client_check_connectivity_finish ()

    NMConnectivityState
    nm_client_check_connectivity_finish (NMClient *client,
                                         GAsyncResult *result,
                                         GError **error);

Retrieves the result of an `nm_client_check_connectivity_async()` call.

#### Parameters

client | an NMClient |
result | the GAsyncResult |
error | return location for a GError |

#### Returns

the (new) current connectivity state

### nm_client_save_hostname ()

    gboolean
    nm_client_save_hostname (NMClient *client,
                             const char *hostname,
                             GCancellable *cancellable,
                             GError **error);

`nm_client_save_hostname` has been deprecated since version 1.22 and should not be used in newly-written code.

Use `nm_client_save_hostname_async()` or GDBusConnection.

Requests that the machine's persistent hostname be set to the specified value or cleared.

#### Parameters

client | the `NMClient` |
hostname | the new persistent hostname to set, or `NULL` to clear any existing persistent hostname. | [allow-none]
cancellable | a GCancellable, or `NULL` |
error | return location for GError |

#### Returns

`TRUE` if the request was successful, `FALSE` if it failed

### nm_client_save_hostname_async ()

    void
    nm_client_save_hostname_async (NMClient *client,
                                   const char *hostname,
                                   GCancellable *cancellable,
                                   GAsyncReadyCallback callback,
                                   gpointer user_data);

Requests that the machine's persistent hostname be set to the specified value or cleared.

#### Parameters

client | the `NMClient` |
hostname | the new persistent hostname to set, or `NULL` to clear any existing persistent hostname. | [allow-none]
cancellable | a GCancellable, or `NULL` |
callback | callback to be called when the operation completes. | [scope async]
user_data | caller-specific data passed to `callback` . | [closure]

### nm_client_save_hostname_finish ()

    gboolean
    nm_client_save_hostname_finish (NMClient *client,
                                    GAsyncResult *result,
                                    GError **error);

Gets the result of an `nm_client_save_hostname_async()` call.

#### Parameters

client | the `NMClient` |
result | the result passed to the GAsyncReadyCallback |
error | return location for GError |

#### Returns

`TRUE` if the request was successful, `FALSE` if it failed

### nm_client_get_devices ()

    const GPtrArray *
    nm_client_get_devices (NMClient *client);

Gets all the known network devices. Use `nm_device_get_type()` or the `NM_IS_DEVICE_XXXX` functions to determine what kind of device member of the returned array is, and then you may use device-specific methods such as `nm_device_ethernet_get_hw_address()`.

#### Parameters

client | a NMClient |

#### Returns

a GPtrArray containing all the NMDevices. The returned array is owned by the NMClient object and should not be modified.

[transfer none][element-type NMDevice]

### nm_client_get_all_devices ()

    const GPtrArray *
    nm_client_get_all_devices (NMClient *client);

Gets both real devices and device placeholders (eg, software devices which do not currently exist, but could be created automatically by NetworkManager if one of their NMDevice::ActivatableConnections was activated). Use `nm_device_is_real()` to determine whether each device is a real device or a placeholder.

Use `nm_device_get_type()` or the `NM_IS_DEVICE_XXXX()` functions to determine what kind of device each member of the returned array is, and then you may use device-specific methods such as `nm_device_ethernet_get_hw_address()`.

#### Parameters

client | a NMClient |

#### Returns

a GPtrArray containing all the NMDevices. The returned array is owned by the NMClient object and should not be modified.

[transfer none][element-type NMDevice]

Since: 1.2

### nm_client_get_device_by_path ()

    NMDevice *
    nm_client_get_device_by_path (NMClient *client,
                                  const char *object_path);

Gets a NMDevice from a NMClient.

#### Parameters

client | a NMClient |
object_path | the object path to search for |

#### Returns

the NMDevice for the given `object_path` or `NULL` if none is found.

[transfer none]

### nm_client_get_device_by_iface ()

    NMDevice *
    nm_client_get_device_by_iface (NMClient *client,
                                   const char *iface);

Gets a NMDevice from a NMClient.

#### Parameters

client | a NMClient |
iface | the interface name to search for |

#### Returns

the NMDevice for the given `iface` or `NULL` if none is found.

[transfer none]

### nm_client_get_active_connections ()

    const GPtrArray *
    nm_client_get_active_connections (NMClient *client);

Gets the active connections.

#### Parameters

client | a NMClient |

#### Returns

a GPtrArray containing all the active NMActiveConnections. The returned array is owned by the client and should not be modified.

[transfer none][element-type NMActiveConnection]

### nm_client_get_primary_connection ()

    NMActiveConnection *
    nm_client_get_primary_connection (NMClient *client);

Gets the NMActiveConnection corresponding to the primary active network device.

In particular, when there is no VPN active, or the VPN does not have the default route, this returns the active connection that has the default route. If there is a VPN active with the default route, then this function returns the active connection that contains the route to the VPN endpoint.

If there is no default route, or the default route is over a non-NetworkManager-recognized device, this will return `NULL`.

#### Parameters

client | an NMClient |

#### Returns

the appropriate NMActiveConnection, if any.

[transfer none]

### nm_client_get_activating_connection ()

    NMActiveConnection *
    nm_client_get_activating_connection (NMClient *client);

Gets the NMActiveConnection corresponding to a currently-activating connection that is expected to become the new “primary-connection” upon successful activation.

#### Parameters

client | an NMClient |

#### Returns

the appropriate NMActiveConnection, if any.

[transfer none]

### nm_client_activate_connection_async ()

    void
    nm_client_activate_connection_async (NMClient *client,
                                         NMConnection *connection,
                                         NMDevice *device,
                                         const char *specific_object,
                                         GCancellable *cancellable,
                                         GAsyncReadyCallback callback,
                                         gpointer user_data);

Asynchronously starts a connection to a particular network using the configuration settings from `connection` and the network device `device` . Certain connection types also take a "specific object" which is the object path of a connection- specific object, like an NMAccessPoint for Wi-Fi connections, or an NMWimaxNsp for WiMAX connections, to which you wish to connect. If the specific object is not given, NetworkManager can, in some cases, automatically determine which network to connect to given the settings in `connection` .

If `connection` is not given for a device-based activation, NetworkManager picks the best available connection for the device and activates it.

Note that the callback is invoked when NetworkManager has started activating the new connection, not when it finishes. You can use the returned NMActiveConnection object (in particular, “state”) to track the activation to its completion.

#### Parameters

client | a NMClient |
connection | an NMConnection. | [allow-none]
device | the NMDevice. | [allow-none]
specific_object | the object path of a connection-type-specific object this activation should use. This parameter is currently ignored for wired and mobile broadband connections, and the value of `NULL` should be used (ie, no specific object). For Wi-Fi or WiMAX connections, pass the object path of a NMAccessPoint or NMWimaxNsp owned by `device` , which you can get using `nm_object_get_path()`, and which will be used to complete the details of the newly added connection. | [allow-none]
cancellable | a GCancellable, or `NULL` |
callback | callback to be called when the activation has started |
user_data | caller-specific data passed to `callback` |

### nm_client_activate_connection_finish ()

    NMActiveConnection *
    nm_client_activate_connection_finish (NMClient *client,
                                          GAsyncResult *result,
                                          GError **error);

Gets the result of a call to `nm_client_activate_connection_async()`.

#### Parameters

client | an NMClient |
result | the result passed to the GAsyncReadyCallback |
error | location for a GError, or `NULL` |

#### Returns

the new NMActiveConnection on success, `NULL` on failure, in which case `error` will be set.

[transfer full]

### nm_client_add_and_activate_connection_async ()

    void
    nm_client_add_and_activate_connection_async
                                   (NMClient *client,
                                    NMConnection *partial,
                                    NMDevice *device,
                                    const char *specific_object,
                                    GCancellable *cancellable,
                                    GAsyncReadyCallback callback,
                                    gpointer user_data);

Adds a new connection using the given details (if any) as a template, automatically filling in missing settings with the capabilities of the given device and specific object. The new connection is then asynchronously activated as with `nm_client_activate_connection_async()`. Cannot be used for VPN connections at this time.

Note that the callback is invoked when NetworkManager has started activating the new connection, not when it finishes. You can used the returned NMActiveConnection object (in particular, “state”) to track the activation to its completion.

#### Parameters

client | a NMClient |
partial | an NMConnection to add; the connection may be partially filled (or even `NULL`) and will be completed by NetworkManager using the given `device` and `specific_object` before being added. | [allow-none]
device | the NMDevice |
specific_object | the object path of a connection-type-specific object this activation should use. This parameter is currently ignored for wired and mobile broadband connections, and the value of `NULL` should be used (ie, no specific object). For Wi-Fi or WiMAX connections, pass the object path of a NMAccessPoint or NMWimaxNsp owned by `device` , which you can get using `nm_object_get_path()`, and which will be used to complete the details of the newly added connection. If the variant is floating, it will be consumed. | [allow-none]
cancellable | a GCancellable, or `NULL` |
callback | callback to be called when the activation has started |
user_data | caller-specific data passed to `callback` |

### nm_client_add_and_activate_connection_finish ()

    NMActiveConnection *
    nm_client_add_and_activate_connection_finish
                                   (NMClient *client,
                                    GAsyncResult *result,
                                    GError **error);

Gets the result of a call to `nm_client_add_and_activate_connection_async()`.

You can call `nm_active_connection_get_connection()` on the returned NMActiveConnection to find the path of the created NMConnection.

#### Parameters

client | an NMClient |
result | the result passed to the GAsyncReadyCallback |
error | location for a GError, or `NULL` |

#### Returns

the new NMActiveConnection on success, `NULL` on failure, in which case `error` will be set.

[transfer full]

### nm_client_add_and_activate_connection2 ()

    void
    nm_client_add_and_activate_connection2
                                   (NMClient *client,
                                    NMConnection *partial,
                                    NMDevice *device,
                                    const char *specific_object,
                                    GVariant *options,
                                    GCancellable *cancellable,
                                    GAsyncReadyCallback callback,
                                    gpointer user_data);

Adds a new connection using the given details (if any) as a template, automatically filling in missing settings with the capabilities of the given device and specific object. The new connection is then asynchronously activated as with `nm_client_activate_connection_async()`. Cannot be used for VPN connections at this time.

Note that the callback is invoked when NetworkManager has started activating the new connection, not when it finishes. You can used the returned NMActiveConnection object (in particular, “state”) to track the activation to its completion.

This is identical to `nm_client_add_and_activate_connection_async()` but takes a further `options` parameter. Currently, the following options are supported by the daemon:

- "persist": A string describing how the connection should be stored. The default is "disk", but it can be modified to "memory" (until the daemon quits) or "volatile" (will be deleted on disconnect).

- "bind-activation": Bind the connection lifetime to something. The default is "none", meaning an explicit disconnect is needed. The value "dbus-client" means the connection will automatically be deactivated when the calling D-Bus client disappears from the system bus.

#### Parameters

client | a NMClient |
partial | an NMConnection to add; the connection may be partially filled (or even `NULL`) and will be completed by NetworkManager using the given `device` and `specific_object` before being added. | [allow-none]
device | the NMDevice |
specific_object | the object path of a connection-type-specific object this activation should use. This parameter is currently ignored for wired and mobile broadband connections, and the value of `NULL` should be used (i.e., no specific object). For Wi-Fi or WiMAX connections, pass the object path of a NMAccessPoint or NMWimaxNsp owned by `device` , which you can get using `nm_object_get_path()`, and which will be used to complete the details of the newly added connection. | [allow-none]
options | a GVariant containing a dictionary with options, or `NULL` |
cancellable | a GCancellable, or `NULL` |
callback | callback to be called when the activation has started |
user_data | caller-specific data passed to `callback` |

Since: 1.16

### nm_client_add_and_activate_connection2_finish ()

    NMActiveConnection *
    nm_client_add_and_activate_connection2_finish
                                   (NMClient *client,
                                    GAsyncResult *result,
                                    GVariant **out_result,
                                    GError **error);

Gets the result of a call to `nm_client_add_and_activate_connection2()`.

You can call `nm_active_connection_get_connection()` on the returned NMActiveConnection to find the path of the created NMConnection.

#### Parameters

client | an NMClient |
result | the result passed to the GAsyncReadyCallback |
error | location for a GError, or `NULL` |
out_result | the output result of type "a{sv}" returned by D-Bus' AddAndActivate2 call. Currently, no output is implemented yet. | [allow-none][transfer full]

#### Returns

the new NMActiveConnection on success, `NULL` on failure, in which case `error` will be set.

[transfer full]

### nm_client_deactivate_connection ()

    gboolean
    nm_client_deactivate_connection (NMClient *client,
                                     NMActiveConnection *active,
                                     GCancellable *cancellable,
                                     GError **error);

`nm_client_deactivate_connection` has been deprecated since version 1.22 and should not be used in newly-written code.

Use `nm_client_deactivate_connection_async()` or GDBusConnection.

Deactivates an active NMActiveConnection.

#### Parameters

client | a NMClient |
active | the NMActiveConnection to deactivate |
cancellable | a GCancellable, or `NULL` |
error | location for a GError, or `NULL` |

#### Returns

success or failure

### nm_client_deactivate_connection_async ()

    void
    nm_client_deactivate_connection_async (NMClient *client,
                                           NMActiveConnection *active,
                                           GCancellable *cancellable,
                                           GAsyncReadyCallback callback,
                                           gpointer user_data);

Asynchronously deactivates an active NMActiveConnection.

#### Parameters

client | a NMClient |
active | the NMActiveConnection to deactivate |
cancellable | a GCancellable, or `NULL` |
callback | callback to be called when the deactivation has completed |
user_data | caller-specific data passed to `callback` |

### nm_client_deactivate_connection_finish ()

    gboolean
    nm_client_deactivate_connection_finish
                                   (NMClient *client,
                                    GAsyncResult *result,
                                    GError **error);

Gets the result of a call to `nm_client_deactivate_connection_async()`.

#### Parameters

client | a NMClient |
result | the result passed to the GAsyncReadyCallback |
error | location for a GError, or `NULL` |

#### Returns

success or failure

### nm_client_get_connections ()

    const GPtrArray *
    nm_client_get_connections (NMClient *client);

#### Parameters

client | the `NMClient` |

#### Returns

an array containing all connections provided by the remote settings service. The returned array is owned by the NMClient object and should not be modified.

The connections are as received from D-Bus and might not validate according to `nm_connection_verify()`.

[transfer none][element-type NMRemoteConnection]

### nm_client_get_connection_by_id ()

    NMRemoteConnection *
    nm_client_get_connection_by_id (NMClient *client,
                                    const char *id);

Returns the first matching `NMRemoteConnection` matching a given `id` .

#### Parameters

client | the `NMClient` |
id | the id of the remote connection |

#### Returns

the remote connection object on success, or `NULL` if no matching object was found.

The connection is as received from D-Bus and might not validate according to `nm_connection_verify()`.

[transfer none]

### nm_client_get_connection_by_path ()

    NMRemoteConnection *
    nm_client_get_connection_by_path (NMClient *client,
                                      const char *path);

Returns the `NMRemoteConnection` representing the connection at `path` .

#### Parameters

client | the `NMClient` |
path | the D-Bus object path of the remote connection |

#### Returns

the remote connection object on success, or `NULL` if the object was not known

The connection is as received from D-Bus and might not validate according to `nm_connection_verify()`.

[transfer none]

### nm_client_get_connection_by_uuid ()

    NMRemoteConnection *
    nm_client_get_connection_by_uuid (NMClient *client,
                                      const char *uuid);

Returns the `NMRemoteConnection` identified by `uuid` .

#### Parameters

client | the `NMClient` |
uuid | the UUID of the remote connection |

#### Returns

the remote connection object on success, or `NULL` if the object was not known

The connection is as received from D-Bus and might not validate according to `nm_connection_verify()`.

[transfer none]

### nm_client_add_connection_async ()

    void
    nm_client_add_connection_async (NMClient *client,
                                    NMConnection *connection,
                                    gboolean save_to_disk,
                                    GCancellable *cancellable,
                                    GAsyncReadyCallback callback,
                                    gpointer user_data);

Requests that the remote settings service add the given settings to a new connection. If `save_to_disk` is `TRUE`, the connection is immediately written to disk; otherwise it is initially only stored in memory, but may be saved later by calling the connection's `nm_remote_connection_commit_changes()` method.

`connection` is untouched by this function and only serves as a template of the settings to add. The NMRemoteConnection object that represents what NetworkManager actually added is returned to `callback` when the addition operation is complete.

Note that the NMRemoteConnection returned in `callback` may not contain identical settings to `connection` as NetworkManager may perform automatic completion and/or normalization of connection properties.

#### Parameters

client | the `NMClient` |
connection | the connection to add. Note that this object's settings will be added, not the object itself |
save_to_disk | whether to immediately save the connection to disk |
cancellable | a GCancellable, or `NULL` |
callback | callback to be called when the add operation completes. | [scope async]
user_data | caller-specific data passed to `callback` . | [closure]

### nm_client_add_connection_finish ()

    NMRemoteConnection *
    nm_client_add_connection_finish (NMClient *client,
                                     GAsyncResult *result,
                                     GError **error);

Gets the result of a call to `nm_client_add_connection_async()`.

#### Parameters

client | an NMClient |
result | the result passed to the GAsyncReadyCallback |
error | location for a GError, or `NULL` |

#### Returns

the new NMRemoteConnection on success, `NULL` on failure, in which case `error` will be set.

[transfer full]

### nm_client_add_connection2 ()

    void
    nm_client_add_connection2 (NMClient *client,
                               GVariant *settings,
                               NMSettingsAddConnection2Flags flags,
                               GVariant *args,
                               gboolean ignore_out_result,
                               GCancellable *cancellable,
                               GAsyncReadyCallback callback,
                               gpointer user_data);

Call `AddConnection2()` D-Bus API asynchronously.

#### Parameters

client | the `NMClient` |
settings | the "a{sa{sv}}" GVariant with the content of the setting. |
flags | the `NMSettingsAddConnection2Flags` argument. |
args | the "a{sv}" GVariant with extra argument or `NULL` for no extra arguments. | [allow-none]
ignore_out_result | this function wraps `AddConnection2()`, which has an additional result "a{sv}" output parameter. By setting this to `TRUE`, you signal that you are not interested in that output parameter. This allows the function to fall back to `AddConnection()` and `AddConnectionUnsaved()`, which is interesting if you run against an older server version that does not yet provide `AddConnection2()`. By setting this to `FALSE`, the function under the hood always calls `AddConnection2()`. |
cancellable | a GCancellable, or `NULL` |
callback | callback to be called when the add operation completes. | [scope async]
user_data | caller-specific data passed to `callback` . | [closure]

Since: 1.20

### nm_client_add_connection2_finish ()

    NMRemoteConnection *
    nm_client_add_connection2_finish (NMClient *client,
                                      GAsyncResult *result,
                                      GVariant **out_result,
                                      GError **error);

#### Parameters

client | the NMClient |
result | the GAsyncResult |
out_result | the output GVariant from `AddConnection2()`. If you care about the output result, then the "ignore_out_result" parameter of `nm_client_add_connection2()` must not be set to `TRUE`. | [allow-none][transfer full][out]
error | the error argument. | [allow-none]

#### Returns

on success, a pointer to the added NMRemoteConnection.

[transfer full]

Since: 1.20

### nm_client_load_connections ()

    gboolean
    nm_client_load_connections (NMClient *client,
                                char **filenames,
                                char ***failures,
                                GCancellable *cancellable,
                                GError **error);

`nm_client_load_connections` has been deprecated since version 1.22 and should not be used in newly-written code.

Use `nm_client_load_connections_async()` or GDBusConnection.

Requests that the remote settings service load or reload the given files, adding or updating the connections described within.

The changes to the indicated files will not yet be reflected in `client` 's connections array when the function returns.

If all of the indicated files were successfully loaded, the function will return `TRUE`, and `failures` will be set to `NULL`. If NetworkManager tried to load the files, but some (or all) failed, then `failures` will be set to a `NULL`-terminated array of the filenames that failed to load.

#### Parameters

client | the `NMClient` |
filenames | `NULL`-terminated array of filenames to load. | [array zero-terminated=1]
failures | on return, a `NULL`-terminated array of filenames that failed to load. | [out][transfer full]
cancellable | a GCancellable, or `NULL` |
error | return location for GError |

#### Returns

`TRUE` on success.

Warning: before libnm 1.22, the boolean return value was inconsistent. That is made worse, because when running against certain server versions before 1.20, the server would return wrong values for success/failure. This means, if you use this function in libnm before 1.22, you are advised to ignore the boolean return value and only look at `failures` and `error` . With libnm >= 1.22, the boolean return value corresponds to whether `error` was set. Note that even in the success case, you might have individual `failures` . With 1.22, the return value is consistent with `nm_client_load_connections_finish()`.

### nm_client_load_connections_async ()

    void
    nm_client_load_connections_async (NMClient *client,
                                      char **filenames,
                                      GCancellable *cancellable,
                                      GAsyncReadyCallback callback,
                                      gpointer user_data);

Requests that the remote settings service asynchronously load or reload the given files, adding or updating the connections described within.

See `nm_client_load_connections()` for more details.

#### Parameters

client | the `NMClient` |
filenames | `NULL`-terminated array of filenames to load. | [array zero-terminated=1]
cancellable | a GCancellable, or `NULL` |
callback | callback to be called when the operation completes. | [scope async]
user_data | caller-specific data passed to `callback` . | [closure]

### nm_client_load_connections_finish ()

    gboolean
    nm_client_load_connections_finish (NMClient *client,
                                       char ***failures,
                                       GAsyncResult *result,
                                       GError **error);

Gets the result of an `nm_client_load_connections_async()` call.

See `nm_client_load_connections()` for more details.

#### Parameters

client | the `NMClient` |
failures | on return, a `NULL`-terminated array of filenames that failed to load. | [out][transfer full][array zero-terminated=1]
result | the result passed to the GAsyncReadyCallback |
error | location for a GError, or `NULL` |

#### Returns

`TRUE` on success. Note that even in the success case, you might have individual `failures` .

### nm_client_reload_connections ()

    gboolean
    nm_client_reload_connections (NMClient *client,
                                  GCancellable *cancellable,
                                  GError **error);

`nm_client_reload_connections` has been deprecated since version 1.22 and should not be used in newly-written code.

Use `nm_client_reload_connections_async()` or GDBusConnection.

Requests that the remote settings service reload all connection files from disk, adding, updating, and removing connections until the in-memory state matches the on-disk state.

#### Parameters

client | the NMClient |
cancellable | a GCancellable, or `NULL` |
error | return location for GError |

#### Returns

`TRUE` on success, `FALSE` on failure

### nm_client_reload_connections_async ()

    void
    nm_client_reload_connections_async (NMClient *client,
                                        GCancellable *cancellable,
                                        GAsyncReadyCallback callback,
                                        gpointer user_data);

Requests that the remote settings service begin reloading all connection files from disk, adding, updating, and removing connections until the in-memory state matches the on-disk state.

#### Parameters

client | the NMClient |
cancellable | a GCancellable, or `NULL` |
callback | callback to be called when the reload operation completes. | [scope async]
user_data | caller-specific data passed to `callback` . | [closure]

### nm_client_reload_connections_finish ()

    gboolean
    nm_client_reload_connections_finish (NMClient *client,
                                         GAsyncResult *result,
                                         GError **error);

Gets the result of an `nm_client_reload_connections_async()` call.

#### Parameters

client | the NMClient |
result | the result passed to the GAsyncReadyCallback |
error | return location for GError |

#### Returns

`TRUE` on success, `FALSE` on failure

### nm_client_get_dns_mode ()

    const char *
    nm_client_get_dns_mode (NMClient *client);

Gets the current DNS processing mode.

#### Parameters

client | the NMClient |

#### Returns

the DNS processing mode, or `NULL` in case the value is not available.

Since: 1.6

### nm_client_get_dns_rc_manager ()

    const char *
    nm_client_get_dns_rc_manager (NMClient *client);

Gets the current DNS resolv.conf manager.

#### Parameters

client | the NMClient |

#### Returns

the resolv.conf manager or `NULL` in case the value is not available.

Since: 1.6

### nm_client_get_dns_configuration ()

    const GPtrArray *
    nm_client_get_dns_configuration (NMClient *client);

Gets the current DNS configuration

#### Parameters

client | a NMClient |

#### Returns

a GPtrArray containing NMDnsEntry elements or `NULL` in case the value is not available. The returned array is owned by the NMClient object and should not be modified.

[transfer none][element-type NMDnsEntry]

Since: 1.6

### nm_client_get_checkpoints ()

    const GPtrArray *
    nm_client_get_checkpoints (NMClient *client);

Gets all the active checkpoints.

#### Parameters

client | a NMClient |

#### Returns

a GPtrArray containing all the NMCheckpoint. The returned array is owned by the NMClient object and should not be modified.

[transfer none][element-type NMCheckpoint]

Since: 1.12

### nm_client_checkpoint_create ()

    void
    nm_client_checkpoint_create (NMClient *client,
                                 const GPtrArray *devices,
                                 guint32 rollback_timeout,
                                 NMCheckpointCreateFlags flags,
                                 GCancellable *cancellable,
                                 GAsyncReadyCallback callback,
                                 gpointer user_data);

Creates a checkpoint of the current networking configuration for given interfaces. An empty `devices` argument means all devices. If `rollback_timeout` is not zero, a rollback is automatically performed after the given timeout.

#### Parameters

client | the `NMClient` |
devices | a list of devices for which a checkpoint should be created. | [element-type NMDevice]
rollback_timeout | the rollback timeout in seconds |
flags | creation flags |
cancellable | a GCancellable, or `NULL` |
callback | callback to be called when the add operation completes. | [scope async]
user_data | caller-specific data passed to `callback` . | [closure]

Since: 1.12

### nm_client_checkpoint_create_finish ()

    NMCheckpoint *
    nm_client_checkpoint_create_finish (NMClient *client,
                                        GAsyncResult *result,
                                        GError **error);

Gets the result of a call to `nm_client_checkpoint_create()`.

#### Parameters

client | the NMClient |
result | the result passed to the GAsyncReadyCallback |
error | location for a GError, or `NULL` |

#### Returns

the new NMCheckpoint on success, `NULL` on failure, in which case `error` will be set.

[transfer full]

Since: 1.12

### nm_client_checkpoint_destroy ()

    void
    nm_client_checkpoint_destroy (NMClient *client,
                                  const char *checkpoint_path,
                                  GCancellable *cancellable,
                                  GAsyncReadyCallback callback,
                                  gpointer user_data);

Destroys an existing checkpoint without performing a rollback.

#### Parameters

client | the `NMClient` |
checkpoint_path | the D-Bus path for the checkpoint |
cancellable | a GCancellable, or `NULL` |
callback | callback to be called when the add operation completes. | [scope async]
user_data | caller-specific data passed to `callback` . | [closure]

Since: 1.12

### nm_client_checkpoint_destroy_finish ()

    gboolean
    nm_client_checkpoint_destroy_finish (NMClient *client,
                                         GAsyncResult *result,
                                         GError **error);

Gets the result of a call to `nm_client_checkpoint_destroy()`.

#### Parameters

client | an NMClient |
result | the result passed to the GAsyncReadyCallback |
error | location for a GError, or `NULL` |

#### Returns

`TRUE` on success or `FALSE` on failure, in which case `error` will be set.

Since: 1.12

### nm_client_checkpoint_rollback ()

    void
    nm_client_checkpoint_rollback (NMClient *client,
                                   const char *checkpoint_path,
                                   GCancellable *cancellable,
                                   GAsyncReadyCallback callback,
                                   gpointer user_data);

Performs the rollback of a checkpoint before the timeout is reached.

#### Parameters

client | the `NMClient` |
checkpoint_path | the D-Bus path to the checkpoint |
cancellable | a GCancellable, or `NULL` |
callback | callback to be called when the add operation completes. | [scope async]
user_data | caller-specific data passed to `callback` . | [closure]

Since: 1.12

### nm_client_checkpoint_rollback_finish ()

    GHashTable *
    nm_client_checkpoint_rollback_finish (NMClient *client,
                                          GAsyncResult *result,
                                          GError **error);

Gets the result of a call to `nm_client_checkpoint_rollback()`.

#### Parameters

client | an NMClient |
result | the result passed to the GAsyncReadyCallback |
error | location for a GError, or `NULL` |

#### Returns

an hash table of devices and results. Devices are represented by their original D-Bus path; each result is a NMRollbackResult.

[transfer full][element-type utf8 guint32]

Since: 1.12

### nm_client_checkpoint_adjust_rollback_timeout ()

    void
    nm_client_checkpoint_adjust_rollback_timeout
                                   (NMClient *client,
                                    const char *checkpoint_path,
                                    guint32 add_timeout,
                                    GCancellable *cancellable,
                                    GAsyncReadyCallback callback,
                                    gpointer user_data);

Resets the timeout for the checkpoint with path `checkpoint_path` to `timeout_add` .

#### Parameters

client | the `NMClient` |
checkpoint_path | a D-Bus path to a checkpoint |
add_timeout | the timeout in seconds counting from now. Set to zero, to disable the timeout. |
cancellable | a GCancellable, or `NULL` |
callback | callback to be called when the add operation completes. | [scope async]
user_data | caller-specific data passed to `callback` . | [closure]

Since: 1.12

### nm_client_checkpoint_adjust_rollback_timeout_finish ()

    gboolean
    nm_client_checkpoint_adjust_rollback_timeout_finish
                                   (NMClient *client,
                                    GAsyncResult *result,
                                    GError **error);

Gets the result of a call to `nm_client_checkpoint_adjust_rollback_timeout()`.

#### Parameters

client | an NMClient |
result | the result passed to the GAsyncReadyCallback |
error | location for a GError, or `NULL` |

#### Returns

`TRUE` on success or `FALSE` on failure.

Since: 1.12

### nm_client_reload ()

    void
    nm_client_reload (NMClient *client,
                      NMManagerReloadFlags flags,
                      GCancellable *cancellable,
                      GAsyncReadyCallback callback,
                      gpointer user_data);

Reload NetworkManager's configuration and perform certain updates, like flushing caches or rewriting external state to disk. This is similar to sending SIGHUP to NetworkManager but it allows for more fine-grained control over what to reload (see `flags` ). It also allows non-root access via PolicyKit and contrary to signals it is synchronous.

#### Parameters

client | the `NMClient` |
flags | flags indicating what to reload. |
cancellable | a GCancellable, or `NULL` |
callback | callback to be called when the add operation completes. | [scope async]
user_data | caller-specific data passed to `callback` . | [closure]

Since: 1.22

### nm_client_reload_finish ()

    gboolean
    nm_client_reload_finish (NMClient *client,
                             GAsyncResult *result,
                             GError **error);

Gets the result of a call to `nm_client_reload()`.

#### Parameters

client | an NMClient |
result | the result passed to the GAsyncReadyCallback |
error | location for a GError, or `NULL` |

#### Returns

`TRUE` on success or `FALSE` on failure.

Since: 1.22

### nm_client_dbus_call ()

    void
    nm_client_dbus_call (NMClient *client,
                         const char *object_path,
                         const char *interface_name,
                         const char *method_name,
                         GVariant *parameters,
                         const GVariantType *reply_type,
                         int timeout_msec,
                         GCancellable *cancellable,
                         GAsyncReadyCallback callback,
                         gpointer user_data);

Call `g_dbus_connection_call()` on the current name owner with the specified arguments. Most importantly, this invokes `g_dbus_connection_call()` with the client's GMainContext, so that the response is always in order with other events D-Bus events. Of course, the call uses GTask and will invoke the callback on the current `g_main_context_get_thread_default()`.

This API is merely a convenient wrapper for `g_dbus_connection_call()`. You can also use `g_dbus_connection_call()` directly, with the same effect.

#### Parameters

client | the NMClient |
object_path | path of remote object |
interface_name | D-Bus interface to invoke method on |
method_name | the name of the method to invoke |
parameters | a GVariant tuple with parameters for the method or `NULL` if not passing parameters. | [nullable]
reply_type | the expected type of the reply (which will be a tuple), or `NULL`. | [nullable]
timeout_msec | the timeout in milliseconds, -1 to use the default timeout or `G_MAXINT` for no timeout |
cancellable | a GCancellable or `NULL`. | [nullable]
callback | a GAsyncReadyCallback to call when the request is satisfied or `NULL` if you don't care about the result of the method invocation. | [nullable]
user_data | the data to pass to `callback` |

Since: 1.24

### nm_client_dbus_call_finish ()

    GVariant *
    nm_client_dbus_call_finish (NMClient *client,
                                GAsyncResult *result,
                                GError **error);

Gets the result of a call to `nm_client_dbus_call()`.

#### Parameters

client | the NMClient instance |
result | the result passed to the GAsyncReadyCallback |
error | location for a GError, or `NULL` |

#### Returns

the result GVariant or `NULL` on error.

[transfer full]

Since: 1.24

### nm_client_dbus_set_property ()

    void
    nm_client_dbus_set_property (NMClient *client,
                                 const char *object_path,
                                 const char *interface_name,
                                 const char *property_name,
                                 GVariant *value,
                                 int timeout_msec,
                                 GCancellable *cancellable,
                                 GAsyncReadyCallback callback,
                                 gpointer user_data);

Like `nm_client_dbus_call()` but calls "Set" on the standard "org.freedesktop.DBus.Properties" D-Bus interface.

#### Parameters

client | the NMClient |
object_path | path of remote object |
interface_name | D-Bus interface for the property to set. |
property_name | the name of the property to set |
value | a GVariant with the value to set. |
timeout_msec | the timeout in milliseconds, -1 to use the default timeout or `G_MAXINT` for no timeout |
cancellable | a GCancellable or `NULL`. | [nullable]
callback | a GAsyncReadyCallback to call when the request is satisfied or `NULL` if you don't care about the result of the method invocation. | [nullable]
user_data | the data to pass to `callback` |

Since: 1.24

### nm_client_dbus_set_property_finish ()

    gboolean
    nm_client_dbus_set_property_finish (NMClient *client,
                                        GAsyncResult *result,
                                        GError **error);

Gets the result of a call to `nm_client_dbus_set_property()`.

#### Parameters

client | the NMClient instance |
result | the result passed to the GAsyncReadyCallback |
error | location for a GError, or `NULL` |

#### Returns

`TRUE` on success or `FALSE` on failure.

Since: 1.24

### nm_utils_print ()

    void
    nm_utils_print (int output_mode,
                    const char *msg);

The only purpose of this function is to give access to `g_print()` or `g_printerr()` from pygobject. libnm can do debug logging by setting LIBNM_CLIENT_DEBUG and uses thereby `g_printerr()` or `g_print()`. A plain "`print()`" function in python is not in sync with these functions (it implements additional buffering). By using `nm_utils_print()`, the same logging mechanisms can be used.

#### Parameters

output_mode | if 1 it uses `g_print()`. If 2, it uses `g_printerr()`. If 0, it uses either `g_print()` or `g_printerr()`, depending on LIBNM_CLIENT_DEBUG (and the "stdout" flag). |
msg | the message to print. The function does not append a trailing newline. |

Since: 1.30

## Types and Values

### enum NMClientInstanceFlags

#### Members

NM_CLIENT_INSTANCE_FLAGS_NONE | special value to indicate no flags. |
NM_CLIENT_INSTANCE_FLAGS_NO_AUTO_FETCH_PERMISSIONS | by default, NMClient will fetch the permissions via "GetPermissions" and refetch them when "CheckPermissions" signal gets received. By setting this flag, this behavior can be disabled. You can toggle this flag to enable and disable automatic fetching of the permissions. Watch also `nm_client_get_permissions_state()` to know whether the permissions are up to date. |

Since: 1.24

### NM_CLIENT_VERSION

    #define NM_CLIENT_VERSION         "version"

### NM_CLIENT_STATE

    #define NM_CLIENT_STATE           "state"

### NM_CLIENT_STARTUP

    #define NM_CLIENT_STARTUP         "startup"

### NM_CLIENT_NM_RUNNING

    #define NM_CLIENT_NM_RUNNING      "nm-running"

### NM_CLIENT_DBUS_CONNECTION

    #define NM_CLIENT_DBUS_CONNECTION "dbus-connection"

### NM_CLIENT_DBUS_NAME_OWNER

    #define NM_CLIENT_DBUS_NAME_OWNER "dbus-name-owner"

### NM_CLIENT_INSTANCE_FLAGS

    #define NM_CLIENT_INSTANCE_FLAGS  "instance-flags"

### NM_CLIENT_NETWORKING_ENABLED

    #define NM_CLIENT_NETWORKING_ENABLED "networking-enabled"

`NM_CLIENT_NETWORKING_ENABLED` is deprecated and should not be used in newly-written code.

### NM_CLIENT_WIRELESS_ENABLED

    #define NM_CLIENT_WIRELESS_ENABLED "wireless-enabled"

`NM_CLIENT_WIRELESS_ENABLED` is deprecated and should not be used in newly-written code.

### NM_CLIENT_WWAN_ENABLED

    #define NM_CLIENT_WWAN_ENABLED "wwan-enabled"

`NM_CLIENT_WWAN_ENABLED` is deprecated and should not be used in newly-written code.

### NM_CLIENT_WIMAX_ENABLED

    #define NM_CLIENT_WIMAX_ENABLED "wimax-enabled"

`NM_CLIENT_WIMAX_ENABLED` is deprecated and should not be used in newly-written code.

### NM_CLIENT_WIRELESS_HARDWARE_ENABLED

    #define NM_CLIENT_WIRELESS_HARDWARE_ENABLED "wireless-hardware-enabled"

### NM_CLIENT_WWAN_HARDWARE_ENABLED

    #define NM_CLIENT_WWAN_HARDWARE_ENABLED     "wwan-hardware-enabled"

### NM_CLIENT_WIMAX_HARDWARE_ENABLED

    #define NM_CLIENT_WIMAX_HARDWARE_ENABLED    "wimax-hardware-enabled"

### NM_CLIENT_ACTIVE_CONNECTIONS

    #define NM_CLIENT_ACTIVE_CONNECTIONS           "active-connections"

### NM_CLIENT_CONNECTIVITY

    #define NM_CLIENT_CONNECTIVITY                 "connectivity"

### NM_CLIENT_CONNECTIVITY_CHECK_URI

    #define NM_CLIENT_CONNECTIVITY_CHECK_URI       "connectivity-check-uri"

### NM_CLIENT_CONNECTIVITY_CHECK_AVAILABLE

    #define NM_CLIENT_CONNECTIVITY_CHECK_AVAILABLE "connectivity-check-available"

### NM_CLIENT_CONNECTIVITY_CHECK_ENABLED

    #define NM_CLIENT_CONNECTIVITY_CHECK_ENABLED "connectivity-check-enabled"

`NM_CLIENT_CONNECTIVITY_CHECK_ENABLED` is deprecated and should not be used in newly-written code.

### NM_CLIENT_PRIMARY_CONNECTION

    #define NM_CLIENT_PRIMARY_CONNECTION    "primary-connection"

### NM_CLIENT_ACTIVATING_CONNECTION

    #define NM_CLIENT_ACTIVATING_CONNECTION "activating-connection"

### NM_CLIENT_DEVICES

    #define NM_CLIENT_DEVICES               "devices"

### NM_CLIENT_ALL_DEVICES

    #define NM_CLIENT_ALL_DEVICES           "all-devices"

### NM_CLIENT_CONNECTIONS

    #define NM_CLIENT_CONNECTIONS           "connections"

### NM_CLIENT_HOSTNAME

    #define NM_CLIENT_HOSTNAME              "hostname"

### NM_CLIENT_CAN_MODIFY

    #define NM_CLIENT_CAN_MODIFY            "can-modify"

### NM_CLIENT_METERED

    #define NM_CLIENT_METERED               "metered"

### NM_CLIENT_DNS_MODE

    #define NM_CLIENT_DNS_MODE              "dns-mode"

### NM_CLIENT_DNS_RC_MANAGER

    #define NM_CLIENT_DNS_RC_MANAGER        "dns-rc-manager"

### NM_CLIENT_DNS_CONFIGURATION

    #define NM_CLIENT_DNS_CONFIGURATION     "dns-configuration"

### NM_CLIENT_CHECKPOINTS

    #define NM_CLIENT_CHECKPOINTS           "checkpoints"

### NM_CLIENT_CAPABILITIES

    #define NM_CLIENT_CAPABILITIES          "capabilities"

### NM_CLIENT_PERMISSIONS_STATE

    #define NM_CLIENT_PERMISSIONS_STATE     "permissions-state"

### NM_CLIENT_DEVICE_ADDED

    #define NM_CLIENT_DEVICE_ADDED              "device-added"

### NM_CLIENT_DEVICE_REMOVED

    #define NM_CLIENT_DEVICE_REMOVED            "device-removed"

### NM_CLIENT_ANY_DEVICE_ADDED

    #define NM_CLIENT_ANY_DEVICE_ADDED          "any-device-added"

### NM_CLIENT_ANY_DEVICE_REMOVED

    #define NM_CLIENT_ANY_DEVICE_REMOVED        "any-device-removed"

### NM_CLIENT_PERMISSION_CHANGED

    #define NM_CLIENT_PERMISSION_CHANGED        "permission-changed"

### NM_CLIENT_CONNECTION_ADDED

    #define NM_CLIENT_CONNECTION_ADDED          "connection-added"

### NM_CLIENT_CONNECTION_REMOVED

    #define NM_CLIENT_CONNECTION_REMOVED        "connection-removed"

### NM_CLIENT_ACTIVE_CONNECTION_ADDED

    #define NM_CLIENT_ACTIVE_CONNECTION_ADDED   "active-connection-added"

### NM_CLIENT_ACTIVE_CONNECTION_REMOVED

    #define NM_CLIENT_ACTIVE_CONNECTION_REMOVED "active-connection-removed"

### enum NMClientError

Describes errors that may result from operations involving a NMClient.

D-Bus operations may also return errors from other domains, including NMManagerError, NMSettingsError, NMAgentManagerError, and NMConnectionError.

#### Members

NM_CLIENT_ERROR_FAILED | unknown or unclassified error |
NM_CLIENT_ERROR_MANAGER_NOT_RUNNING | an operation that requires NetworkManager failed because NetworkManager is not running |
NM_CLIENT_ERROR_OBJECT_CREATION_FAILED | NetworkManager claimed that an operation succeeded, but the object that was allegedly created (eg, NMRemoteConnection, NMActiveConnection) was apparently destroyed before NMClient could create a representation of it. |

### NM_CLIENT_ERROR

    #define NM_CLIENT_ERROR nm_client_error_quark()