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.
a #GCancellable, or %NULL
The #NMActiveConnection of the activating connection that is likely to become the new #NMClient:primary-connection.
The active connections.
List of both real devices and device placeholders.
If %TRUE, adding and modifying connections is supported.
The list of capabilities numbers as guint32 or %NULL if there are no capabilities. The numeric value correspond to %NMCapability enum.
The list of active checkpoints.
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.)
The network connectivity state.
The used URI for connectivity checking.
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().
The name owner of the NetworkManager D-Bus service.
List of real network devices. Does not include placeholder devices.
The current DNS configuration, represented as an array of #NMDnsEntry objects.
The current DNS processing mode.
The current resolv.conf management mode.
The machine hostname stored in persistent configuration. This can be modified by calling nm_client_save_hostname().
#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.
Whether the connectivity is metered.
Whether networking is enabled.
The property setter is a synchronous D-Bus call. This is deprecated since 1.22.
Whether the daemon is running.
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).
The #NMActiveConnection of the device with the default route; see nm_client_get_primary_connection() for more details.
Whether the daemon is still starting up.
The current daemon state.
The NetworkManager version.
Whether WiMAX functionality is enabled.
Whether the WiMAX hardware is enabled.
Whether wireless is enabled.
The property setter is a synchronous D-Bus call. This is deprecated since 1.22.
Whether the wireless hardware is enabled.
Whether WWAN functionality is enabled.
The property setter is a synchronous D-Bus call. This is deprecated since 1.22.
Whether the WWAN hardware is enabled.
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, #NMActiveConnection:state) to track the activation to its completion.
an #NMConnection
the #NMDevice
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.
a #GCancellable, or %NULL
callback to be called when the activation has started
Gets the result of a call to nm_client_activate_connection_async().
the result passed to the #GAsyncReadyCallback
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, #NMActiveConnection: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:
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
the #NMDevice
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.
a #GVariant containing a dictionary with options, or %NULL
a #GCancellable, or %NULL
callback to be called when the activation has started
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.
the result passed to the #GAsyncReadyCallback
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, #NMActiveConnection:state) to track the activation to its completion.
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
the #NMDevice
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.
a #GCancellable, or %NULL
callback to be called when the activation has started
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.
the result passed to the #GAsyncReadyCallback
Call AddConnection2() D-Bus API asynchronously.
the "a{sa{sv}}" #GVariant with the content of the setting.
the %NMSettingsAddConnection2Flags argument.
the "a{sv}" #GVariant with extra argument or %NULL for no extra arguments.
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().
a #GCancellable, or %NULL
callback to be called when the add operation completes
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.
the connection to add. Note that this object's settings will be added, not the object itself
whether to immediately save the connection to disk
a #GCancellable, or %NULL
callback to be called when the add operation completes
Gets the result of a call to nm_client_add_connection_async().
the result passed to the #GAsyncReadyCallback
Creates a binding between source_property
on source
and target_property
on target
.
Whenever the source_property
is changed the target_property
is
updated using the same value. For instance:
g_object_bind_property (action, "active", widget, "sensitive", 0);
Will result in the "sensitive" property of the widget #GObject instance to be updated with the same value of the "active" property of the action #GObject instance.
If flags
contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
if target_property
on target
changes then the source_property
on source
will be updated as well.
The binding will automatically be removed when either the source
or the
target
instances are finalized. To remove the binding without affecting the
source
and the target
you can just call g_object_unref() on the returned
#GBinding instance.
Removing the binding by calling g_object_unref() on it must only be done if
the binding, source
and target
are only used from a single thread and it
is clear that both source
and target
outlive the binding. Especially it
is not safe to rely on this if the binding, source
or target
can be
finalized from different threads. Keep another reference to the binding and
use g_binding_unbind() instead to be on the safe side.
A #GObject can have multiple bindings.
the property on source
to bind
the target #GObject
the property on target
to bind
flags to pass to #GBinding
Creates a binding between source_property
on source
and target_property
on target,
allowing you to set the transformation functions to be used by
the binding.
This function is the language bindings friendly version of g_object_bind_property_full(), using #GClosures instead of function pointers.
the property on source
to bind
the target #GObject
the property on target
to bind
flags to pass to #GBinding
a #GClosure wrapping the transformation function from the source
to the target,
or %NULL to use the default
a #GClosure wrapping the transformation function from the target
to the source,
or %NULL to use the default
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.
a #GCancellable
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.
a #GCancellable
callback to call with the result
Retrieves the result of an nm_client_check_connectivity_async() call.
the #GAsyncResult
Resets the timeout for the checkpoint with path checkpoint_path
to timeout_add
.
a D-Bus path to a checkpoint
the timeout in seconds counting from now. Set to zero, to disable the timeout.
a #GCancellable, or %NULL
callback to be called when the add operation completes
Gets the result of a call to nm_client_checkpoint_adjust_rollback_timeout().
the result passed to the #GAsyncReadyCallback
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.
a list of devices for which a checkpoint should be created.
the rollback timeout in seconds
creation flags
a #GCancellable, or %NULL
callback to be called when the add operation completes
Gets the result of a call to nm_client_checkpoint_create().
the result passed to the #GAsyncReadyCallback
Destroys an existing checkpoint without performing a rollback.
the D-Bus path for the checkpoint
a #GCancellable, or %NULL
callback to be called when the add operation completes
Gets the result of a call to nm_client_checkpoint_destroy().
the result passed to the #GAsyncReadyCallback
Performs the rollback of a checkpoint before the timeout is reached.
the D-Bus path to the checkpoint
a #GCancellable, or %NULL
callback to be called when the add operation completes
Gets the result of a call to nm_client_checkpoint_rollback().
the result passed to the #GAsyncReadyCallback
Determine whether connectivity checking is available. This requires that the URI of a connectivity service has been set in the configuration file.
Determine whether connectivity checking is enabled.
Get the URI that will be queried to determine if there is internet connectivity.
Enable or disable connectivity checking. Note that if a connectivity checking URI has not been configured, this will not have any effect.
%TRUE to enable connectivity checking
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.
path of remote object
D-Bus interface to invoke method on
the name of the method to invoke
a #GVariant tuple with parameters for the method or %NULL if not passing parameters
the expected type of the reply (which will be a tuple), or %NULL
the timeout in milliseconds, -1 to use the default timeout or %G_MAXINT for no timeout
a #GCancellable or %NULL
a #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation
Gets the result of a call to nm_client_dbus_call().
the result passed to the #GAsyncReadyCallback
Like nm_client_dbus_call() but calls "Set" on the standard "org.freedesktop.DBus.Properties" D-Bus interface.
path of remote object
D-Bus interface for the property to set.
the name of the property to set
a #GVariant with the value to set.
the timeout in milliseconds, -1 to use the default timeout or %G_MAXINT for no timeout
a #GCancellable or %NULL
a #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation
Gets the result of a call to nm_client_dbus_set_property().
the result passed to the #GAsyncReadyCallback
Deactivates an active #NMActiveConnection.
the #NMActiveConnection to deactivate
a #GCancellable, or %NULL
Asynchronously deactivates an active #NMActiveConnection.
the #NMActiveConnection to deactivate
a #GCancellable, or %NULL
callback to be called when the deactivation has completed
Gets the result of a call to nm_client_deactivate_connection_async().
the result passed to the #GAsyncReadyCallback
This function is intended for #GObject implementations to re-enforce a [floating][floating-ref] object reference. Doing this is seldom required: all #GInitiallyUnowneds are created with a floating reference which usually just needs to be sunken by calling g_object_ref_sink().
Increases the freeze count on object
. If the freeze count is
non-zero, the emission of "notify" signals on object
is
stopped. The signals are queued until the freeze count is decreased
to zero. Duplicate notifications are squashed so that at most one
#GObject::notify signal is emitted for each property modified while the
object is frozen.
This is necessary for accessors that modify multiple properties to prevent premature notification while the object is still being modified.
Gets the #NMActiveConnection corresponding to a currently-activating connection that is expected to become the new #NMClient:primary-connection upon successful activation.
Gets the active connections.
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().
Gets all the active checkpoints.
Returns the first matching %NMRemoteConnection matching a given id
.
the id of the remote connection
Returns the %NMRemoteConnection representing the connection at path
.
the D-Bus object path of the remote connection
Returns the %NMRemoteConnection identified by uuid
.
the UUID of the remote connection
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.
Gets a named field from the objects table of associations (see g_object_set_data()).
name of the key for that association
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.
Gets the current DNS configuration
Gets the current DNS processing mode.
Gets the current DNS resolv.conf manager.
Gets NetworkManager current logging level and domains.
return location for logging level string
return location for log domains string. The string is a list of domains separated by ","
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.
Determines whether the daemon is running.
Requests the result of a specific permission, which indicates whether the client can or cannot perform the action the permission represents
the permission for which to return the result, one of #NMClientPermission
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.
Gets a property of an object.
The value
can be:
In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling g_value_unset().
Note that g_object_get_property() is really intended for language bindings, g_object_get() is much more convenient for C programming.
the name of the property to get
return location for the property value
This function gets back user data pointers stored via g_object_set_qdata().
A #GQuark, naming the user data pointer
Tests whether the daemon is still in the process of activating connections at startup.
Gets NetworkManager version.
Gets n_properties
properties for an object
.
Obtained properties will be set to values
. All properties must be valid.
Warnings will be emitted and undefined behaviour may result if invalid
properties are passed in.
the names of each property to get
the values of each property to get
Initializes the object implementing the interface.
This method is intended for language bindings. If writing in C, g_initable_new() should typically be used instead.
The object must be initialized before any real use after initial construction, either with this function or g_async_initable_init_async().
Implementations may also support cancellation. If cancellable
is not %NULL,
then initialization can be cancelled by triggering the cancellable object
from another thread. If the operation was cancelled, the error
%G_IO_ERROR_CANCELLED will be returned. If cancellable
is not %NULL and
the object doesn't support cancellable initialization the error
%G_IO_ERROR_NOT_SUPPORTED will be returned.
If the object is not initialized, or initialization returns with an error, then all operations on the object except g_object_ref() and g_object_unref() are considered to be invalid, and have undefined behaviour. See the [introduction][ginitable] for more details.
Callers should not assume that a class which implements #GInitable can be initialized multiple times, unless the class explicitly documents itself as supporting this. Generally, a class’ implementation of init() can assume (and assert) that it will only be called once. Previously, this documentation recommended all #GInitable implementations should be idempotent; that recommendation was relaxed in GLib 2.54.
If a class explicitly supports being initialized multiple times, it is recommended that the method is idempotent: multiple calls with the same arguments should return the same results. Only the first call initializes the object; further calls return the result of the first call.
One reason why a class might need to support idempotent initialization is if it is designed to be used via the singleton pattern, with a #GObjectClass.constructor that sometimes returns an existing instance. In this pattern, a caller would expect to be able to call g_initable_init() on the result of g_object_new(), regardless of whether it is in fact a new instance.
optional #GCancellable object, %NULL to ignore.
Starts asynchronous initialization of the object implementing the interface. This must be done before any real use of the object after initial construction. If the object also implements #GInitable you can optionally call g_initable_init() instead.
This method is intended for language bindings. If writing in C, g_async_initable_new_async() should typically be used instead.
When the initialization is finished, callback
will be called. You can
then call g_async_initable_init_finish() to get the result of the
initialization.
Implementations may also support cancellation. If cancellable
is not
%NULL, then initialization can be cancelled by triggering the cancellable
object from another thread. If the operation was cancelled, the error
%G_IO_ERROR_CANCELLED will be returned. If cancellable
is not %NULL, and
the object doesn't support cancellable initialization, the error
%G_IO_ERROR_NOT_SUPPORTED will be returned.
As with #GInitable, if the object is not initialized, or initialization returns with an error, then all operations on the object except g_object_ref() and g_object_unref() are considered to be invalid, and have undefined behaviour. They will often fail with g_critical() or g_warning(), but this must not be relied on.
Callers should not assume that a class which implements #GAsyncInitable can be initialized multiple times; for more information, see g_initable_init(). If a class explicitly supports being initialized multiple times, implementation requires yielding all subsequent calls to init_async() on the results of the first call.
For classes that also support the #GInitable interface, the default implementation of this method will run the g_initable_init() function in a thread, so if you want to support asynchronous initialization via threads, just implement the #GAsyncInitable interface without overriding any interface methods.
the [I/O priority][io-priority] of the operation
optional #GCancellable object, %NULL to ignore.
a #GAsyncReadyCallback to call when the request is satisfied
Finishes asynchronous initialization and returns the result. See g_async_initable_init_async().
a #GAsyncResult.
Checks whether object
has a [floating][floating-ref] reference.
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.
%NULL-terminated array of filenames to load
a #GCancellable, or %NULL
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.
%NULL-terminated array of filenames to load
a #GCancellable, or %NULL
callback to be called when the operation completes
Gets the result of an nm_client_load_connections_async() call.
See nm_client_load_connections() for more details.
the result passed to the #GAsyncReadyCallback
Whether networking is enabled or disabled.
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.
%TRUE to set networking enabled, %FALSE to set networking disabled
Finishes the async construction for the various g_async_initable_new calls, returning the created object or %NULL on error.
the #GAsyncResult from the callback
Emits a "notify" signal for the property property_name
on object
.
When possible, eg. when signaling a property change from within the class that registered the property, you should use g_object_notify_by_pspec() instead.
Note that emission of the notify signal may be blocked with g_object_freeze_notify(). In this case, the signal emissions are queued and will be emitted (in reverse order) when g_object_thaw_notify() is called.
the name of a property installed on the class of object
.
Emits a "notify" signal for the property specified by pspec
on object
.
This function omits the property name lookup, hence it is faster than g_object_notify().
One way to avoid using g_object_notify() from within the class that registered the properties, and using g_object_notify_by_pspec() instead, is to store the GParamSpec used with g_object_class_install_property() inside a static array, e.g.:
enum
{
PROP_0,
PROP_FOO,
PROP_LAST
};
static GParamSpec *properties[PROP_LAST];
static void
my_object_class_init (MyObjectClass *klass)
{
properties[PROP_FOO] = g_param_spec_int ("foo", "Foo", "The foo",
0, 100,
50,
G_PARAM_READWRITE);
g_object_class_install_property (gobject_class,
PROP_FOO,
properties[PROP_FOO]);
}
and then notify a change on the "foo" property with:
g_object_notify_by_pspec (self, properties[PROP_FOO]);
the #GParamSpec of a property installed on the class of object
.
Increase the reference count of object,
and possibly remove the
[floating][floating-ref] reference, if object
has a floating reference.
In other words, if the object is floating, then this call "assumes ownership" of the floating reference, converting it to a normal reference by clearing the floating flag while leaving the reference count unchanged. If the object is not floating, then this call adds a new normal reference increasing the reference count by one.
Since GLib 2.56, the type of object
will be propagated to the return type
under the same conditions as for g_object_ref().
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.
flags indicating what to reload.
a #GCancellable, or %NULL
callback to be called when the add operation completes
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.
a #GCancellable, or %NULL
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.
a #GCancellable, or %NULL
callback to be called when the reload operation completes
Gets the result of an nm_client_reload_connections_async() call.
the result passed to the #GAsyncReadyCallback
Gets the result of a call to nm_client_reload().
the result passed to the #GAsyncReadyCallback
Releases all references to other objects. This can be used to break reference cycles.
This function should only be called from object system implementations.
Requests that the machine's persistent hostname be set to the specified value or cleared.
the new persistent hostname to set, or %NULL to clear any existing persistent hostname
a #GCancellable, or %NULL
Requests that the machine's persistent hostname be set to the specified value or cleared.
the new persistent hostname to set, or %NULL to clear any existing persistent hostname
a #GCancellable, or %NULL
callback to be called when the operation completes
Gets the result of an nm_client_save_hostname_async() call.
the result passed to the #GAsyncReadyCallback
Each object carries around a table of associations from strings to pointers. This function lets you set an association.
If the object already had an association with that name, the old association will be destroyed.
Internally, the key
is converted to a #GQuark using g_quark_from_string().
This means a copy of key
is kept permanently (even after object
has been
finalized) — so it is recommended to only use a small, bounded set of values
for key
in your program, to avoid the #GQuark storage growing unbounded.
name of the key
data to associate with that key
Sets NetworkManager logging level and/or domains.
logging level to set (%NULL or an empty string for no change)
logging domains to set. The string should be a list of log domains separated by ",". (%NULL or an empty string for no change)
Sets a property on an object.
the name of the property to set
the value
Remove a specified datum from the object's data associations, without invoking the association's destroy handler.
name of the key
This function gets back user data pointers stored via
g_object_set_qdata() and removes the data
from object
without invoking its destroy() function (if any was
set).
Usually, calling this function is only required to update
user data pointers with a destroy notifier, for example:
void
object_add_to_user_list (GObject *object,
const gchar *new_string)
{
// the quark, naming the object data
GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
// retrieve the old string list
GList *list = g_object_steal_qdata (object, quark_string_list);
// prepend new string
list = g_list_prepend (list, g_strdup (new_string));
// this changed 'list', so we need to set it again
g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
}
static void
free_string_list (gpointer data)
{
GList *node, *list = data;
for (node = list; node; node = node->next)
g_free (node->data);
g_list_free (list);
}
Using g_object_get_qdata() in the above example, instead of g_object_steal_qdata() would have left the destroy function set, and thus the partial string list would have been freed upon g_object_set_qdata_full().
A #GQuark, naming the user data pointer
Reverts the effect of a previous call to
g_object_freeze_notify(). The freeze count is decreased on object
and when it reaches zero, queued "notify" signals are emitted.
Duplicate notifications for each property are squashed so that at most one #GObject::notify signal is emitted for each property, in the reverse order in which they have been queued.
It is an error to call this function when the freeze count is zero.
Decreases the reference count of object
. When its reference count
drops to 0, the object is finalized (i.e. its memory is freed).
If the pointer to the #GObject may be reused in future (for example, if it is an instance variable of another object), it is recommended to clear the pointer to %NULL rather than retain a dangling pointer to a potentially invalid #GObject instance. Use g_clear_object() for this.
Initializes the object implementing the interface.
This method is intended for language bindings. If writing in C, g_initable_new() should typically be used instead.
The object must be initialized before any real use after initial construction, either with this function or g_async_initable_init_async().
Implementations may also support cancellation. If cancellable
is not %NULL,
then initialization can be cancelled by triggering the cancellable object
from another thread. If the operation was cancelled, the error
%G_IO_ERROR_CANCELLED will be returned. If cancellable
is not %NULL and
the object doesn't support cancellable initialization the error
%G_IO_ERROR_NOT_SUPPORTED will be returned.
If the object is not initialized, or initialization returns with an error, then all operations on the object except g_object_ref() and g_object_unref() are considered to be invalid, and have undefined behaviour. See the [introduction][ginitable] for more details.
Callers should not assume that a class which implements #GInitable can be initialized multiple times, unless the class explicitly documents itself as supporting this. Generally, a class’ implementation of init() can assume (and assert) that it will only be called once. Previously, this documentation recommended all #GInitable implementations should be idempotent; that recommendation was relaxed in GLib 2.54.
If a class explicitly supports being initialized multiple times, it is recommended that the method is idempotent: multiple calls with the same arguments should return the same results. Only the first call initializes the object; further calls return the result of the first call.
One reason why a class might need to support idempotent initialization is if it is designed to be used via the singleton pattern, with a #GObjectClass.constructor that sometimes returns an existing instance. In this pattern, a caller would expect to be able to call g_initable_init() on the result of g_object_new(), regardless of whether it is in fact a new instance.
optional #GCancellable object, %NULL to ignore.
Starts asynchronous initialization of the object implementing the interface. This must be done before any real use of the object after initial construction. If the object also implements #GInitable you can optionally call g_initable_init() instead.
This method is intended for language bindings. If writing in C, g_async_initable_new_async() should typically be used instead.
When the initialization is finished, callback
will be called. You can
then call g_async_initable_init_finish() to get the result of the
initialization.
Implementations may also support cancellation. If cancellable
is not
%NULL, then initialization can be cancelled by triggering the cancellable
object from another thread. If the operation was cancelled, the error
%G_IO_ERROR_CANCELLED will be returned. If cancellable
is not %NULL, and
the object doesn't support cancellable initialization, the error
%G_IO_ERROR_NOT_SUPPORTED will be returned.
As with #GInitable, if the object is not initialized, or initialization returns with an error, then all operations on the object except g_object_ref() and g_object_unref() are considered to be invalid, and have undefined behaviour. They will often fail with g_critical() or g_warning(), but this must not be relied on.
Callers should not assume that a class which implements #GAsyncInitable can be initialized multiple times; for more information, see g_initable_init(). If a class explicitly supports being initialized multiple times, implementation requires yielding all subsequent calls to init_async() on the results of the first call.
For classes that also support the #GInitable interface, the default implementation of this method will run the g_initable_init() function in a thread, so if you want to support asynchronous initialization via threads, just implement the #GAsyncInitable interface without overriding any interface methods.
the [I/O priority][io-priority] of the operation
optional #GCancellable object, %NULL to ignore.
a #GAsyncReadyCallback to call when the request is satisfied
Finishes asynchronous initialization and returns the result. See g_async_initable_init_async().
a #GAsyncResult.
Emits a "notify" signal for the property property_name
on object
.
When possible, eg. when signaling a property change from within the class that registered the property, you should use g_object_notify_by_pspec() instead.
Note that emission of the notify signal may be blocked with g_object_freeze_notify(). In this case, the signal emissions are queued and will be emitted (in reverse order) when g_object_thaw_notify() is called.
This function essentially limits the life time of the closure
to
the life time of the object. That is, when the object is finalized,
the closure
is invalidated by calling g_closure_invalidate() on
it, in order to prevent invocations of the closure with a finalized
(nonexisting) object. Also, g_object_ref() and g_object_unref() are
added as marshal guards to the closure,
to ensure that an extra
reference count is held on object
during invocation of the
closure
. Usually, this function will be called on closures that
use this object
as closure data.
#GClosure to watch
Determines whether WiMAX is enabled.
Determines whether the WiMAX hardware is enabled.
Enables or disables WiMAX devices.
%TRUE to enable WiMAX
Determines whether the wireless is enabled.
Determines whether the wireless hardware is enabled.
Enables or disables wireless devices.
%TRUE to enable wireless
Determines whether WWAN is enabled.
Determines whether the WWAN hardware is enabled.
Enables or disables WWAN devices.
%TRUE to enable WWAN
Find the #GParamSpec with the given name for an
interface. Generally, the interface vtable passed in as g_iface
will be the default vtable from g_type_default_interface_ref(), or,
if you know the interface has already been loaded,
g_type_default_interface_peek().
any interface vtable for the interface, or the default vtable for the interface
name of a property to look up.
Add a property to an interface; this is only useful for interfaces that are added to GObject-derived types. Adding a property to an interface forces all objects classes with that interface to have a compatible property. The compatible property could be a newly created #GParamSpec, but normally g_object_class_override_property() will be used so that the object class only needs to provide an implementation and inherits the property description, default value, bounds, and so forth from the interface property.
This function is meant to be called from the interface's default
vtable initialization function (the class_init
member of
#GTypeInfo.) It must not be called after after class_init
has
been called for any object types implementing this interface.
If pspec
is a floating reference, it will be consumed.
any interface vtable for the interface, or the default vtable for the interface.
the #GParamSpec for the new property
Lists the properties of an interface.Generally, the interface
vtable passed in as g_iface
will be the default vtable from
g_type_default_interface_ref(), or, if you know the interface has
already been loaded, g_type_default_interface_peek().
any interface vtable for the interface, or the default vtable for the interface
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.
a #GCancellable, or %NULL
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.
a #GCancellable, or %NULL
callback to call when the client is created
Gets the result of an nm_client_new_async() call.
a #GAsyncResult
Creates a new instance of a #GObject subtype and sets its properties.
Construction parameters (see %G_PARAM_CONSTRUCT, %G_PARAM_CONSTRUCT_ONLY) which are not explicitly specified are set to their default values.
the type id of the #GObject subtype to instantiate
an array of #GParameter
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.