From 678f9fec88c625b9cf19d57bbfc561e549f2303c Mon Sep 17 00:00:00 2001 From: oakamil Date: Sat, 31 Jan 2026 14:11:24 -0800 Subject: [PATCH 1/2] Set the Bluetooth name to match default WiFi AP --- server/src/bonding_helper.rs | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/server/src/bonding_helper.rs b/server/src/bonding_helper.rs index 2c6d340..1c751b4 100644 --- a/server/src/bonding_helper.rs +++ b/server/src/bonding_helper.rs @@ -7,18 +7,35 @@ use bluer::{ agent::{Agent, ReqResult, RequestConfirmation}, Address, Session, }; -use log::info; +use log::{info, warn}; use tokio::{sync::mpsc, time::timeout}; +const BT_NAME_PREFIX: &str = "cedar-"; + pub struct BluetoothDevice { pub name: String, pub address: String, } -pub async fn get_adapter_alias() -> Result> { +pub async fn get_adapter_alias( + serial: &str, +) -> Result> { let session = Session::new().await?; let adapter = session.default_adapter().await?; - let alias = adapter.alias().await?; + let mut alias = adapter.alias().await?; + let expected_alias = generate_bluetooth_name(serial); + if alias != expected_alias { + info!("Updating Bluetooth alias"); + match adapter.set_alias(expected_alias.clone()).await { + Ok(_) => { + alias = expected_alias.to_string(); + } + Err(e) => { + warn!("Unable to update alias: {:?}", e); + } + } + } + info!("Current device alias: {}", alias); Ok(alias) } @@ -114,4 +131,12 @@ pub async fn get_bonded_devices( }); } Ok(result) -} \ No newline at end of file +} + +fn generate_bluetooth_name(serial: &str) -> String { + if serial.len() < 3 { + warn!("Unexpected length for serial number: {}", serial); + return "cedar".to_string(); + } + format!("{}{}", BT_NAME_PREFIX, &serial[serial.len() - 3..]) +} From dd95d6ae55b1d298c0f7b184ff942352f6dcc1b8 Mon Sep 17 00:00:00 2001 From: Omair Kamil Date: Sat, 31 Jan 2026 22:42:39 +0000 Subject: [PATCH 2/2] Add required change in cedar_server.rs. --- server/src/cedar_server.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/cedar_server.rs b/server/src/cedar_server.rs index 443faad..447f96f 100644 --- a/server/src/cedar_server.rs +++ b/server/src/cedar_server.rs @@ -1527,7 +1527,7 @@ impl Cedar for MyCedar { &self, _request: tonic::Request, ) -> Result, tonic::Status> { - let bt_name = match get_adapter_alias().await { + let bt_name = match get_adapter_alias(&self.serial_number).await { Ok(name) => name, Err(e) => { warn!("Unable to get Bluetooth name: {}", e);