summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2014-10-06 11:34:02 -0500
committerThomas Haller <thaller@redhat.com>2015-12-04 12:15:12 +0100
commitdeb6c5f7143f9f257b79a8c9db724310ef4c9a31 (patch)
tree286f4bc62c5b3a15da1b060c2ae47d122cad3887
parentd6f9230beba146818112b36f9f31c9eb10bec888 (diff)
downloadNetworkManager-deb6c5f7143f9f257b79a8c9db724310ef4c9a31.tar.gz
libnm-glib/libnm: add support for "real" NMDevice property
-rw-r--r--libnm-glib/libnm-glib.ver1
-rw-r--r--libnm-glib/nm-device.c41
-rw-r--r--libnm-glib/nm-device.h3
-rw-r--r--libnm/libnm.ver1
-rw-r--r--libnm/nm-device.c40
-rw-r--r--libnm/nm-device.h3
6 files changed, 89 insertions, 0 deletions
diff --git a/libnm-glib/libnm-glib.ver b/libnm-glib/libnm-glib.ver
index fc0c0b95c2..53352587b5 100644
--- a/libnm-glib/libnm-glib.ver
+++ b/libnm-glib/libnm-glib.ver
@@ -158,6 +158,7 @@ global:
nm_device_infiniband_get_hw_address;
nm_device_infiniband_get_type;
nm_device_infiniband_new;
+ nm_device_is_real;
nm_device_is_software;
nm_device_modem_error_get_type;
nm_device_modem_error_quark;
diff --git a/libnm-glib/nm-device.c b/libnm-glib/nm-device.c
index ce76432107..ade17d579e 100644
--- a/libnm-glib/nm-device.c
+++ b/libnm-glib/nm-device.c
@@ -79,6 +79,7 @@ typedef struct {
char *firmware_version;
char *type_description;
NMDeviceCapabilities capabilities;
+ gboolean real;
gboolean managed;
gboolean firmware_missing;
gboolean autoconnect;
@@ -110,6 +111,7 @@ enum {
PROP_DRIVER_VERSION,
PROP_FIRMWARE_VERSION,
PROP_CAPABILITIES,
+ PROP_REAL,
PROP_MANAGED,
PROP_AUTOCONNECT,
PROP_FIRMWARE_MISSING,
@@ -196,6 +198,7 @@ register_properties (NMDevice *device)
{ NM_DEVICE_DRIVER_VERSION, &priv->driver_version },
{ NM_DEVICE_FIRMWARE_VERSION, &priv->firmware_version },
{ NM_DEVICE_CAPABILITIES, &priv->capabilities },
+ { NM_DEVICE_REAL, &priv->real },
{ NM_DEVICE_MANAGED, &priv->managed },
{ NM_DEVICE_AUTOCONNECT, &priv->autoconnect },
{ NM_DEVICE_FIRMWARE_MISSING, &priv->firmware_missing },
@@ -446,6 +449,9 @@ get_property (GObject *object,
case PROP_CAPABILITIES:
g_value_set_uint (value, nm_device_get_capabilities (device));
break;
+ case PROP_REAL:
+ g_value_set_boolean (value, nm_device_is_real (device));
+ break;
case PROP_MANAGED:
g_value_set_boolean (value, nm_device_get_managed (device));
break;
@@ -653,6 +659,22 @@ nm_device_class_init (NMDeviceClass *device_class)
G_PARAM_STATIC_STRINGS));
/**
+ * NMDevice:real:
+ *
+ * Whether the device is real or is a placeholder device that could
+ * be created automatically by NetworkManager if one of its
+ * #NMDevice:available-connections was activated.
+ *
+ * Since: 1.2
+ **/
+ g_object_class_install_property
+ (object_class, PROP_REAL,
+ g_param_spec_boolean (NM_DEVICE_REAL, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
* NMDevice:managed:
*
* Whether the device is managed by NetworkManager.
@@ -2106,6 +2128,25 @@ nm_device_get_mtu (NMDevice *device)
}
/**
+ * nm_device_is_real:
+ * @device: a #NMDevice
+ *
+ * Returns: %TRUE if the device exists, or %FALSE if it is a placeholder device
+ * that could be automatically created by NetworkManager if one of its
+ * #NMDevice:available-connections was activated.
+ *
+ * Since: 1.2
+ **/
+gboolean
+nm_device_is_real (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)->real;
+}
+
+/**
* nm_device_is_software:
* @device: a #NMDevice
*
diff --git a/libnm-glib/nm-device.h b/libnm-glib/nm-device.h
index 3d0abde1ca..d2d154dc1f 100644
--- a/libnm-glib/nm-device.h
+++ b/libnm-glib/nm-device.h
@@ -66,6 +66,7 @@ GQuark nm_device_error_quark (void);
#define NM_DEVICE_DRIVER_VERSION "driver-version"
#define NM_DEVICE_FIRMWARE_VERSION "firmware-version"
#define NM_DEVICE_CAPABILITIES "capabilities"
+#define NM_DEVICE_REAL "real"
#define NM_DEVICE_MANAGED "managed"
#define NM_DEVICE_AUTOCONNECT "autoconnect"
#define NM_DEVICE_FIRMWARE_MISSING "firmware-missing"
@@ -146,6 +147,8 @@ NM_AVAILABLE_IN_0_9_10
guint32 nm_device_get_mtu (NMDevice *device);
NM_AVAILABLE_IN_1_0
gboolean nm_device_is_software (NMDevice *device);
+NM_AVAILABLE_IN_1_2
+gboolean nm_device_is_real (NMDevice *device);
const char * nm_device_get_product (NMDevice *device);
const char * nm_device_get_vendor (NMDevice *device);
diff --git a/libnm/libnm.ver b/libnm/libnm.ver
index dbd95922e9..ae287695bc 100644
--- a/libnm/libnm.ver
+++ b/libnm/libnm.ver
@@ -876,6 +876,7 @@ global:
nm_device_ip_tunnel_get_ttl;
nm_device_ip_tunnel_get_type;
nm_device_get_nm_plugin_missing;
+ nm_device_is_real;
nm_device_set_managed;
nm_device_tun_get_group;
nm_device_tun_get_hw_address;
diff --git a/libnm/nm-device.c b/libnm/nm-device.c
index 3ca08c55ce..7e48a53087 100644
--- a/libnm/nm-device.c
+++ b/libnm/nm-device.c
@@ -86,6 +86,7 @@ typedef struct {
char *type_description;
NMMetered metered;
NMDeviceCapabilities capabilities;
+ gboolean real;
gboolean managed;
gboolean firmware_missing;
gboolean nm_plugin_missing;
@@ -119,6 +120,7 @@ enum {
PROP_DRIVER_VERSION,
PROP_FIRMWARE_VERSION,
PROP_CAPABILITIES,
+ PROP_REAL,
PROP_MANAGED,
PROP_AUTOCONNECT,
PROP_FIRMWARE_MISSING,
@@ -229,6 +231,7 @@ init_dbus (NMObject *object)
{ NM_DEVICE_DRIVER_VERSION, &priv->driver_version },
{ NM_DEVICE_FIRMWARE_VERSION, &priv->firmware_version },
{ NM_DEVICE_CAPABILITIES, &priv->capabilities },
+ { NM_DEVICE_REAL, &priv->real },
{ NM_DEVICE_MANAGED, &priv->managed },
{ NM_DEVICE_AUTOCONNECT, &priv->autoconnect },
{ NM_DEVICE_FIRMWARE_MISSING, &priv->firmware_missing },
@@ -461,6 +464,9 @@ get_property (GObject *object,
case PROP_CAPABILITIES:
g_value_set_flags (value, nm_device_get_capabilities (device));
break;
+ case PROP_REAL:
+ g_value_set_boolean (value, nm_device_is_real (device));
+ break;
case PROP_MANAGED:
g_value_set_boolean (value, nm_device_get_managed (device));
break;
@@ -680,6 +686,22 @@ nm_device_class_init (NMDeviceClass *device_class)
G_PARAM_STATIC_STRINGS));
/**
+ * NMDevice:real:
+ *
+ * Whether the device is real or is a placeholder device that could
+ * be created automatically by NetworkManager if one of its
+ * #NMDevice:available-connections was activated.
+ *
+ * Since: 1.2
+ **/
+ g_object_class_install_property
+ (object_class, PROP_REAL,
+ g_param_spec_boolean (NM_DEVICE_REAL, "", "",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
* NMDevice:managed:
*
* Whether the device is managed by NetworkManager.
@@ -2098,6 +2120,24 @@ nm_device_get_lldp_neighbors (NMDevice *device)
}
/**
+ * nm_device_is_real:
+ * @device: a #NMDevice
+ *
+ * Returns: %TRUE if the device exists, or %FALSE if it is a placeholder device
+ * that could be automatically created by NetworkManager if one of its
+ * #NMDevice:available-connections was activated.
+ *
+ * Since: 1.2
+ **/
+gboolean
+nm_device_is_real (NMDevice *device)
+{
+ g_return_val_if_fail (NM_IS_DEVICE (device), FALSE);
+
+ return NM_DEVICE_GET_PRIVATE (device)->real;
+}
+
+/**
* nm_device_is_software:
* @device: a #NMDevice
*
diff --git a/libnm/nm-device.h b/libnm/nm-device.h
index 005d85dd4f..45ee3b2100 100644
--- a/libnm/nm-device.h
+++ b/libnm/nm-device.h
@@ -45,6 +45,7 @@ G_BEGIN_DECLS
#define NM_DEVICE_DRIVER_VERSION "driver-version"
#define NM_DEVICE_FIRMWARE_VERSION "firmware-version"
#define NM_DEVICE_CAPABILITIES "capabilities"
+#define NM_DEVICE_REAL "real"
#define NM_DEVICE_MANAGED "managed"
#define NM_DEVICE_AUTOCONNECT "autoconnect"
#define NM_DEVICE_FIRMWARE_MISSING "firmware-missing"
@@ -123,6 +124,8 @@ NMActiveConnection * nm_device_get_active_connection(NMDevice *device);
const GPtrArray * nm_device_get_available_connections(NMDevice *device);
const char * nm_device_get_physical_port_id (NMDevice *device);
guint32 nm_device_get_mtu (NMDevice *device);
+NM_AVAILABLE_IN_1_2
+gboolean nm_device_is_real (NMDevice *device);
gboolean nm_device_is_software (NMDevice *device);
const char * nm_device_get_product (NMDevice *device);