Fix MTU negotiation logic. Resolves notification data truncation.#510
Open
retsyx wants to merge 5 commits intoIanHarvey:masterfrom
Open
Fix MTU negotiation logic. Resolves notification data truncation.#510retsyx wants to merge 5 commits intoIanHarvey:masterfrom
retsyx wants to merge 5 commits intoIanHarvey:masterfrom
Conversation
MTU for client and server can be different. When we negotiate MTU, don't use the returned server's MTU for our client's MTU. Instead, set our MTU, notify the server, and be done.
A random address may be used when pairing to a peripheral. For later reference, the public address needs to be known. Until this change, there was no way to know the public address from the information available when performing the pairing. The kernel returns the public address at pair completion, and bluepy now propogates it to the caller.
* Replacing Bluez-5.47 sources with Bluez-5.75 release * Updating BLUEZ_PATH, and files to make in bluepy/Makefile * Rebuilding bluepy/bluez-src.tgz (make -C bluepy bluez-tarfile)
Bondable/pairable controls if bonding is enabled when pairing with a device. If it is not set when pairing, some devices will refuse to pair with an insufficient authentication error.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
MTU for client and server can be different. When we negotiate MTU, don't use the returned server's MTU for our client's MTU. Instead, set our MTU, notify the server, and be done.
The server correctly uses our max advertised MTU when sending us data. However, bluepy-helper MTU logic used the minimum of the advertised client and server MTUs to set the local MTU. So when the server advertised a smaller MTU, bluepy-helper truncated notification data that was longer than the server's smaller MTU.