Releases: awslabs/aws-c-mqtt
Releases · awslabs/aws-c-mqtt
Stability fix
- Fixes a crash due to a race condition in the mqtt connection logic
Allow for null on-message callbacks in subscribe
- Fixes a crash when the on-message callback is null for a subscription
- Updates the public API documentation with some missing parameters and annotations as to what parameters can be null
Data race fixes
- Fixes several data races related to the outstanding requests table and a request's timeout task.
Fix non-threadsafe hash-table accesses (take 2)
v0.7.5 fix test function (#190)
Fix non-threadsafe hash-table accesses
Fix unsafe hash-table accesses (#189) Fact: It's not safe to mutate aws_hash_table while holding an aws_hash_element. Fact: `outstanding_requests_table` is accessed by multiple threads. We always hold a lock while accessing it. Bug: There were several places where we release the lock, but continue to hold an aws_hash_element we got from a find() call. Once the lock is released another thread can mutate the `outstanding_requests_table`, leading to undefined behavior when the aws_hash_element is accessed again.
Direct mqtt through http proxy
- Adds support for establishing direct mqtt connections through an http proxy
publish payload
- We now keep a deep copy of the publish payload. User don't need to keep the payload alive for the whole process.
Proxy refactor
- Companion release to the new proxy systems in aws-c-http v0.6.2
Timeout configuration for requests
- API CHANGE: Added
protocol_operation_timeout_ms
toaws_mqtt_connection_options
, which will be applied to timeout when waiting for the response to some operation (PUBLISH QoS>0 and UNSUBSCRIBE) requires response by protocol.
New managed thread API
Convert to new managed thread system for threads that cannot be reliably explicitly joined.