Releases: awslabs/aws-c-mqtt
Releases · awslabs/aws-c-mqtt
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.
params added to aws_mqtt_client_publish_received_fn()
- API CHANGE:
dup
,qos
, andretain
, params added toaws_mqtt_client_publish_received_fn()
Symbol exports and some in-progress ffeatures
- Symbol export fixes
- some in-progress mqtt features
Update to new host resolver creation interface
- updates tests to use the new default host resolver creation function
Swtiching to Disconnect before callback
- Before invoking callback like on_completed/on_disconnected, the state should be switched to disconnected., so that user can call functions from callback as they want