fix: initialize mqtt version from create options instead of assuming #257
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.
The following circumstances lead to an error when calling
client.try_publish:This fails because the Rust side doesn't know the correct MQTT version in this case. It assumes
MQTT_VERSION_DEFAULTand ends up using the wrong callback fields when callingMQTTAsync_sendMessage. The C implementation catches this and returns aMQTTASYNC_BAD_MQTT_OPTIONerror.I'm not sure if there's a good reason
InnerAsyncClientassumesMQTT_VERSION_DEFAULTinstead of copying the version from the create options, but as far I can tell that's the solution to this problem.