diff options
author | Jiří Klimeš <jklimes@redhat.com> | 2012-05-14 17:09:36 +0200 |
---|---|---|
committer | Jiří Klimeš <jklimes@redhat.com> | 2012-05-22 18:30:53 +0200 |
commit | e0329b44c4433e41745f0068f06d4083006ec9df (patch) | |
tree | 437907f23f5b8defeee4257d7ea6fce60ba4e6c4 /libnm-glib | |
parent | d1cbeebfc624cdc3ad3fb4131c9ef9c1a508e7b1 (diff) | |
download | NetworkManager-e0329b44c4433e41745f0068f06d4083006ec9df.tar.gz |
libnm-glib: add 'autoconnect' property for devices
Diffstat (limited to 'libnm-glib')
-rw-r--r-- | libnm-glib/libnm-glib.ver | 2 | ||||
-rw-r--r-- | libnm-glib/nm-device.c | 68 | ||||
-rw-r--r-- | libnm-glib/nm-device.h | 3 |
3 files changed, 73 insertions, 0 deletions
diff --git a/libnm-glib/libnm-glib.ver b/libnm-glib/libnm-glib.ver index 7de80c7901..f2e5cb376d 100644 --- a/libnm-glib/libnm-glib.ver +++ b/libnm-glib/libnm-glib.ver @@ -89,6 +89,7 @@ global: nm_device_ethernet_new; nm_device_filter_connections; nm_device_get_active_connection; + nm_device_get_autoconnect; nm_device_get_capabilities; nm_device_get_device_type; nm_device_get_dhcp4_config; @@ -125,6 +126,7 @@ global: nm_device_olpc_mesh_get_hw_address; nm_device_olpc_mesh_get_type; nm_device_olpc_mesh_new; + nm_device_set_autoconnect; nm_device_vlan_error_get_type; nm_device_vlan_error_quark; nm_device_vlan_get_carrier; diff --git a/libnm-glib/nm-device.c b/libnm-glib/nm-device.c index 6f79d81e52..9656deaabd 100644 --- a/libnm-glib/nm-device.c +++ b/libnm-glib/nm-device.c @@ -71,6 +71,7 @@ typedef struct { NMDeviceCapabilities capabilities; gboolean managed; gboolean firmware_missing; + gboolean autoconnect; NMIP4Config *ip4_config; NMDHCP4Config *dhcp4_config; NMIP6Config *ip6_config; @@ -92,6 +93,7 @@ enum { PROP_DRIVER, PROP_CAPABILITIES, PROP_MANAGED, + PROP_AUTOCONNECT, PROP_FIRMWARE_MISSING, PROP_IP4_CONFIG, PROP_DHCP4_CONFIG, @@ -154,6 +156,7 @@ register_properties (NMDevice *device) { NM_DEVICE_DRIVER, &priv->driver }, { NM_DEVICE_CAPABILITIES, &priv->capabilities }, { NM_DEVICE_MANAGED, &priv->managed }, + { NM_DEVICE_AUTOCONNECT, &priv->autoconnect }, { NM_DEVICE_FIRMWARE_MISSING, &priv->firmware_missing }, { NM_DEVICE_IP4_CONFIG, &priv->ip4_config, NULL, NM_TYPE_IP4_CONFIG }, { NM_DEVICE_DHCP4_CONFIG, &priv->dhcp4_config, NULL, NM_TYPE_DHCP4_CONFIG }, @@ -326,6 +329,9 @@ get_property (GObject *object, case PROP_MANAGED: g_value_set_boolean (value, nm_device_get_managed (device)); break; + case PROP_AUTOCONNECT: + g_value_set_boolean (value, nm_device_get_autoconnect (device)); + break; case PROP_FIRMWARE_MISSING: g_value_set_boolean (value, nm_device_get_firmware_missing (device)); break; @@ -375,12 +381,18 @@ set_property (GObject *object, { NMDevice *self = NM_DEVICE (object); NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self); + gboolean b; switch (prop_id) { case PROP_DEVICE_TYPE: /* Construct only */ priv->device_type = g_value_get_uint (value); break; + case PROP_AUTOCONNECT: + b = g_value_get_boolean (value); + if (priv->autoconnect != b) + nm_device_set_autoconnect (NM_DEVICE (object), b); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -500,6 +512,19 @@ nm_device_class_init (NMDeviceClass *device_class) G_PARAM_READABLE)); /** + * NMDevice:autoconnect: + * + * Whether the device can auto-activate a connection. + **/ + g_object_class_install_property + (object_class, PROP_AUTOCONNECT, + g_param_spec_boolean (NM_DEVICE_AUTOCONNECT, + "Autoconnect", + "Autoconnect", + TRUE, + G_PARAM_READWRITE)); + + /** * NMDevice:firmware-missing: * * When %TRUE indicates the device is likely missing firmware required @@ -918,6 +943,49 @@ nm_device_get_managed (NMDevice *device) } /** + * nm_device_get_autoconnect: + * @device: a #NMDevice + * + * Whether the #NMDevice can be autoconnected. + * + * Returns: %TRUE if the device is allowed to be autoconnected + **/ +gboolean +nm_device_get_autoconnect (NMDevice *device) +{ + g_return_val_if_fail (NM_IS_DEVICE (device), FALSE); + + _nm_object_ensure_inited (NM_OBJECT (device)); + return NM_DEVICE_GET_PRIVATE (device)->autoconnect; +} + +/** + * nm_device_set_autoconnect: + * @device: a #NMDevice + * @autoconnect: %TRUE to enable autoconnecting + * + * Enables or disables automatic activation of the #NMDevice. + **/ +void +nm_device_set_autoconnect (NMDevice *device, gboolean autoconnect) +{ + GValue value = {0,}; + + g_return_if_fail (NM_IS_DEVICE (device)); + + g_value_init (&value, G_TYPE_BOOLEAN); + g_value_set_boolean (&value, autoconnect); + + + NM_DEVICE_GET_PRIVATE (device)->autoconnect = autoconnect; + + _nm_object_set_property (NM_OBJECT (device), + NM_DBUS_INTERFACE_DEVICE, + "Autoconnect", + &value); +} + +/** * nm_device_get_firmware_missing: * @device: a #NMDevice * diff --git a/libnm-glib/nm-device.h b/libnm-glib/nm-device.h index 50301dc93a..63049c65e0 100644 --- a/libnm-glib/nm-device.h +++ b/libnm-glib/nm-device.h @@ -52,6 +52,7 @@ G_BEGIN_DECLS #define NM_DEVICE_DRIVER "driver" #define NM_DEVICE_CAPABILITIES "capabilities" #define NM_DEVICE_MANAGED "managed" +#define NM_DEVICE_AUTOCONNECT "autoconnect" #define NM_DEVICE_FIRMWARE_MISSING "firmware-missing" #define NM_DEVICE_IP4_CONFIG "ip4-config" #define NM_DEVICE_DHCP4_CONFIG "dhcp4-config" @@ -100,6 +101,8 @@ const char * nm_device_get_udi (NMDevice *device); const char * nm_device_get_driver (NMDevice *device); NMDeviceCapabilities nm_device_get_capabilities (NMDevice *device); gboolean nm_device_get_managed (NMDevice *device); +gboolean nm_device_get_autoconnect (NMDevice *device); +void nm_device_set_autoconnect (NMDevice *device, gboolean autoconnect); gboolean nm_device_get_firmware_missing (NMDevice *device); NMIP4Config * nm_device_get_ip4_config (NMDevice *device); NMDHCP4Config * nm_device_get_dhcp4_config (NMDevice *device); |