fix(bluez): forward display_passkey, display_pin_code, and request_authorization agent messages
These three Agent1 D-Bus methods were stubs that returned Ok(()) without forwarding events through the message channel. This prevented consumers from receiving passkey/PIN display requests during Bluetooth keyboard pairing. Now all three methods send their respective Message variants through the channel, matching the existing pattern used by request_confirmation, request_passkey, and request_pin_code.
This commit is contained in:
parent
507e342c21
commit
eed01dd360
1 changed files with 29 additions and 1 deletions
|
|
@ -122,6 +122,15 @@ impl Agent {
|
||||||
) -> zbus::fdo::Result<()> {
|
) -> zbus::fdo::Result<()> {
|
||||||
tracing::debug!(?device, passkey, entered, "display_passkey");
|
tracing::debug!(?device, passkey, entered, "display_passkey");
|
||||||
|
|
||||||
|
_ = self
|
||||||
|
.message_sender
|
||||||
|
.send(Message::DisplayPasskey {
|
||||||
|
device,
|
||||||
|
passkey,
|
||||||
|
entered,
|
||||||
|
})
|
||||||
|
.await;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -150,6 +159,14 @@ impl Agent {
|
||||||
) -> zbus::fdo::Result<()> {
|
) -> zbus::fdo::Result<()> {
|
||||||
tracing::debug!(?device, pin_code, "display_pin_code");
|
tracing::debug!(?device, pin_code, "display_pin_code");
|
||||||
|
|
||||||
|
_ = self
|
||||||
|
.message_sender
|
||||||
|
.send(Message::DisplayPinCode {
|
||||||
|
device,
|
||||||
|
pincode: pin_code,
|
||||||
|
})
|
||||||
|
.await;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -173,7 +190,18 @@ impl Agent {
|
||||||
async fn request_authorization(&mut self, device: OwnedObjectPath) -> zbus::fdo::Result<()> {
|
async fn request_authorization(&mut self, device: OwnedObjectPath) -> zbus::fdo::Result<()> {
|
||||||
tracing::debug!(?device, "request_authorization");
|
tracing::debug!(?device, "request_authorization");
|
||||||
|
|
||||||
Ok(())
|
let (response, response_rx) = oneshot::channel::<bool>();
|
||||||
|
|
||||||
|
_ = self
|
||||||
|
.message_sender
|
||||||
|
.send(Message::RequestAuthorization { device, response })
|
||||||
|
.await;
|
||||||
|
|
||||||
|
match response_rx.await {
|
||||||
|
Ok(true) => Ok(()),
|
||||||
|
Ok(false) => Err(zbus::fdo::Error::Failed("cancelled".to_string())),
|
||||||
|
Err(why) => Err(zbus::fdo::Error::Failed(why.to_string())),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// This method gets called when the service daemon
|
/// This method gets called when the service daemon
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue