summary refs log tree commit diff
path: root/libnm/nm-client.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnm/nm-client.c')
-rw-r--r--libnm/nm-client.c125
1 files changed, 120 insertions, 5 deletions
diff --git a/libnm/nm-client.c b/libnm/nm-client.c
index c8707f50..8f9c50e9 100644
--- a/libnm/nm-client.c
+++ b/libnm/nm-client.c
@@ -63,6 +63,10 @@
 #include "nm-device-macvlan.h"
 #include "nm-device-modem.h"
 #include "nm-device-olpc-mesh.h"
+#include "nm-device-ovs-interface.h"
+#include "nm-device-ovs-port.h"
+#include "nm-device-ovs-bridge.h"
+#include "nm-device-ppp.h"
 #include "nm-device-team.h"
 #include "nm-device-tun.h"
 #include "nm-device-vlan.h"
@@ -122,6 +126,8 @@ enum {
 	PROP_WIMAX_HARDWARE_ENABLED,
 	PROP_ACTIVE_CONNECTIONS,
 	PROP_CONNECTIVITY,
+	PROP_CONNECTIVITY_CHECK_AVAILABLE,
+	PROP_CONNECTIVITY_CHECK_ENABLED,
 	PROP_PRIMARY_CONNECTION,
 	PROP_ACTIVATING_CONNECTION,
 	PROP_DEVICES,
@@ -473,6 +479,72 @@ nm_client_wimax_hardware_get_enabled (NMClient *client)
 }
 
 /**
+ * nm_client_connectivity_check_get_available:
+ * @client: a #NMClient
+ *
+ * Determine whether connectivity checking is available.  This
+ * requires that the URI of a connectivity service has been set in the
+ * configuration file.
+ *
+ * Returns: %TRUE if connectivity checking is available.
+ *
+ * Since: 1.10
+ */
+gboolean
+nm_client_connectivity_check_get_available (NMClient *client)
+{
+	g_return_val_if_fail (NM_IS_CLIENT (client), FALSE);
+
+	if (!nm_client_get_nm_running (client))
+		return FALSE;
+
+	return nm_manager_connectivity_check_get_available (NM_CLIENT_GET_PRIVATE (client)->manager);
+}
+
+/**
+ * nm_client_connectivity_check_get_enabled:
+ * @client: a #NMClient
+ *
+ * Determine whether connectivity checking is enabled.
+ *
+ * Returns: %TRUE if connectivity checking is enabled.
+ *
+ * Since: 1.10
+ */
+gboolean
+nm_client_connectivity_check_get_enabled (NMClient *client)
+{
+	g_return_val_if_fail (NM_IS_CLIENT (client), FALSE);
+
+	if (!nm_client_get_nm_running (client))
+		return FALSE;
+
+	return nm_manager_connectivity_check_get_enabled (NM_CLIENT_GET_PRIVATE (client)->manager);
+}
+
+/**
+ * nm_client_connectivity_check_set_enabled:
+ * @client: a #NMClient
+ * @enabled: %TRUE to enable connectivity checking
+ *
+ * Enable or disable connectivity checking.  Note that if a
+ * connectivity checking URI has not been configured, this will not
+ * have any effect.
+ *
+ * Since: 1.10
+ */
+void
+nm_client_connectivity_check_set_enabled (NMClient *client, gboolean enabled)
+{
+	g_return_if_fail (NM_IS_CLIENT (client));
+
+	if (!nm_client_get_nm_running (client))
+		return;
+
+	nm_manager_connectivity_check_set_enabled (NM_CLIENT_GET_PRIVATE (client)->manager, enabled);
+}
+
+/**
  * nm_client_get_logging:
  * @client: a #NMClient
  * @level: (allow-none): return location for logging level string
@@ -1013,7 +1085,7 @@ activate_cb (GObject *object,
  * 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 used the returned
+ * 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.
  **/
@@ -2078,6 +2150,14 @@ obj_nm_for_gdbus_object (NMClient *self, GDBusObject *object, GDBusObjectManager
 			type = NM_TYPE_DEVICE_MODEM;
 		else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_OLPC_MESH) == 0)
 			type = NM_TYPE_DEVICE_OLPC_MESH;
+		else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_OVS_INTERFACE) == 0)
+			type = NM_TYPE_DEVICE_OVS_INTERFACE;
+		else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_OVS_PORT) == 0)
+			type = NM_TYPE_DEVICE_OVS_PORT;
+		else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_OVS_BRIDGE) == 0)
+			type = NM_TYPE_DEVICE_OVS_BRIDGE;
+		else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_PPP) == 0)
+			type = NM_TYPE_DEVICE_PPP;
 		else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_TEAM) == 0)
 			type = NM_TYPE_DEVICE_TEAM;
 		else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_TUN) == 0)
