Diff between d2068f26fef0bea3d8329a289257b303195923f1 and a9d896b9a0d7c65b7c9f8d23b9b0d579eae19eea

Changed Files

File Additions Deletions Status
src/adapter.c +25 -18 modified
src/adapter.h +3 -3 modified
src/mgmt.c +3 -17 modified

Full Patch

diff --git a/src/adapter.c b/src/adapter.c
index d9601e1..a41eb15 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -358,9 +358,11 @@ static void adapter_set_pairable_timeout(struct btd_adapter *adapter,
 						adapter);
 }
 
-void btd_adapter_pairable_changed(struct btd_adapter *adapter,
-							gboolean pairable)
+void adapter_update_pairable(struct btd_adapter *adapter, bool pairable)
 {
+	if (adapter->pairable == pairable)
+		return;
+
 	adapter->pairable = pairable;
 
 	store_adapter_info(adapter);
@@ -3042,28 +3044,33 @@ void adapter_update_found_devices(struct btd_adapter *adapter,
 	}
 }
 
-void adapter_mode_changed(struct btd_adapter *adapter, bool connectable,
+void adapter_update_connectable(struct btd_adapter *adapter, bool connectable)
+{
+	struct DBusConnection *conn = btd_get_dbus_connection();
+
+	if (adapter->connectable == connectable)
+		return;
+
+	adapter->connectable = connectable;
+	g_dbus_emit_property_changed(conn, adapter->path, ADAPTER_INTERFACE,
+								"Connectable");
+
+	store_adapter_info(adapter);
+}
+
+void adapter_update_discoverable(struct btd_adapter *adapter,
 							bool discoverable)
 {
 	struct DBusConnection *conn = btd_get_dbus_connection();
 
-	DBG("connectable %u (old %u) discoverable %u (old %u)",
-					connectable, adapter->connectable,
-					discoverable, adapter->discoverable);
+	if (adapter->discoverable == discoverable)
+		return;
 
-	if (connectable != adapter->connectable) {
-		adapter->connectable = connectable;
-		g_dbus_emit_property_changed(conn, adapter->path,
-						ADAPTER_INTERFACE,
-						"Connectable");
-	}
+	adapter->discoverable = discoverable;
+	g_dbus_emit_property_changed(conn, adapter->path, ADAPTER_INTERFACE,
+								"Discoverable");
 
-	if (discoverable != adapter->discoverable) {
-		adapter->discoverable = discoverable;
-		g_dbus_emit_property_changed(conn, adapter->path,
-						ADAPTER_INTERFACE,
-						"Discoverable");
-	}
+	store_adapter_info(adapter);
 }
 
 struct agent *adapter_get_agent(struct btd_adapter *adapter)
diff --git a/src/adapter.h b/src/adapter.h
index a192a71..b998219 100644
--- a/src/adapter.h
+++ b/src/adapter.h
@@ -107,7 +107,8 @@ void adapter_update_found_devices(struct btd_adapter *adapter,
 					uint8_t bdaddr_type, int8_t rssi,
 					bool confirm_name, bool legacy,
 					uint8_t *data, uint8_t data_len);
-void adapter_mode_changed(struct btd_adapter *adapter, bool connectable,
+void adapter_update_connectable(struct btd_adapter *adapter, bool connectable);
+void adapter_update_discoverable(struct btd_adapter *adapter,
 							bool discoverable);
 int adapter_set_name(struct btd_adapter *adapter, const char *name);
 void adapter_name_changed(struct btd_adapter *adapter, const char *name);
@@ -115,8 +116,7 @@ void adapter_service_insert(struct btd_adapter *adapter, void *rec);
 void adapter_service_remove(struct btd_adapter *adapter, void *rec);
 void btd_adapter_class_changed(struct btd_adapter *adapter,
 							uint8_t *new_class);
-void btd_adapter_pairable_changed(struct btd_adapter *adapter,
-							gboolean pairable);
+void adapter_update_pairable(struct btd_adapter *adapter, bool pairable);
 
 struct agent *adapter_get_agent(struct btd_adapter *adapter);
 void adapter_add_connection(struct btd_adapter *adapter,
diff --git a/src/mgmt.c b/src/mgmt.c
index f5b368d..f34c555 100644
--- a/src/mgmt.c
+++ b/src/mgmt.c
@@ -328,17 +328,6 @@ static inline int mgmt_low_energy(uint32_t settings)
 	return (settings & MGMT_SETTING_LE) != 0;
 }
 
-static int mode_changed(uint32_t s1, uint32_t s2)
-{
-	if (mgmt_connectable(s1) != mgmt_connectable(s2))
-		return 1;
-
-	if (mgmt_discoverable(s1) != mgmt_discoverable(s2))
-		return 1;
-
-	return 0;
-}
-
 static void update_settings(struct btd_adapter *adapter, uint32_t settings)
 {
 	struct controller_info *info;
@@ -350,12 +339,9 @@ static void update_settings(struct btd_adapter *adapter, uint32_t settings)
 
 	info = &controllers[index];
 
-	if (mode_changed(settings, info->current_settings))
-		adapter_mode_changed(adapter, mgmt_connectable(settings),
-						mgmt_discoverable(settings));
-
-	if (mgmt_pairable(settings) != mgmt_pairable(info->current_settings))
-		btd_adapter_pairable_changed(adapter, mgmt_pairable(settings));
+	adapter_update_connectable(adapter, mgmt_connectable(settings));
+	adapter_update_discoverable(adapter, mgmt_discoverable(settings));
+	adapter_update_pairable(adapter, mgmt_pairable(settings));
 
 	if (mgmt_ssp(info->supported_settings) && !mgmt_ssp(settings))
 		mgmt_set_ssp(index, TRUE);