Skip to content

fix(linux-rust): Retry L2CAP send on ENOTCONN during BlueZ Handshake#495

Open
Ap0ll02 wants to merge 1 commit intokavishdevar:linux/rustfrom
Ap0ll02:fix/battery-status-aacp
Open

fix(linux-rust): Retry L2CAP send on ENOTCONN during BlueZ Handshake#495
Ap0ll02 wants to merge 1 commit intokavishdevar:linux/rustfrom
Ap0ll02:fix/battery-status-aacp

Conversation

@Ap0ll02
Copy link
Copy Markdown

@Ap0ll02 Ap0ll02 commented Mar 30, 2026

Problem

When BlueZ reports the L2CAP connection as established, the kernel
socket isn't always ready to accept writes yet. The send_thread was
breaking on the first ENOTCONN (os error 107), killing the channel
before the handshake could complete. This caused all subsequent sends
(feature flags, notification request) to fail with "channel closed".

Fix

Retry up to 10 times with 100ms backoff specifically on ENOTCONN
before treating it as a fatal error. Any other error still kills
the thread immediately.

Related to #288

This fix allows the send thread to make 10 attempts to send it's data.
This gives access to seeing the battery status
@white-richard
Copy link
Copy Markdown

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants