summaryrefslogtreecommitdiff
path: root/src/devices/bluetooth/nm-bluez-device.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bluetooth/nm-bluez-device.c')
-rw-r--r--src/devices/bluetooth/nm-bluez-device.c27
1 files changed, 22 insertions, 5 deletions
diff --git a/src/devices/bluetooth/nm-bluez-device.c b/src/devices/bluetooth/nm-bluez-device.c
index 74a89a5f64..6e80708d87 100644
--- a/src/devices/bluetooth/nm-bluez-device.c
+++ b/src/devices/bluetooth/nm-bluez-device.c
@@ -30,9 +30,12 @@
#include "nm-bluez-device.h"
#include "nm-logging.h"
#include "nm-settings-connection.h"
-#include "nm-bluez5-dun.h"
#include "NetworkManagerUtils.h"
+#if WITH_BLUEZ5_DUN
+#include "nm-bluez5-dun.h"
+#endif
+
G_DEFINE_TYPE (NMBluezDevice, nm_bluez_device, G_TYPE_OBJECT)
#define NM_BLUEZ_DEVICE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_BLUEZ_DEVICE, NMBluezDevicePrivate))
@@ -59,7 +62,9 @@ typedef struct {
gboolean connected;
char *b4_iface;
+#if WITH_BLUEZ5_DUN
NMBluez5DunContext *b5_dun_context;
+#endif
NMConnectionProvider *provider;
GSList *connections;
@@ -211,16 +216,16 @@ pan_connection_check_create (NMBluezDevice *self)
/* Setting: IPv4 */
setting = nm_setting_ip4_config_new ();
g_object_set (G_OBJECT (setting),
- NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO,
- NM_SETTING_IP4_CONFIG_MAY_FAIL, FALSE,
+ NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO,
+ NM_SETTING_IP_CONFIG_MAY_FAIL, FALSE,
NULL);
nm_connection_add_setting (connection, setting);
/* Setting: IPv6 */
setting = nm_setting_ip6_config_new ();
g_object_set (G_OBJECT (setting),
- NM_SETTING_IP6_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_AUTO,
- NM_SETTING_IP6_CONFIG_MAY_FAIL, TRUE,
+ NM_SETTING_IP_CONFIG_METHOD, NM_SETTING_IP6_CONFIG_METHOD_AUTO,
+ NM_SETTING_IP_CONFIG_MAY_FAIL, TRUE,
NULL);
nm_connection_add_setting (connection, setting);
@@ -427,7 +432,11 @@ nm_bluez_device_disconnect (NMBluezDevice *self)
args = g_variant_new ("(s)", priv->b4_iface),
dbus_iface = BLUEZ4_SERIAL_INTERFACE;
} else if (priv->bluez_version == 5) {
+#if WITH_BLUEZ5_DUN
nm_bluez5_dun_cleanup (priv->b5_dun_context);
+#else
+ g_assert_not_reached ();
+#endif
priv->connected = FALSE;
goto out;
}
@@ -491,6 +500,7 @@ bluez_connect_cb (GDBusConnection *dbus_connection,
g_object_unref (result_object);
}
+#if WITH_BLUEZ5_DUN
static void
bluez5_dun_connect_cb (NMBluez5DunContext *context,
const char *device,
@@ -510,6 +520,7 @@ bluez5_dun_connect_cb (NMBluez5DunContext *context,
g_simple_async_result_complete (result);
g_object_unref (result);
}
+#endif
void
nm_bluez_device_connect_async (NMBluezDevice *self,
@@ -541,9 +552,13 @@ nm_bluez_device_connect_async (NMBluezDevice *self,
if (priv->bluez_version == 4)
dbus_iface = BLUEZ4_SERIAL_INTERFACE;
else if (priv->bluez_version == 5) {
+#if WITH_BLUEZ5_DUN
if (priv->b5_dun_context == NULL)
priv->b5_dun_context = nm_bluez5_dun_new (priv->adapter_address, priv->address);
nm_bluez5_dun_connect (priv->b5_dun_context, bluez5_dun_connect_cb, simple);
+#else
+ g_assert_not_reached ();
+#endif
return;
}
} else
@@ -1089,10 +1104,12 @@ dispose (GObject *object)
priv->pan_connection = NULL;
}
+#if WITH_BLUEZ5_DUN
if (priv->b5_dun_context) {
nm_bluez5_dun_free (priv->b5_dun_context);
priv->b5_dun_context = NULL;
}
+#endif
g_signal_handlers_disconnect_by_func (priv->provider, cp_connection_added, self);
g_signal_handlers_disconnect_by_func (priv->provider, cp_connection_removed, self);