@@ -2591,6 +2671,7 @@ set_property (GObject *object, guint prop_id,
 	case PROP_WIRELESS_ENABLED:
 	case PROP_WWAN_ENABLED:
 	case PROP_WIMAX_ENABLED:
+	case PROP_CONNECTIVITY_CHECK_ENABLED:
 		if (priv->manager)
 			g_object_set_property (G_OBJECT (priv->manager), pspec->name, value);
 		break;
@@ -2630,7 +2711,7 @@ get_property (GObject *object, guint prop_id,
 		break;
 	case PROP_WIRELESS_HARDWARE_ENABLED:
 		if (priv->manager)
-			g_object_get_property (G_OBJECT (priv->settings), pspec->name, value);
+			g_object_get_property (G_OBJECT (priv->manager), pspec->name, value);
 		else
 			g_value_set_boolean (value, FALSE);
 		break;
@@ -2639,7 +2720,7 @@ get_property (GObject *object, guint prop_id,
 		break;
 	case PROP_WWAN_HARDWARE_ENABLED:
 		if (priv->manager)
-			g_object_get_property (G_OBJECT (priv->settings), pspec->name, value);
+			g_object_get_property (G_OBJECT (priv->manager), pspec->name, value);
 		else
 			g_value_set_boolean (value, FALSE);
 		break;
@@ -2648,7 +2729,7 @@ get_property (GObject *object, guint prop_id,
 		break;
 	case PROP_WIMAX_HARDWARE_ENABLED:
 		if (priv->manager)
-			g_object_get_property (G_OBJECT (priv->settings), pspec->name, value);
+			g_object_get_property (G_OBJECT (priv->manager), pspec->name, value);
 		else
 			g_value_set_boolean (value, FALSE);
 		break;
@@ -2658,6 +2739,12 @@ get_property (GObject *object, guint prop_id,
 	case PROP_CONNECTIVITY:
 		g_value_set_enum (value, nm_client_get_connectivity (self));
 		break;
+	case PROP_CONNECTIVITY_CHECK_AVAILABLE:
+		g_value_set_boolean (value, nm_client_connectivity_check_get_available (self));
+		break;
+	case PROP_CONNECTIVITY_CHECK_ENABLED:
+		g_value_set_boolean (value, nm_client_connectivity_check_get_enabled (self));
+		break;
 	case PROP_PRIMARY_CONNECTION:
 		g_value_set_object (value, nm_client_get_primary_connection (self));
 		break;
@@ -2669,7 +2756,7 @@ get_property (GObject *object, guint prop_id,
 		break;
 	case PROP_METERED:
 		if (priv->manager)
-			g_object_get_property (G_OBJECT (priv->settings), pspec->name, value);
+			g_object_get_property (G_OBJECT (priv->manager), pspec->name, value);
 		else
 			g_value_set_uint (value, NM_METERED_UNKNOWN);
 		break;
@@ -2896,6 +2983,34 @@ nm_client_class_init (NMClientClass *client_class)
 		                    G_PARAM_STATIC_STRINGS));
 
 	/**
+	 * NMClient::connectivity-check-available
+	 *
+	 * Whether a connectivity checking service has been configured.
+	 *
+	 * Since: 1.10
+	 */
+	g_object_class_install_property
+		(object_class, PROP_CONNECTIVITY_CHECK_AVAILABLE,
+		 g_param_spec_boolean (NM_CLIENT_CONNECTIVITY_CHECK_AVAILABLE, "", "",
+		                       FALSE,
+		                       G_PARAM_READABLE |
+		                       G_PARAM_STATIC_STRINGS));
+
+	/**
+	 * NMClient::connectivity-check-enabled
+	 *
+	 * Whether a connectivity checking service has been enabled.
+	 *
+	 * Since: 1.10
+	 */
+	g_object_class_install_property
+		(object_class, PROP_CONNECTIVITY_CHECK_ENABLED,
+		 g_param_spec_boolean (NM_CLIENT_CONNECTIVITY_CHECK_ENABLED, "", "",
+		                       FALSE,
+		                       G_PARAM_READWRITE |
+		                       G_PARAM_STATIC_STRINGS));
+
+	/**
 	 * NMClient:primary-connection:
 	 *
 	 * The #NMActiveConnection of the device with the default route;