Diff between b06899eace1f484b387aae0e568fb1da988b468c and 632164a86b5a13daceb19c602701beb1fbd5179e

Changed Files

File Additions Deletions Status
plugins/hciops.c +1 -5 modified
src/adapter.c +8 -16 modified
src/adapter.h +0 -2 modified
src/event.c +0 -4 modified

Full Patch

diff --git a/plugins/hciops.c b/plugins/hciops.c
index f3115a1..7d807c8 100644
--- a/plugins/hciops.c
+++ b/plugins/hciops.c
@@ -191,11 +191,7 @@ static void set_state(int index, int state)
 		if (adapter_get_state(adapter) == STATE_SUSPENDED)
 			return;
 
-		if (is_resolvname_enabled() &&
-					adapter_has_discov_sessions(adapter))
-			adapter_set_state(adapter, STATE_RESOLVNAME);
-		else
-			adapter_set_state(adapter, STATE_IDLE);
+		adapter_set_state(adapter, STATE_IDLE);
 		break;
 	case DISCOV_INQ:
 	case DISCOV_SCAN:
diff --git a/src/adapter.c b/src/adapter.c
index 8b2a6d8..2d9e368 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -214,7 +214,7 @@ static int pending_remote_name_cancel(struct btd_adapter *adapter)
 	return err;
 }
 
-int adapter_resolve_names(struct btd_adapter *adapter)
+static int adapter_resolve_names(struct btd_adapter *adapter)
 {
 	struct remote_dev_info *dev, match;
 	int err;
@@ -2591,18 +2591,6 @@ static inline void suspend_discovery(struct btd_adapter *adapter)
 	adapter_ops->stop_discovery(adapter->dev_id);
 }
 
-static inline void resolve_names(struct btd_adapter *adapter)
-{
-	int err;
-
-	if (adapter->state != STATE_RESOLVNAME)
-		return;
-
-	err = adapter_resolve_names(adapter);
-	if (err < 0)
-		adapter_set_state(adapter, STATE_IDLE);
-}
-
 void adapter_set_state(struct btd_adapter *adapter, int state)
 {
 	const char *path = adapter->path;
@@ -2617,6 +2605,13 @@ void adapter_set_state(struct btd_adapter *adapter, int state)
 
 	switch (adapter->state) {
 	case STATE_IDLE:
+		if (main_opts.name_resolv &&
+					adapter_has_discov_sessions(adapter) &&
+					adapter_resolve_names(adapter) == 0) {
+			adapter->state = STATE_RESOLVNAME;
+			return;
+		}
+
 		update_oor_devices(adapter);
 
 		discov_active = FALSE;
@@ -2636,9 +2631,6 @@ void adapter_set_state(struct btd_adapter *adapter, int state)
 					ADAPTER_INTERFACE, "Discovering",
 					DBUS_TYPE_BOOLEAN, &discov_active);
 		break;
-	case STATE_RESOLVNAME:
-		resolve_names(adapter);
-		break;
 	case STATE_SUSPENDED:
 		suspend_discovery(adapter);
 		break;
diff --git a/src/adapter.h b/src/adapter.h
index 50e27d4..3e93441 100644
--- a/src/adapter.h
+++ b/src/adapter.h
@@ -101,8 +101,6 @@ void adapter_remove_device(DBusConnection *conn, struct btd_adapter *adapter,
 						struct btd_device *device,
 						gboolean remove_storage);
 
-int adapter_resolve_names(struct btd_adapter *adapter);
-
 struct btd_adapter *adapter_create(DBusConnection *conn, int id);
 gboolean adapter_init(struct btd_adapter *adapter);
 void adapter_remove(struct btd_adapter *adapter);
diff --git a/src/event.c b/src/event.c
index cc0e85f..4e61666 100644
--- a/src/event.c
+++ b/src/event.c
@@ -381,10 +381,6 @@ proceed:
 	/* remove from remote name request list */
 	adapter_remove_found_device(adapter, peer);
 
-	/* check if there is more devices to request names */
-	if (adapter_resolve_names(adapter) == 0)
-		return;
-
 	adapter_set_state(adapter, STATE_IDLE);
 }