## 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 ()
const guint32 * | nm_client_get_version_info ()
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 ()
NMRadioFlags | nm_client_get_radio_flags ()
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 ()
gboolean | nm_utils_file_is_certificate ()
gboolean | nm_utils_file_is_private_key ()
gboolean | nm_utils_file_is_pkcs12 ()
void | nm_client_wait_shutdown ()
gboolean | nm_client_wait_shutdown_finish ()

## Properties

NMActiveConnection * | activating-connection | Read
GPtrArray * | active-connections | Read
GPtrArray * | all-devices | Read
gboolean | can-modify | Read
GArray * | capabilities | Read
GPtrArray * | checkpoints | Read
GPtrArray * | connections | Read
NMConnectivityState | connectivity | Read
gboolean | connectivity-check-available | Read
gboolean | connectivity-check-enabled | Read / Write
char * | connectivity-check-uri | Read
GDBusConnection * | dbus-connection | Read / Write / Construct Only
char * | dbus-name-owner | Read
GPtrArray * | devices | Read
GPtrArray * | dns-configuration | Read
char * | dns-mode | Read
char * | dns-rc-manager | Read
char * | hostname | Read
guint | instance-flags | Read / Write / Construct
guint | metered | Read
gboolean | networking-enabled | Read / Write
gboolean | nm-running | Read
NMTernary | permissions-state | Read
NMActiveConnection * | primary-connection | Read
guint | radio-flags | Read
gboolean | startup | Read
NMState | state | Read
char * | version | Read
GArray * | version-info | Read
gboolean | wimax-enabled | Read / Write
gboolean | wimax-hardware-enabled | Read
gboolean | wireless-enabled | Read / Write
gboolean | wireless-hardware-enabled | Read
gboolean | wwan-enabled | Read / Write
gboolean | wwan-hardware-enabled | Read

## Signals

void | active-connection-added | Run First
void | active-connection-removed | Run First
void | any-device-added | Run First
void | any-device-removed | Run First
void | connection-added | Run First
void | connection-removed | Run First
void | device-added | Run First
void | device-removed | Run First
void | permission-changed | Run First

## Types and Values

enum | NMClientInstanceFlags
#define | NM_CLIENT_VERSION
#define | NM_CLIENT_VERSION_INFO
#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_RADIO_FLAGS
#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
| NMClient
| NMDnsEntry

## Object Hierarchy

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

## Implemented Interfaces

NMClient implements GInitable and GAsyncInitable.

## 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 synchronously.

Note that this will block until a NMClient instance is fully initialized. This does nothing beside calling `g_initable_new()`. You are free to call `g_initable_new()` or `g_object_new()`/`g_initable_init()` directly for more control, to set GObject properties or get access to the NMClient instance while it is still initializing.

Using the synchronous initialization creates an NMClient instance that uses an internal GMainContext. This context is invisible to the user. This introduces an additional overhead that is payed not only during object initialization, but for the entire lifetime of this object. Also, due to this internal GMainContext, the events are no longer in sync with other messages from GDBusConnection (but all events of the NMClient will themselves still be ordered). For a serious program, you should therefore avoid these problems by using `g_async_initable_init_async()` or `nm_client_new_async()` instead. The sync initialization is still useful for simple scripts or interactive testing for example via pygobject.

Creating an NMClient instance can only fail for two reasons. First, if you didn't provide a `NM_CLIENT_DBUS_CONNECTION` and the call to `g_bus_get()` fails. You can avoid that by using `g_initable_new()` directly and set a D-Bus connection. Second, if you cancelled the creation. If you do that, then note that after the failure there might still be idle actions pending which keep `nm_client_get_main_context()` alive. That means, in that case you must continue iterating the context to avoid leaks. See `nm_client_get_context_busy_watcher()`.

Creating an NMClient instance when NetworkManager is not running does not cause a failure.

#### 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 asynchronously. `callback` will be called when it is done. Use `nm_client_new_finish()` to get the result.

