Releases: Azure/azure-sdk-for-c
Releases · Azure/azure-sdk-for-c
1.1.0-beta.3
1.1.0-beta.3 (2020-12-14)
Bug Fixes
- [#1511] Update
az_iot_pnp_client_property_get_next_component_property()
to only require one JSON reader.
1.1.0-beta.2
1.1.0-beta.2 (2020-11-11)
New Features
- Public preview version of a new set of APIs to simplify the experience using IoT Plug and Play. To consume this new feature, a new CMake target has been added
az::iot::pnp
. The APIs can be found in its header file:az_iot_pnp_client.h
. - New samples showing how to consume the new IoT Plug and Play APIs:
- paho_iot_pnp_component_sample.c
- paho_iot_pnp_sample.c
- paho_iot_pnp_with_provisioning_sample.c
Bug Fixes
- [#1472] Fix
az_iot_message_properties_next()
when the buffer in which the properties were kept was bigger than the length of characters in the buffer.
Other Changes and Improvements
1.1.0-beta.1
1.1.0-beta.1 (2020-10-06)
New Features
- Added an
az_log_classification_filter_fn
callback function type along with a setteraz_log_set_classification_filter_callback()
, allowing the caller to filter log messages.
Bug Fixes
- Fix bounds check while processing incomplete JSON string containing escaped characters to avoid out-of-range access.
- Fix Windows to use /MT when building the CRT and static libraries.
- Fail gracefully on invalid/incomplete HTTP response processing by avoiding reading from size 0 span.
Other Changes and Improvements
- Add precondition check to validate clients are initialized before passed in to public APIs.
- Add high-level and simplified az_core.h and az_iot.h files for simpler include experience for customers.
1.0.0
1.0.0 (2020-09-21)
Breaking Changes
- Removed
az_storage_blobs.h
, including APIs related to storage service such asaz_storage_blobs_blob_client_init()
andaz_storage_blobs_blob_upload()
, and types such asaz_storage_blobs_blob_client
andaz_storage_blobs_blob_client_options
.- These will ship in the upcoming 1.1.0 release and will continue to be available as preview from the following branch: https://github.com/Azure/azure-sdk-for-c/tree/feature/StorageBlobs
- Updated provisioning client struct member name in
az_iot_provisioning_client_register_response
fromregistration_result
toregistration_state
. - Changed
operation_status
inaz_iot_provisioning_client_register_response
fromaz_span
toaz_iot_provisioning_client_operation_status
enum. - Removed
az_iot_provisioning_client_parse_operation_status()
fromaz_iot_provisioning_client.h
. - Renamed
az_iot_hub_client_twin_response_type
enum names:AZ_IOT_CLIENT_TWIN_RESPONSE_TYPE_GET
toAZ_IOT_HUB_CLIENT_TWIN_RESPONSE_TYPE_GET
AZ_IOT_CLIENT_TWIN_RESPONSE_TYPE_DESIRED_PROPERTIES
toAZ_IOT_HUB_CLIENT_TWIN_RESPONSE_TYPE_DESIRED_PROPERTIES
AZ_IOT_CLIENT_TWIN_RESPONSE_TYPE_REPORTED_PROPERTIES
toAZ_IOT_HUB_CLIENT_TWIN_RESPONSE_TYPE_REPORTED_PROPERTIES
- Platform:
az_platform_clock_msec()
, andaz_platform_sleep_msec()
returnaz_result
, which isAZ_ERROR_DEPENDENCY_NOT_PROVIDED
whenaz_noplatform
implementation is used. - Moved these IoT specific result codes from
az_result.h
toaz_iot_common.h
:AZ_ERROR_IOT_TOPIC_NO_MATCH
AZ_ERROR_IOT_END_OF_PROPERTIES
- Moved these IoT specific log classifications from
az_log.h
toaz_iot_common.h
:AZ_LOG_MQTT_RECEIVED_TOPIC
AZ_LOG_MQTT_RECEIVED_PAYLOAD
AZ_LOG_IOT_RETRY
AZ_LOG_IOT_SAS_TOKEN
AZ_LOG_IOT_AZURERTOS
- Removed
AZ_LOG_END_OF_LIST
log classification andaz_log_set_classifications()
fromaz_log.h
. - Renamed
az_log_set_callback()
toaz_log_set_message_callback()
. - Removed
AZ_HTTP_STATUS_CODE_END_OF_LIST
HTTP status code andstatus_codes
field fromaz_http_policy_retry_options
.
Bug Fixes
- Fixed [Pe188] warning from IAR when initializing structs using
{ 0 }
.
1.0.0-preview.5
1.0.0-preview.5 (2020-09-08)
New Features
- Add
az_json_writer_append_json_text()
to support appending existing JSON with the JSON writer. - Add support for system properties for IoT Hub messages to
az_iot_common.h
. - Add new HTTP result named
AZ_ERROR_HTTP_END_OF_HEADERS
to designate the end of the headers iterated over byaz_http_response_get_next_header()
. - Add new IoT result named
AZ_ERROR_IOT_END_OF_PROPERTIES
to designate the end of the properties iterated over byaz_iot_message_properties_next()
. - Add
AZ_IOT_MESSAGE_PROPERTIES_USER_ID
andAZ_IOT_MESSAGE_PROPERTIES_CREATION_TIME
helper macros. - Add new
az_result
valueAZ_ERROR_DEPENDENCY_NOT_PROVIDED
which is returned by the HTTP adapter.
Breaking Changes
- Rename
az_iot_hub_client_properties
toaz_iot_message_properties
and move it fromaz_iot_hub_client.h
toaz_iot_common.h
. - Remove
az_pair
, and its usage fromaz_http_request_append_header()
,az_http_response_get_next_header()
, andaz_iot_message_properties_next()
in favor of individual name and valueaz_span
parameters. - Remove
az_credential_client_secret
structure, andaz_credential_client_secret_init()
function. - Remove
az_platform_atomic_compare_exchange()
from platform. - In
az_result.h
, renameaz_failed()
toaz_result_failed()
andaz_succeeded()
toaz_result_succeeded()
. az_iot_is_success_status()
renamed toaz_iot_status_succeeded()
.az_iot_is_retriable_status()
renamed toaz_iot_status_retriable()
.az_iot_retry_calc_delay()
renamed toaz_iot_calculate_retry_delay()
.az_iot_hub_client_sas_get_password()
parametertoken_expiration_epoch_time
moved to second parameter.az_iot_provisioning_client_init()
parameterglobal_device_endpoint
renamed toglobal_device_hostname
.az_iot_provisioning_client_query_status_get_publish_topic()
now accepts theoperation_id
from theregister_response
as the second parameter instead of the wholeaz_iot_provisioning_client_register_response
struct.- Renamed the macro
AZ_SPAN_NULL
toAZ_SPAN_EMPTY
. - Renamed the
az_result
valueAZ_ERROR_INSUFFICIENT_SPAN_SIZE
toAZ_ERROR_NOT_ENOUGH_SPACE
. - Removed the helper macros
AZ_RETURN_IF_FAILED()
andAZ_RETURN_IF_NOT_ENOUGH_SIZE()
fromaz_result.h
. - Behavioral change to disallow passing
NULL
pointers toaz_context
APIs and update documentation. - Removed
AZ_HUB_CLIENT_DEFAULT_MQTT_TELEMETRY_DUPLICATE
andAZ_HUB_CLIENT_DEFAULT_MQTT_TELEMETRY_RETAIN
named constants fromaz_iot_hub_client.h
.
Bug Fixes
- Fix the strict-aliasing issue in
az_span_dtoa()
andaz_span_atod()
. - Fix the SDK warnings for the release configurations.
- Do not use a shared static scratch buffer for JSON token parsing. Instead use stack space.
Other Changes and Improvements
- Refactor and update IoT samples.
- Optimize the code size for URL encoding and setting HTTP query parameters.
- Add support for building the SDK on ARM (Cortex M4) and adding it to CI.
1.0.0-preview.4
1.0.0-preview.4 (2020-08-10)
New Features
- Support for writing JSON to non-contiguous buffers.
- Support for reading JSON from non-contiguous buffers.
- Add support for national cloud auth URLs.
Breaking Changes
az_span.h
:az_span_init()
is renamed toaz_span_create()
.az_span_from_str()
is renamed toaz_span_create_from_str()
.- Removed
az_pair_from_str()
.
az_context
:key
andvalue
areconst
.az_context_with_expiration()
is renamed toaz_context_create_with_expiration()
.az_context_with_value()
is renamed toaz_context_create_with_value()
.az_context_app
is renamed toaz_context_application
.
az_credential_client_secret_init()
now takes fourth parameter,authority
.az_http_policy_retry_options
:status_codes
now should be terminated byAZ_HTTP_STATUS_CODE_END_OF_LIST
.max_retries
is nowint32_t
instead ofint16_t
.
az_config.h
:AZ_HTTP_REQUEST_URL_BUF_SIZE
renamed toAZ_HTTP_REQUEST_URL_BUFFER_SIZE
.AZ_HTTP_REQUEST_BODY_BUF_SIZE
renamed toAZ_HTTP_REQUEST_BODY_BUFFER_SIZE
.AZ_LOG_MSG_BUF_SIZE
renamed toAZ_LOG_MESSAGE_BUFFER_SIZE
.
az_result
:AZ_ERROR_HTTP_PLATFORM
renamed toAZ_ERROR_HTTP_ADAPTER
.AZ_ERROR_EOF
renamed toAZ_ERROR_UNEXPECTED_END
.- Removed
AZ_CONTINUE
.
az_storage_blobs_blob_client
:retry
field renamed toretry_options
inaz_storage_blobs_blob_client_options
.- Moved
az_context* context
parameter fromaz_storage_blobs_blob_upload()
into a public field onaz_storage_blobs_blob_upload_options
.
az_json_writer
:az_json_writer_get_json()
is renamed toaz_json_writer_get_bytes_used_in_destination()
.
Bug Fixes
- Remove support for non-finite double values while parsing/formatting.
- Use custom, portable implementation of IEEE 754 compliant
isfinite()
since some embedded platforms don't have it. - Limit use of
sscanf
only to double parsing, using a custom implementation for {u}int{32|64} parsing because of incompatibility withsscanf
format and theGCC newlib-nano
implementation.
Other Changes and Improvements
- Made
az_http_request
and related APIs to get URL, body, and headers, public. - Add and update IoT samples, including DPS.
- Add samples for IoT Hub Plug and Play.
azure-sdk-for-c_1.0.0-preview.3
1.0.0-preview.3 (2020-07-20)
- Updated
az_result
values:- Rename
az_result
valueAZ_ERROR_PARSER_UNEXPECTED_CHAR
toAZ_ERROR_UNEXPECTED_CHAR
. - Remove unused
az_result
error codes:AZ_ERROR_JSON_STRING_END
,AZ_ERROR_JSON_POINTER_TOKEN_END
, andAZ_ERROR_MUTEX
.
- Rename
- Add permutations of numeric type parsing and formatting APIs on span - ato[u|i][32|64], atod and the inverse [u|i][32|64]toa, dtoa.
- Updates to the JSON APIs:
- Rename JSON parser/builder APIs to reader/writer.
- Add double parsing and formatting support to JSON reader and JSON writer.
- Redesign JSON reader and JSON token APIs with lazy evaluation of tokens, proper unescaping support, and hardened validation.
- Update samples, README docs along with deep dive video, and VSCode and CMake instructions.
- Add PnP sample for Azure IoT Hub.
- Add log classification for the IoT convenience layer.
- Fixed SAS token generation by URL-encoding the components.
- Rename the http response function
az_http_response_write_span
toaz_http_response_append
. - Add thread safety for client secret credential.
- Transform
apply_credential
into an HTTP policy. - Default behavior for failed preconditions changed to infinite loop instead of thread sleep.
1.0.0-preview.2
1.0.0-preview.2 (2020-05-18)
- Update top-level CMakeLists.txt to only add subdirectory for specified platform.
- Add compilation option to remove all logging from SDK code.
1.0.0-preview.1
Release History
1.0.0-preview.1 (2020-05-12)
Initial release. Please see the README for more information.