|
Azure SDK for Embedded C
|
az_iot_provisioning_client_get_request_payload() is deprecated in favor of az_iot_provisioning_client_register_get_request_payload(). The new API requires an initialized az_iot_provisioning_client_payload_options structure (using az_iot_provisioning_client_payload_options_default()).az_json_string_unescape() function signature to accept az_span as the destination.az_json.h to unescape JSON string tokens within an az_span using the az_json_string_unescape() API.az_http_policy_retry.c.az_storage_blobs.h, which included some beta APIs for Azure Blob Storage such as az_storage_blobs_blob_client().Thank you to our developer community members who helped to make Azure SDK for C better with their contributions to this release:
az_http_response_get_status_code() convenience function to get HTTP status code from requests.az_curl CMake dependency propagation on libcurl.az_iot_provisioning_client_get_request_payload() to create MQTT payload bodies during Device Provisioning.azure/iot/az_iot_hub_client_properties.h.az_json_writer_append_json_text() by taking into account the required buffer space for commas. (A community contribution, courtesy of hwmaier)Thank you to our developer community members who helped to make Azure SDK for C better with their contributions to this release:
az_span, available from the azure/core/az_base64.h header.az::iot::hub CMake target has been updated. The APIs can be found in the header files: az_iot_hub_client.h and az_iot_hub_client_properties.h.az_iot_provisioning_client_parse_received_topic_and_payload() to require topic and payload minimum size of 1 instead of 0.az_iot_message_properties_init() to not allow written_length larger than the passed span.az_iot_pnp_client.h, which included some beta APIs related to IoT Plug and Play such as az_iot_pnp_client().az_json_writer_append_json_text() appends a comma between elements of a JSON array.az_iot_message_properties_next() when the buffer in which the properties were kept was bigger than the length of characters in the buffer.az_iot_hub_client_c2d_parse_received_topic().az_log_classification_filter_fn callback function type along with a setter az_log_set_classification_filter_callback(), allowing the caller to filter log messages.az_storage_blobs.h, including APIs related to storage service such as az_storage_blobs_blob_client_init() and az_storage_blobs_blob_upload(), and types such as az_storage_blobs_blob_client and az_storage_blobs_blob_client_options.az_iot_provisioning_client_register_response from registration_result to registration_state.operation_status in az_iot_provisioning_client_register_response from az_span to az_iot_provisioning_client_operation_status enum.az_iot_provisioning_client_parse_operation_status() from az_iot_provisioning_client.h.az_iot_hub_client_twin_response_type enum names:AZ_IOT_CLIENT_TWIN_RESPONSE_TYPE_GET to AZ_IOT_HUB_CLIENT_TWIN_RESPONSE_TYPE_GETAZ_IOT_CLIENT_TWIN_RESPONSE_TYPE_DESIRED_PROPERTIES to AZ_IOT_HUB_CLIENT_TWIN_RESPONSE_TYPE_DESIRED_PROPERTIESAZ_IOT_CLIENT_TWIN_RESPONSE_TYPE_REPORTED_PROPERTIES to AZ_IOT_HUB_CLIENT_TWIN_RESPONSE_TYPE_REPORTED_PROPERTIESaz_platform_clock_msec(), and az_platform_sleep_msec() return az_result, which is AZ_ERROR_DEPENDENCY_NOT_PROVIDED when az_noplatform implementation is used.az_result.h to az_iot_common.h:AZ_ERROR_IOT_TOPIC_NO_MATCHAZ_ERROR_IOT_END_OF_PROPERTIESaz_log.h to az_iot_common.h:AZ_LOG_MQTT_RECEIVED_TOPICAZ_LOG_MQTT_RECEIVED_PAYLOADAZ_LOG_IOT_RETRYAZ_LOG_IOT_SAS_TOKENAZ_LOG_IOT_AZURERTOSAZ_LOG_END_OF_LIST log classification and az_log_set_classifications() from az_log.h.az_log_set_callback() to az_log_set_message_callback().AZ_HTTP_STATUS_CODE_END_OF_LIST HTTP status code and status_codes field from az_http_policy_retry_options.{ 0 }.az_json_writer_append_json_text() to support appending existing JSON with the JSON writer.az_iot_common.h.AZ_ERROR_HTTP_END_OF_HEADERS to designate the end of the headers iterated over by az_http_response_get_next_header().AZ_ERROR_IOT_END_OF_PROPERTIES to designate the end of the properties iterated over by az_iot_message_properties_next().AZ_IOT_MESSAGE_PROPERTIES_USER_ID and AZ_IOT_MESSAGE_PROPERTIES_CREATION_TIME helper macros.az_result value AZ_ERROR_DEPENDENCY_NOT_PROVIDED which is returned by the HTTP adapter.az_iot_hub_client_properties to az_iot_message_properties and move it from az_iot_hub_client.h to az_iot_common.h.az_pair, and its usage from az_http_request_append_header(), az_http_response_get_next_header(), and az_iot_message_properties_next() in favor of individual name and value az_span parameters.az_credential_client_secret structure, and az_credential_client_secret_init() function.az_platform_atomic_compare_exchange() from platform.az_result.h, rename az_failed() to az_result_failed() and az_succeeded() to az_result_succeeded().az_iot_is_success_status() renamed to az_iot_status_succeeded().az_iot_is_retriable_status() renamed to az_iot_status_retriable().az_iot_retry_calc_delay() renamed to az_iot_calculate_retry_delay().az_iot_hub_client_sas_get_password() parameter token_expiration_epoch_time moved to second parameter.az_iot_provisioning_client_init() parameter global_device_endpoint renamed to global_device_hostname.az_iot_provisioning_client_query_status_get_publish_topic() now accepts the operation_id from the register_response as the second parameter instead of the whole az_iot_provisioning_client_register_response struct.AZ_SPAN_NULL to AZ_SPAN_EMPTY.az_result value AZ_ERROR_INSUFFICIENT_SPAN_SIZE to AZ_ERROR_NOT_ENOUGH_SPACE.AZ_RETURN_IF_FAILED() and AZ_RETURN_IF_NOT_ENOUGH_SIZE() from az_result.h.NULL pointers to az_context APIs and update documentation.AZ_HUB_CLIENT_DEFAULT_MQTT_TELEMETRY_DUPLICATE and AZ_HUB_CLIENT_DEFAULT_MQTT_TELEMETRY_RETAIN named constants from az_iot_hub_client.h.az_span_dtoa() and az_span_atod().az_span.h:az_span_init() is renamed to az_span_create().az_span_from_str() is renamed to az_span_create_from_str().az_pair_from_str().az_context:key and value are const.az_context_with_expiration() is renamed to az_context_create_with_expiration().az_context_with_value() is renamed to az_context_create_with_value().az_context_app is renamed to az_context_application.az_credential_client_secret_init() now takes fourth parameter, authority.az_http_policy_retry_options:status_codes now should be terminated by AZ_HTTP_STATUS_CODE_END_OF_LIST.max_retries is now int32_t instead of int16_t.az_config.h:AZ_HTTP_REQUEST_URL_BUF_SIZE renamed to AZ_HTTP_REQUEST_URL_BUFFER_SIZE.AZ_HTTP_REQUEST_BODY_BUF_SIZE renamed to AZ_HTTP_REQUEST_BODY_BUFFER_SIZE.AZ_LOG_MSG_BUF_SIZE renamed to AZ_LOG_MESSAGE_BUFFER_SIZE.az_result:AZ_ERROR_HTTP_PLATFORM renamed to AZ_ERROR_HTTP_ADAPTER.AZ_ERROR_EOF renamed to AZ_ERROR_UNEXPECTED_END.AZ_CONTINUE.az_storage_blobs_blob_client:retry field renamed to retry_options in az_storage_blobs_blob_client_options.az_context* context parameter from az_storage_blobs_blob_upload() into a public field on az_storage_blobs_blob_upload_options.az_json_writer:az_json_writer_get_json() is renamed to az_json_writer_get_bytes_used_in_destination().isfinite() since some embedded platforms don't have it.sscanf only to double parsing, using a custom implementation for {u}int{32|64} parsing because of incompatibility with sscanf format and the GCC newlib-nano implementation.az_http_request and related APIs to get URL, body, and headers, public.az_result values:az_result value AZ_ERROR_PARSER_UNEXPECTED_CHAR to AZ_ERROR_UNEXPECTED_CHAR.az_result error codes: AZ_ERROR_JSON_STRING_END, AZ_ERROR_JSON_POINTER_TOKEN_END, and AZ_ERROR_MUTEX.az_http_response_write_span to az_http_response_append.apply_credential into an HTTP policy.Initial release. Please see the README for more information.
1.8.20