This does nothing beside calling `g_async_initable_new_async()`. You are free to call `g_async_initable_new_async()` or `g_object_new()`/`g_async_initable_init_async()` directly for more control, to set GObject properties or get access to the NMClient instance while it is still initializing.

Creating an NMClient instance can only fail for two reasons. First, if you didn't provide a `NM_CLIENT_DBUS_CONNECTION` and the call to `g_bus_get()` fails. You can avoid that by using `g_async_initable_new_async()` directly and set a D-Bus connection. Second, if you cancelled the creation. If you do that, then note that after the failure there might still be idle actions pending which keep `nm_client_get_main_context()` alive. That means, in that case you must continue iterating the context to avoid leaks. See `nm_client_get_context_busy_watcher()`.

Creating an NMClient instance when NetworkManager is not running does not cause a failure.

#### 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 cancelled internally.

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, all outstanding operations will be cancelled right away. That means, the user needs to iterate the GMainContext a bit longer, but it is guaranteed that the cleanup happens soon after.

The way of using the context-busy-watch, is by registering a weak pointer to see when it gets destroyed. That means, user code should not take additional references on this object to not keep it alive longer.

If you plan to exit the program after releasing the NMClient instance you may not need to worry about these "leaks". Also, if you anyway plan to continue iterating the GMainContext afterwards, then you don't need to care when exactly NMClient is gone completely.

