libnm,libnm-glib: add Device.Managed setter
authorLubomir Rintel <lkundrak@v3.sk>
Mon, 23 Mar 2015 12:31:10 +0000 (13:31 +0100)
committerThomas Haller <thaller@redhat.com>
Fri, 18 Sep 2015 11:14:23 +0000 (13:14 +0200)
libnm-glib/libnm-glib.ver
libnm-glib/nm-device.c
libnm-glib/nm-device.h
libnm/libnm.ver
libnm/nm-device.c
libnm/nm-device.h

index dc982e5..fc0c0b9 100644 (file)
@@ -173,6 +173,7 @@ global:
        nm_device_olpc_mesh_get_type;
        nm_device_olpc_mesh_new;
        nm_device_set_autoconnect;
+       nm_device_set_managed;
        nm_device_team_error_get_type;
        nm_device_team_error_quark;
        nm_device_team_get_carrier;
index ccb1c1f..460f079 100644 (file)
@@ -515,6 +515,11 @@ set_property (GObject *object,
                /* Construct only */
                priv->device_type = g_value_get_uint (value);
                break;
+       case PROP_MANAGED:
+               b = g_value_get_boolean (value);
+               if (priv->managed != b)
+                       nm_device_set_managed (NM_DEVICE (object), b);
+               break;
        case PROP_AUTOCONNECT:
                b = g_value_get_boolean (value);
                if (priv->autoconnect != b)
@@ -1213,6 +1218,35 @@ nm_device_get_managed (NMDevice *device)
        return NM_DEVICE_GET_PRIVATE (device)->managed;
 }
 
+/**
+ * nm_device_set_managed:
+ * @device: a #NMDevice
+ * @managed: %TRUE to make the device managed by NetworkManager.
+ *
+ * Enables or disables management of  #NMDevice by NetworkManager.
+ *
+ * Since: 1.2
+ **/
+void
+nm_device_set_managed (NMDevice *device, gboolean managed)
+{
+       GValue value = G_VALUE_INIT;
+
+       g_return_if_fail (NM_IS_DEVICE (device));
+
+       managed = !!managed;
+
+       g_value_init (&value, G_TYPE_BOOLEAN);
+       g_value_set_boolean (&value, managed);
+
+       NM_DEVICE_GET_PRIVATE (device)->managed = managed;
+
+       _nm_object_set_property (NM_OBJECT (device),
+                                NM_DBUS_INTERFACE_DEVICE,
+                                "Managed",
+                                &value);
+}
+
 /**
  * nm_device_get_autoconnect:
  * @device: a #NMDevice
index 707fddf..3d0abde 100644 (file)
@@ -127,6 +127,8 @@ NM_AVAILABLE_IN_0_9_10
 const char *         nm_device_get_hw_address       (NMDevice *device);
 NMDeviceCapabilities nm_device_get_capabilities     (NMDevice *device);
 gboolean             nm_device_get_managed          (NMDevice *device);
+NM_AVAILABLE_IN_1_2
+void                 nm_device_set_managed          (NMDevice *device, gboolean managed);
 gboolean             nm_device_get_autoconnect      (NMDevice *device);
 void                 nm_device_set_autoconnect      (NMDevice *device, gboolean autoconnect);
 gboolean             nm_device_get_firmware_missing (NMDevice *device);
index d87664e..efe182d 100644 (file)
@@ -860,6 +860,7 @@ global:
        nm_access_point_get_last_seen;
        nm_device_get_metered;
        nm_device_get_nm_plugin_missing;
+       nm_device_set_managed;
        nm_device_wifi_request_scan_options;
        nm_device_wifi_request_scan_options_async;
        nm_metered_get_type;
index a792d09..725762d 100644 (file)
@@ -482,6 +482,11 @@ set_property (GObject *object,
                /* Construct only */
                priv->device_type = g_value_get_enum (value);
                break;
+       case PROP_MANAGED:
+               b = g_value_get_boolean (value);
+               if (priv->managed != b)
+                       nm_device_set_managed (NM_DEVICE (object), b);
+               break;
        case PROP_AUTOCONNECT:
                b = g_value_get_boolean (value);
                if (priv->autoconnect != b)
@@ -1094,6 +1099,30 @@ nm_device_get_managed (NMDevice *device)
        return NM_DEVICE_GET_PRIVATE (device)->managed;
 }
 
+/**
+ * nm_device_set_managed:
+ * @device: a #NMDevice
+ * @managed: %TRUE to make the device managed by NetworkManager.
+ *
+ * Enables or disables management of  #NMDevice by NetworkManager.
+ *
+ * Since: 1.2
+ **/
+void
+nm_device_set_managed (NMDevice *device, gboolean managed)
+{
+       g_return_if_fail (NM_IS_DEVICE (device));
+
+       managed = !!managed;
+
+       NM_DEVICE_GET_PRIVATE (device)->managed = managed;
+
+       _nm_object_set_property (NM_OBJECT (device),
+                                NM_DBUS_INTERFACE_DEVICE,
+                                "Managed",
+                                "b", managed);
+}
+
 /**
  * nm_device_get_autoconnect:
  * @device: a #NMDevice
index 66e1d57..4453bfe 100644 (file)
@@ -103,6 +103,8 @@ const char *         nm_device_get_type_description (NMDevice *device);
 const char *         nm_device_get_hw_address       (NMDevice *device);
 NMDeviceCapabilities nm_device_get_capabilities     (NMDevice *device);
 gboolean             nm_device_get_managed          (NMDevice *device);
+NM_AVAILABLE_IN_1_2
+void                 nm_device_set_managed          (NMDevice *device, gboolean managed);
 gboolean             nm_device_get_autoconnect      (NMDevice *device);
 void                 nm_device_set_autoconnect      (NMDevice *device, gboolean autoconnect);
 gboolean             nm_device_get_firmware_missing (NMDevice *device);