-
Notifications
You must be signed in to change notification settings - Fork 79
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
pandora: implement L2CAP service #322
base: main
Are you sure you want to change the base?
Conversation
I really doubt whether Bumble should have such a fine-controlled interface. There is actually no demand to make such an almighty interface... |
The issue I'm trying to solve is that we want waiting for incoming connections to be reproducible, while right now it depends on good timing between the link connections and the channel connection request. From a DUT point of view, it's quite hard to make those assumptions and it's almost impossible to implement the Wait API for Fluoride, but from the REF perspective we need maximum control and reproducibility. Other solutions could be to:
Both solutions work but add complexity to the APIs instead of the implementation |
Can we simply add an |
3d1d4f0
to
9dbd2d4
Compare
In order to avoid any breaking changes this re-impl current APIs with the exact same behavior. The previous impl was preventing one to defer the response to an l2cap channel connection request, both for BR/EDR basic channels and LE credit based ones. This commit change this to spawn a task on every channel incoming connection request, then all registered listeners are given a chance to accept it through a `asyncio.Future`. After a bit of delay, if none had accepted it, the connection is automatically rejected.
9dbd2d4
to
db15895
Compare
Co-authored-by: Josh Wu <[email protected]>
db15895
to
412fd0f
Compare
This is a proposed alternative to #320. |
These features make Bumble over complicated. In fact, if some scenarios require a very complicated control like timing, overwriting the entire L2CAP layer inside the usage is simpler since in Python it's very easy to achieve this. |
No description provided.