[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_version_info ()

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

If available, the first element in the array is NM_VERSION which encodes the daemon version as "(major << 16 | minor << 8 | micro)". The following elements are a bitfield of `NMVersionInfoCapability` that indicate that the daemon supports a certain capability.

#### Parameters

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

#### Returns

the list of capabilities reported by the server or `NULL` if the capabilities are unknown.

[transfer none][array length=length]

Since: 1.42

### 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][optional]

#### 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` |

#### 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_get_radio_flags ()

    NMRadioFlags
    nm_client_get_radio_flags (NMClient *client);

Get radio flags.

#### Parameters

client | a NMClient |

#### Returns

the NMRadioFlags.

Since: 1.38

### 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. | [out][optional][nullable]
domains | return location for log domains string. The string is a list of domains separated by ",". | [out][optional][nullable]
error | return location for a GError, or `NULL` |

#### 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). | [nullable]
domains | logging domains to set. The string should be a list of log domains separated by ",". (`NULL` or an empty string for no change). | [nullable]
error | return location for a GError, or `NULL` |

#### 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. | [nullable]
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. | [nullable]
cancellable | a GCancellable, or `NULL` |
callback | callback to be called when the operation completes. | [scope async][closure user_data]
user_data | caller-specific data passed to `callback` |

### 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. | [nullable]
device | the NMDevice. | [nullable]

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.

[nullable]

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. | [nullable]
device | the NMDevice. | [nullable]

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.

[nullable]

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. | [nullable]
device | the NMDevice. | [nullable]

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.

[nullable]

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. | [out][optional][nullable][transfer full]

#### Returns

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

[transfer full]

Since: 1.16

### 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][closure user_data]
user_data | caller-specific data passed to `callback` |

### 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. | [nullable]

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][closure user_data]
user_data | caller-specific data passed to `callback` |

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`. | [out][optional][nullable][transfer full]
error | the error argument. |

#### 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][closure user_data]
user_data | caller-specific data passed to `callback` |

### 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][closure user_data]
user_data | caller-specific data passed to `callback` |

### 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][closure user_data]
user_data | caller-specific data passed to `callback` |

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][closure user_data]
user_data | caller-specific data passed to `callback` |

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][closure user_data]
user_data | caller-specific data passed to `callback` |

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][closure user_data]
user_data | caller-specific data passed to `callback` |

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][closure user_data]
user_data | caller-specific data passed to `callback` |

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.

LIBNM_CLIENT_DEBUG is a list of keywords separated by commas. The keyword "trace" enables printing messages of the lowest up to the highest severity. Likewise, the severities "debug", "warn" ("warning") and "error" are honored in similar way. Setting the flags "ERROR" or "WARN" ("WARNING") implies that respective levels are enabled, but also are ERROR messages printed with `g_critical()` and WARN messages with `g_warning()`. Together with G_DEBUG="fatal-warnings" or G_DEBUG="fatal-critical" this can be used to abort the program on errors. Note that all <error> messages imply an unexpected data on the D-Bus API (due to a bug). <warn> also implies unexepected data, but that can happen when using different versions of libnm and daemon. For testing, it is good to turn these into assertions.

By default, messages are printed to stderr, unless LIBNM_CLIENT_DEBUG contains "stdout" flag. Also, libnm honors LIBNM_CLIENT_DEBUG_FILE environment. If this is set to a filename pattern (accepting "%`p`" for the process ID), then the debug log is written to that file instead of stderr/stdout. With `output_mode` zero, the same location will be written.

LIBNM_CLIENT_DEBUG_FILE is supported since 1.44. "ERROR", "WARN" and "WARNING" are supported since 1.46.

#### Parameters

output_mode | if 1 it uses `g_print()`. If 2, it uses `g_printerr()`. If 0, it uses the same output as internal libnm debug logging does. That is, depending on LIBNM_CLIENT_DEBUG's "stdout" flag it uses `g_print()` or `g_printerr()` and if LIBNM_CLIENT_DEBUG_FILE is set, it writes the output to file instead |
msg | the message to print. The function does not append a trailing newline. |

Since: 1.30

### nm_utils_file_is_certificate ()

    gboolean
    nm_utils_file_is_certificate (const char *filename);

Tests if `filename` has a valid extension for an X.509 certificate file (".cer", ".crt", ".der", or ".pem"), and contains a certificate in a format recognized by NetworkManager.

#### Parameters

filename | name of the file to test |

#### Returns

`TRUE` if the file is a certificate, `FALSE` if it is not

### nm_utils_file_is_private_key ()

    gboolean
    nm_utils_file_is_private_key (const char *filename,
                                  gboolean *out_encrypted);

Tests if `filename` has a valid extension for an X.509 private key file (".der", ".key", ".pem", or ".p12"), and contains a private key in a format recognized by NetworkManager.

#### Parameters

filename | name of the file to test |
out_encrypted | on return, whether the file is encrypted. | [out]

#### Returns

`TRUE` if the file is a private key, `FALSE` if it is not

### nm_utils_file_is_pkcs12 ()

    gboolean
    nm_utils_file_is_pkcs12 (const char *filename);

Tests if `filename` is a PKCS#12 file.

#### Parameters

filename | name of the file to test |

#### Returns

`TRUE` if the file is PKCS#12, `FALSE` if it is not

### nm_client_wait_shutdown ()

    void
    nm_client_wait_shutdown (NMClient *client,
                             gboolean integrate_maincontext,
                             GCancellable *cancellable,
                             GAsyncReadyCallback callback,
                             gpointer user_data);

The way to stop NMClient is by unrefing it. That will cancel all internally pending async operations. However, as async operations in NMClient use GTask, hence they cannot complete right away. Instead, their (internal) result callback still needs to be dispatched by iterating the client's main context.

You thus cannot stop iterating the client's main context until everything is wrapped up. `nm_client_get_context_busy_watcher()` helps to watch how long that will be.

This function automates that waiting. Like all glib async operations this honors the current `g_main_context_get_thread_default()`.

In any case, to complete the shutdown, `nm_client_get_main_context()` must be iterated. If the current `g_main_context_get_thread_default()` is the same as `nm_client_get_main_context()`, then `integrate_maincontext` is ignored. In that case, the caller is required to iterate the context for shutdown to complete. Otherwise, if `g_main_context_get_thread_default()` differs from `nm_client_get_main_context()` and `integrate_maincontext` is `FALSE`, the caller must make sure that both contexts are iterated until completion. Otherwise, if `integrate_maincontext` is `TRUE`, then `nm_client_get_main_context()` will be integrated in `g_main_context_get_thread_default()`. This means, the caller gives `nm_client_get_main_context()` up until the waiting completes, the function will acquire the context and hook it into `g_main_context_get_thread_default()`. It is a bug to request `integrate_maincontext` while having `nm_client_get_main_context()` acquired or iterated otherwise because a context can only be acquired once at a time.

Shutdown can only complete after all references to `client` were released.

It is possible to call this function multiple times for the same client. But note that with `integrate_maincontext` the client's context is acquired, which can only be done once at a time.

It is permissible to start waiting before the objects is fully initialized.

The function really allows two separate things. To get a notification (callback) when shutdown is complete, and to integrate the client's context in another context. The latter case is useful if the client has a separate context and you hand it over to another GMainContext to wrap up.

The main use is to have a NMClient and a separate GMainContext on a worker thread. When being done, you can hand over the cleanup of the context to `g_main_context_default()`, assuming that the main thread iterates the default context. In that case, you don't need to care about passing a callback to know when shutdown completed.

#### Parameters

client | the NMClient to shutdown. |
integrate_maincontext | whether to hook the client's maincontext in the current thread default. Otherwise, you must ensure that the client's maincontext gets iterated so that it can complete. By integrating the maincontext in the current thread default, you may instead only iterate the latter. |
cancellable | the GCancellable to abort the shutdown. |
callback | a GAsyncReadyCallback to call when the request is satisfied or `NULL` if you don't care about the result of the method invocation. |
user_data | the data to pass to `callback` |

Since: 1.42

### nm_client_wait_shutdown_finish ()

    gboolean
    nm_client_wait_shutdown_finish (GAsyncResult *result,
                                    GError **error);

#### Parameters

result | a GAsyncResult obtained from the GAsyncReadyCallback passed to `nm_client_wait_shutdown()` |
error | return location for error or `NULL` |

#### Returns

`TRUE` if waiting is complete successfully. In that case, all resources of the nmclient are wrapped up and released. This can only fail by user cancellation.

Since: 1.42

## 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.

NM_CLIENT_INSTANCE_FLAGS_INITIALIZED_GOOD | as NMClient is an GInitable and GAsyncInitable, `nm_client_get_instance_flags()` returns this flag once initialization completed with success. This flag cannot be set as NM_CLIENT_INSTANCE_FLAGS property. Since: 1.42. |
NM_CLIENT_INSTANCE_FLAGS_INITIALIZED_BAD | like `NM_CLIENT_INSTANCE_FLAGS_INITIALIZED_GOOD` indicates that the instance completed initialization with failure. In that case the instance is unusable. Since: 1.42. |

Since: 1.24

### NM_CLIENT_VERSION

    #define NM_CLIENT_VERSION         "version"

### NM_CLIENT_VERSION_INFO

    #define NM_CLIENT_VERSION_INFO    "version-info"

### 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_RADIO_FLAGS

    #define NM_CLIENT_RADIO_FLAGS "radio-flags"

### 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()

### NMClient

    typedef struct _NMClient NMClient;

NMClient contains a cache of the objects of NetworkManager's D-Bus API. It uses GMainContext and GDBusConnection for that and registers to D-Bus signals. That means, when iterating the associated GMainContext, D-Bus signals gets processed and the NMClient instance updates and emits GObject signals.

### NMDnsEntry

    typedef struct _NMDnsEntry NMDnsEntry;

Since: 1.6

## Property Details

### The `“activating-connection”` property

      “activating-connection”    NMActiveConnection *

The NMActiveConnection of the activating connection that is likely to become the new “primary-connection”.

Owner: NMClient

Flags: Read

### The `“active-connections”` property

      “active-connections”       GPtrArray *

The active connections.

[type GPtrArray(NMActiveConnection)]

Owner: NMClient

Flags: Read

### The `“all-devices”` property

      “all-devices”              GPtrArray *

List of both real devices and device placeholders.

[type GPtrArray(NMDevice)]

Owner: NMClient

Flags: Read

Since: 1.2

### The `“can-modify”` property

      “can-modify”               gboolean

If `TRUE`, adding and modifying connections is supported.

Owner: NMClient

Flags: Read

Default value: FALSE

### The `“capabilities”` property

      “capabilities”             GArray *

The list of capabilities numbers as guint32 or `NULL` if there are no capabilities. The numeric value correspond to `NMCapability` enum.

[type GArray(guint32)]

Owner: NMClient

Flags: Read

Since: 1.24

### The `“checkpoints”` property

      “checkpoints”              GPtrArray *

The list of active checkpoints.

[type GPtrArray(NMCheckpoint)]

Owner: NMClient

Flags: Read

Since: 1.12

### The `“connections”` property

      “connections”              GPtrArray *

The list of configured connections that are available to the user. (Note that this differs from the underlying D-Bus property, which may also contain the object paths of connections that the user does not have permission to read the details of.)

[type GPtrArray(NMRemoteConnection)]

Owner: NMClient

Flags: Read

### The `“connectivity”` property

      “connectivity”             NMConnectivityState

The network connectivity state.

Owner: NMClient

Flags: Read

Default value: NM_CONNECTIVITY_UNKNOWN

### The `“connectivity-check-available”` property

      “connectivity-check-available” gboolean

Owner: NMClient

Flags: Read

Default value: FALSE

### The `“connectivity-check-enabled”` property

      “connectivity-check-enabled” gboolean

Owner: NMClient

Flags: Read / Write

Default value: FALSE

### The `“connectivity-check-uri”` property

      “connectivity-check-uri”   char *

The used URI for connectivity checking.

Owner: NMClient

Flags: Read

Default value: NULL

Since: 1.22

### The `“dbus-connection”` property

      “dbus-connection”          GDBusConnection *

The GDBusConnection to use.

If this is not set during object construction, the D-Bus connection will automatically be chosen during async/sync initalization via `g_bus_get()`.

Owner: NMClient

Flags: Read / Write / Construct Only

Since: 1.22

### The `“dbus-name-owner”` property

      “dbus-name-owner”          char *

The name owner of the NetworkManager D-Bus service.

Owner: NMClient

Flags: Read

Default value: NULL

Since: 1.22

### The `“devices”` property

      “devices”                  GPtrArray *

List of real network devices. Does not include placeholder devices.

[type GPtrArray(NMDevice)]

Owner: NMClient

Flags: Read

### The `“dns-configuration”` property

      “dns-configuration”        GPtrArray *

The current DNS configuration, represented as an array of NMDnsEntry objects.

[type GPtrArray(NMDnsEntry)]

Owner: NMClient

Flags: Read

Since: 1.6

### The `“dns-mode”` property

      “dns-mode”                 char *

The current DNS processing mode.

Owner: NMClient

Flags: Read

Default value: NULL

Since: 1.6

### The `“dns-rc-manager”` property

      “dns-rc-manager”           char *

The current resolv.conf management mode.

Owner: NMClient

Flags: Read

Default value: NULL

Since: 1.6

### The `“hostname”` property

      “hostname”                 char *

The machine hostname stored in persistent configuration. This can be modified by calling `nm_client_save_hostname()`.

Owner: NMClient

Flags: Read

Default value: NULL

### The `“instance-flags”` property

      “instance-flags”           guint

NMClientInstanceFlags for the instance. These affect behavior of NMClient. This is a construct property and you may only set most flags only during construction.

The flag `NM_CLIENT_INSTANCE_FLAGS_NO_AUTO_FETCH_PERMISSIONS` can be toggled any time, even after constructing the instance. Note that you may want to watch NMClient:permissions-state property to know whether permissions are ready. Note that permissions are only fetched when NMClient has a D-Bus name owner.

The flags `NM_CLIENT_INSTANCE_FLAGS_INITIALIZED_GOOD` and `NM_CLIENT_INSTANCE_FLAGS_INITIALIZED_BAD` cannot be set, however they will be returned by the getter after initialization completes.

Owner: NMClient

Flags: Read / Write / Construct

Default value: 0

Since: 1.24

### The `“metered”` property

      “metered”                  guint

Whether the connectivity is metered.

Owner: NMClient

Flags: Read

Default value: 0

Since: 1.2

### The `“networking-enabled”` property

      “networking-enabled”       gboolean

Whether networking is enabled.

The property setter is a synchronous D-Bus call. This is deprecated since 1.22.

Owner: NMClient

Flags: Read / Write

Default value: FALSE

### The `“nm-running”` property

      “nm-running”               gboolean

Whether the daemon is running.

Owner: NMClient

Flags: Read

Default value: FALSE

### The `“permissions-state”` property

      “permissions-state”        NMTernary

The state of the cached permissions. The value `NM_TERNARY_DEFAULT` means that no permissions are yet received (or not yet requested). `NM_TERNARY_TRUE` means that permissions are received, cached and up to date. `NM_TERNARY_FALSE` means that permissions were received and are cached, but in the meantime a "CheckPermissions" signal was received that invalidated the cached permissions. Note that NMClient will always emit a notify::permissions-state signal when a "CheckPermissions" signal got received or after new permissions got received (that is regardless whether the value of the permission state actually changed). With this you can watch the permissions-state property to know whether the permissions are ready. Note that while NMClient has no D-Bus name owner, no permissions are fetched (and this property won't change).

Owner: NMClient

Flags: Read

Default value: NM_TERNARY_DEFAULT

Since: 1.24

### The `“primary-connection”` property

      “primary-connection”       NMActiveConnection *

The NMActiveConnection of the device with the default route; see `nm_client_get_primary_connection()` for more details.

Owner: NMClient

Flags: Read

### The `“radio-flags”` property

      “radio-flags”              guint

Flags for radio interfaces. See NMRadioFlags.

Owner: NMClient

Flags: Read

Default value: 0

Since: 1.38

### The `“startup”` property

      “startup”                  gboolean

Whether the daemon is still starting up.

Owner: NMClient

Flags: Read

Default value: FALSE

### The `“state”` property

      “state”                    NMState

The current daemon state.

Owner: NMClient

Flags: Read

Default value: NM_STATE_UNKNOWN

### The `“version”` property

      “version”                  char *

The NetworkManager version.

Owner: NMClient

Flags: Read

Default value: NULL

### The `“version-info”` property

      “version-info”             GArray *

Expose version info and capabilities of NetworkManager. If non-empty, the first element is NM_VERSION, which encodes the version of the daemon as "(major << 16 | minor << 8 | micro)". The following elements is a bitfields of `NMVersionInfoCapability`. If a bit is set, then the running NetworkManager has the respective capability.

[type GArray(guint32)]

Owner: NMClient

Flags: Read

Since: 1.42

### The `“wimax-enabled”` property

      “wimax-enabled”            gboolean

Whether WiMAX functionality is enabled.

`NMClient:wimax-enabled` has been deprecated since version 1.22 and should not be used in newly-written code.

WiMAX is no longer supported and this always returns FALSE. The setter has no effect.

Owner: NMClient

Flags: Read / Write

Default value: FALSE

### The `“wimax-hardware-enabled”` property

      “wimax-hardware-enabled”   gboolean

Whether the WiMAX hardware is enabled.

`NMClient:wimax-hardware-enabled` has been deprecated since version 1.22 and should not be used in newly-written code.

WiMAX is no longer supported and this always returns FALSE.

Owner: NMClient

Flags: Read

Default value: FALSE

### The `“wireless-enabled”` property

      “wireless-enabled”         gboolean

Whether wireless is enabled.

The property setter is a synchronous D-Bus call. This is deprecated since 1.22.

Owner: NMClient

Flags: Read / Write

Default value: FALSE

### The `“wireless-hardware-enabled”` property

      “wireless-hardware-enabled” gboolean

Whether the wireless hardware is enabled.

Owner: NMClient

Flags: Read

Default value: FALSE

### The `“wwan-enabled”` property

      “wwan-enabled”             gboolean

Whether WWAN functionality is enabled.

The property setter is a synchronous D-Bus call. This is deprecated since 1.22.

Owner: NMClient

Flags: Read / Write

Default value: FALSE

### The `“wwan-hardware-enabled”` property

      “wwan-hardware-enabled”    gboolean

Whether the WWAN hardware is enabled.

Owner: NMClient

Flags: Read

Default value: FALSE

## Signal Details

### The `“active-connection-added”` signal

    void
    user_function (NMClient           *client,
                   NMActiveConnection *active_connection,
                   gpointer            user_data)

Notifies that a NMActiveConnection has been added.

#### Parameters

client | the client that received the signal |
active_connection | the new active connection |
user_data | user data set when the signal handler was connected. |

Flags: Run First

### The `“active-connection-removed”` signal

    void
    user_function (NMClient           *client,
                   NMActiveConnection *active_connection,
                   gpointer            user_data)

Notifies that a NMActiveConnection has been removed.

#### Parameters

client | the client that received the signal |
active_connection | the removed active connection |
user_data | user data set when the signal handler was connected. |

Flags: Run First

### The `“any-device-added”` signal

    void
    user_function (NMClient *client,
                   GObject  *device,
                   gpointer  user_data)

Notifies that a NMDevice is added. This signal is emitted for both regular devices and placeholder devices.

#### Parameters

client | the client that received the signal |
device | the new device. | [type NMDevice]
user_data | user data set when the signal handler was connected. |

Flags: Run First

### The `“any-device-removed”` signal

    void
    user_function (NMClient *client,
                   GObject  *device,
                   gpointer  user_data)

Notifies that a NMDevice is removed. This signal is emitted for both regular devices and placeholder devices.

#### Parameters

client | the client that received the signal |
device | the removed device. | [type NMDevice]
user_data | user data set when the signal handler was connected. |

Flags: Run First

### The `“connection-added”` signal

    void
    user_function (NMClient           *client,
                   NMRemoteConnection *connection,
                   gpointer            user_data)

Notifies that a NMConnection has been added.

#### Parameters

client | the client that received the signal |
connection | the new connection |
user_data | user data set when the signal handler was connected. |

Flags: Run First

### The `“connection-removed”` signal

    void
    user_function (NMClient           *client,
                   NMRemoteConnection *connection,
                   gpointer            user_data)

Notifies that a NMConnection has been removed.

#### Parameters

client | the client that received the signal |
connection | the removed connection |
user_data | user data set when the signal handler was connected. |

Flags: Run First

### The `“device-added”` signal

    void
    user_function (NMClient *client,
                   GObject  *device,
                   gpointer  user_data)

Notifies that a NMDevice is added. This signal is not emitted for placeholder devices.

#### Parameters

client | the client that received the signal |
device | the new device. | [type NMDevice]
user_data | user data set when the signal handler was connected. |

Flags: Run First

### The `“device-removed”` signal

    void
    user_function (NMClient *client,
                   GObject  *device,
                   gpointer  user_data)

Notifies that a NMDevice is removed. This signal is not emitted for placeholder devices.

#### Parameters

client | the client that received the signal |
device | the removed device. | [type NMDevice]
user_data | user data set when the signal handler was connected. |

Flags: Run First

### The `“permission-changed”` signal

    void
    user_function (NMClient *client,
                   guint     permission,
                   guint     result,
                   gpointer  user_data)

Notifies that a permission has changed

#### Parameters

client | the client that received the signal |
permission | a permission from NMClientPermission |
result | the permission's result, one of NMClientPermissionResult |
user_data | user data set when the signal handler was connected. |

Flags: Run First