summary refs log tree commit diff
path: root/libnm/nm-device-bt.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnm/nm-device-bt.c')
-rw-r--r--libnm/nm-device-bt.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/libnm/nm-device-bt.c b/libnm/nm-device-bt.c
index 0fcd28b9..a47e3958 100644
--- a/libnm/nm-device-bt.c
+++ b/libnm/nm-device-bt.c
@@ -131,12 +131,19 @@ connection_compatible (NMDevice *device, NMConnection *connection, GError **erro
 	if (!NM_DEVICE_CLASS (nm_device_bt_parent_class)->connection_compatible (device, connection, error))
 		return FALSE;
 
-	if (!nm_connection_is_type (connection, NM_SETTING_BLUETOOTH_SETTING_NAME)) {
+	if (   !nm_connection_is_type (connection, NM_SETTING_BLUETOOTH_SETTING_NAME)
+	    || !(s_bt = nm_connection_get_setting_bluetooth (connection))) {
 		g_set_error (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_INCOMPATIBLE_CONNECTION,
 		             _("The connection was not a Bluetooth connection."));
 		return FALSE;
 	}
 
+	if (nm_streq0 (nm_setting_bluetooth_get_connection_type (s_bt), NM_SETTING_BLUETOOTH_TYPE_NAP)) {
+		g_set_error (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_INCOMPATIBLE_CONNECTION,
+		             _("The connection is of Bluetooth NAP type."));
+		return FALSE;
+	}
+
 	/* Check BT address */
 	hw_addr = nm_device_bt_get_hw_address (NM_DEVICE_BT (device));
 	if (hw_addr) {
@@ -145,7 +152,6 @@ connection_compatible (NMDevice *device, NMConnection *connection, GError **erro
 			                     _("Invalid device Bluetooth address."));
 			return FALSE;
 		}
-		s_bt = nm_connection_get_setting_bluetooth (connection);
 		setting_addr = nm_setting_bluetooth_get_bdaddr (s_bt);
 		if (setting_addr && !nm_utils_hwaddr_matches (setting_addr, -1, hw_addr, -1)) {
 			g_set_error_literal (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_INCOMPATIBLE_CONNECTION,