- [#5589] Fix possible endless loop while polling curl socket. (A community contribution, courtesy of CurtizJ)
- Updated JSON library to 3.11.3.
- [#5622] Documentation fix for building the SDK with specific OpenSSL version. (A community contribution, courtesy of ByteYue)
- [#5766] Add missing include. (A community contribution, courtesy of rschu1ze)
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- [#5589] Fix possible endless loop while polling curl socket. (A community contribution, courtesy of CurtizJ)
- [#5622] Documentation fix for building the SDK with specific OpenSSL version. (A community contribution, courtesy of ByteYue)
- [#5515] Add a
ShouldRetryvirtual method to the retry policy to enable customization of service-specific retry logic.
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- [#5450] Fixed libcurl connection pool to use
Connectionresponse header values.
- [#5450] Fixed libcurl connection pool to use
Connectionresponse header values.
- [#5450] Reverted libcurl connection pool to use more conservative caching strategy.
- [#4352] Fixed compilation error on Visual Studio 2017. (A community contribution, courtesy of morten-ofstad)
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- Morten Ofstad (GitHub)
- [5244] WinHTTP transport not closing correctly in case of a request timeout.
- Move the connection back to the connection pool when HTTP error 404 was received. This may improve the performance of a multithreaded application when libcurl transport adapter is being used. (A community contribution, courtesy of mchelnokov)
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- Mykhailo Chelnokov (GitHub)
- [#5154] WinHTTP Transport logging (and exception strings) have dangling periods making it harder to read.
- Improved log messages for WinHTTP Transport to help diagnose WinHTTP state machine related issues.
- Added 'OPTIONS' HTTP method to
Azure::Core::Http::HttpMethodenum. - Added TLS 1.3 support to WinHTTP transport.
- Environment Log Level Listener now logs the ThreadID for the thread originating the trace.
- [#4983] Added support for setting
CURLOPT_CAPATHlibcurl option on Linux. (A community contribution, courtesy of phoebusm)
- [#5172]
Azure::Nullable::Emplace()does not setHasValue()totrue. - [#5130]
Url::AppendPath()andUrl::SetPath()may end up with a double slash at the beginning of a path. - [#5007] Some versions of GCC no longer include stdint.h in cstdint.
- [[#4756]] (Azure#4756)
BearerTokenAuthenticationPolicynow uses shared mutex lock for read operations.
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- Phoebus Mak (GitHub)
- Added TLS 1.3 support to WinHTTP transport.
- Environment Log Level Listener now logs the ThreadID for the thread originating the trace.
- [#5007] Some versions of GCC no longer include stdint.h in cstdint.
- [#4983] Added support for setting
CURLOPT_CAPATHlibcurl option on Linux. (A community contribution, courtesy of phoebusm)
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- Phoebus Mak (GitHub)
- Concurrency issues in
Azure::Core::Diagnostics::_internal::Log::Streamhave been fixed.
- SDK consumption documentation improvement. (A community contribution, courtesy of kou)
- Fixed GCC 13 compilation error. (A community contribution, courtesy of adamdebreceni)
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- [#4792] Only support CURL's root cert validation when CURL version is >= 7.77.0.
- [#4662]
Azure::Core::Operation<T>::GetRawResponseInternal()is now deprecated and no longer requires an override.
- Empty diagnostic messages will no longer be generated.
- Added
Azure::Core::Uuid::AsArray()andAzure::Core::Uuid::CreateFromArray()to enable reading or writing from an existing UUID. This is useful when the UUID was generated outside the Azure SDK, or needs to be used from a component outside the Azure SDK.
- [#3964] Ensuring some Azure SDK types have the expected default operations. (A community contribution, courtesy of jnyfah)
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- Jennifer Chukwu (GitHub)
- Added
Azure::Core::Uuid::AsArray()andAzure::Core::Uuid::CreateFromArray()to enable reading or writing from an existing UUID. This is useful when the UUID was generated outside the Azure SDK, or needs to be used from a component outside the Azure SDK.
- Added the ability to ignore invalid certificate common name for TLS connections in WinHTTP transport.
- Added
DisableTlsCertificateValidationinTransportOptions. - Added
TokenCredential::GetCredentialName()to be utilized in diagnostic messages. If you have any custom implementations ofTokenCredential, it is recommended to pass the name of your credential toTokenCredentialconstructor. The old parameterless constructor is deprecated. - Added support for challenge-based and multi-tenant authentication.
- Fixed the UUID generation so the variant is RFC 4122 conforming.
- [#4352] Fixed compilation error on Visual Studio 2017. (A community contribution, courtesy of jorgen)
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- Jorgen Lind (GitHub)
- [#4490] Fixed WinHTTP memory leak during failed requests.
- Added the ability to ignore invalid certificate common name for TLS connections in WinHTTP transport.
- Added
DisableTlsCertificateValidationinTransportOptions. - Added
TokenCredential::GetCredentialName()to be utilized in diagnostic messages. If you have any custom implementations ofTokenCredential, it is recommended to pass the name of your credential toTokenCredentialconstructor. The old parameterless constructor is deprecated. - Added support for challenge-based and multi-tenant authentication.
- [#4352] Fixed compilation error on Visual Studio 2017. (A community contribution, courtesy of jorgen)
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- Jorgen Lind (GitHub)
- [#4213] Fixed a bug where
Hostrequest header is not set for non-default port (80, 443). - [#4443] Fixed potentially high CPU usage on Windows.
- Libcurl transport doesn't add
Content-Lengthrequest header for GET/HEAD/DELETE requests anymore.
- Added support for parsing space character in place of 'T' in RFC3339 DateTimes.
- Added support for HTTP proxy servers, both unauthenticated and with basic authentication.
- Added universal support for several TLS options:
- Added the ability to set the expected TLS root certificate for TLS connection (useful if a proxy server uses a TLS certificate that is not chained to a known root).
- Added the ability to enable TLS certificate revocation list checks (off by default).
- For libcurl only: Allow TLS connection to succeed if CRL retrieval fails.
- NOTE: This change only applies if libcurl is built using the OpenSSL crypto backend. It does NOT apply if libcurl uses the schannel (Windows default) or SecureTransport (macOS/iOS default).
-
Changed the name of several distributed tracing HTTP span attributes:
requestIdis renamed toaz.client_request_idserviceRequestIdis renamed toaz.service_request_id
-
Bearer token authentication will not work for endpoint URL protocol schemes other than
"https". This ensures token security and is consistent with the Azure SDKs for other languages. -
Removed
noexceptspecification fromAzure::DateTime::clock::now(). -
Updated retry policy timeouts to conform to Azure guidelines.
- The default delay between retries is changed from 4 seconds to 800ms.
- The maximum retry delay is changed from 2 minutes to 60 seconds (one minute).
If the original behavior is desired, customers can adjust these timeouts by changing the
RetryDelayandMaxRetryDelayfields in theRetryOptionsstructure.
- Fixed bug in WinHTTP client which caused the
IgnoreUnknownCertificateAuthorityandEnableCertificateRevocationListCheckfields to be ignored if they were passed in fromTransportOptions. - [#4206] Fixed connectivity issues in libcurl HTTP transport which can occur if a TCP connection is dropped prematurely. (A community contribution, courtesy of ahojnnes)
- Update distributed tracing attributes to align with current Azure Distributed Tracing Conventions attributes and names.
- Added the ability to consume version 1.1.1n of OpenSSL.
- Added support for Identity token caching, and for configuring token refresh offset in
BearerTokenAuthenticationPolicy. - Improved cancellation support for WinHTTP transport.
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- Johannes Schonberger (GitHub)
- Added support for parsing space character in place of 'T' in RFC3339 DateTimes.
- Bearer token authentication will not work for endpoint URL protocol schemes other than
"https". This ensures token security and is consistent with the Azure SDKs for other languages. - Removed
noexceptspecification fromAzure::DateTime::clock::now().
- Added the ability to consume version 1.1.1n of OpenSSL.
- Added support for Identity token caching, and for configuring token refresh offset in
BearerTokenAuthenticationPolicy. - Improved cancellation support for WinHTTP transport.
- Added support for HTTP proxy servers, both unauthenticated and with Plain authentication.
- Added universal support for several TLS options:
- Added the ability to set the expected TLS root certificate for TLS connection (useful if a proxy server uses a TLS certificate that is not chained to a known root).
- Added the ability to enable TLS certificate revocation list checks (off by default).
- For libcurl only: Allow TLS connection to succeed if CRL retrieval fails.
- NOTE: This change only applies if libcurl is built using the OpenSSL crypto backend. It does NOT apply if libcurl uses the schannel (Windows default) or SecureTransport (macOS/iOS default).
-
Updated retry policy timeouts to conform to Azure guidelines.
- The default delay between retries is changed from 4 seconds to 800ms.
- The maximum retry delay is changed from 2 minutes to 60 seconds (one minute).
If the original behavior is desired, customers can adjust these timeouts by changing the
RetryDelayandMaxRetryDelayfields in theRetryOptionsstructure.
- WinHTTP Transport Adapter: Fixed missing reason phrase handling for HTTP/2 responses.
- [#3794] Fix memory leak in
CurlTransport. - [#3692] Interrupted poll calls cause spurious HTTP request failures. (A community contribution, courtesy of johnwheffner)
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- John Heffner (GitHub)
- Added prototypes and initial service support for Distributed Tracing.
- Added prototypes and initial service support for Distributed Tracing.
- Removed
noexceptspecification fromAzure::Core::Context::IsCancelled().
- Add
Azure::Core::Http::Requestconstructor overload to support payload and non-buffered response.
- [#3537] Updated field type
CurlTransportOptions.Proxyfromstd::stringtoAzure::Nullable<std::string>. This allows libcurl to ignore the proxy settings from the environment when the string is empty. - [#3548], [#1098] Improve performance of the Http transport on Windows by reusing the same session handle across all requests.
- [#3581] Update log level in retry policy from warning to informational.
- Updated the MD5 Hash implementation to work on top of OpenSSL 3.0. (A community contribution, courtesy of jepio)
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- Jeremi Piotrowski (GitHub)
- When a
RequestFailedExceptionexception is thrown, thewhat()method now includes information about the HTTP request which failed. - Adding option
WinHttpTransportOptions.IgnoreUnknownCertificateAuthority. It can be used to disable verifying server certificate for theWinHttpTransport.
- Enforce TLS 1.2 or greater for
CurlTransportandWinHttpTransport.
- Improve output message for
Azure::Core::Http::TransportException.
- Stabilized the beta features and changes.
- Enabled environment-controlled console logging on UWP.
- Removed the
AzureNoReturnPath()function from the global namespace, and deprecated the associated macros, such asAZURE_ASSERTsince they are meant for internal use only. If your code was using theAZURE_ASSERTmacro, consider using the standard library'sassertas an alternative. - Removed the two parameter
RequestFailedExceptionctor, it has no use case and wasn't intended for public use.
- Fixed
Azure::DateTime::Parse()validation if the result is going to exceed9999-12-31T23:59:59.9999999due to time zone, leap second, or fractional digits rounding up adjustments. - [#3224] Fixed intermittent crash on macOS when logging is turned on.
- The
Base64::DecodeAPI will throw astd::runtime_errorexception if presented with invalid inputs.
- Fixed linking error when Azure SDK is being built as DLL.
- Add
NoSignaloption to theCurlTransportAdapter. - Add
ConnectionTimeoutoption to theCurlTransportAdapter.
2848 Update the libcurl transport adapter to work with HTTP/1.1 only.
- Updated
base64implementation to remove external dependency. - Updated
Uuidimplementation for Linux to remove external dependency.
- 2785 Fix to build on g++ 5.5.
- Fixed compilation error on POSIX platforms where OpenSSL was not available.
- Support CMake version 3.12
- Added
Azure::Core::IO::ProgressBodyStreamtype that wraps an existing BodyStream based type stream and reports progress via callback when the stream position is updated.
- 2647 Make the curl transport adapter to check the connection close header.
- 2474 Fix compiling with MSVC and
/analyze. - Make WinHTTP transport adapter to NOT use SSL/TLS for unsecured HTTP connections.
- Updated source code to build with Clang 11. (A community contribution, courtesy of davidchisnall)
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- David Chisnall (GitHub)
- Fixed a memory leak issue in
Base64Encode(). (A community contribution, courtesy of jorgen)
- Made internal-only changes to support the Azure Key Vault client library.
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- Jorgen Lind (GitHub)
- Make
RequestFailedExceptioncopiable so it can be propagated across thread. - By default, add
x-ms-request-idheader to the allow list of headers to log.
- Added
Azure::PagedResponse<T>.
- Added
finalspecifier to classes and structures that are are not expected to be inheritable at the moment. - Removed
Context::GetApplicationContext()in favor of a new static data memberContext::ApplicationContext. - Renamed
Request::IsDownloadViaStream()toShouldBufferResponse(). - Removed the
Azure::Core::Http::Requestctor overload that takes both abodyStreamand abufferedDownloadboolean since it is not useful. - Changed integer size parameters for buffers from
int64_ttosize_tin various places such asAzure::Core::IO::BodyStream::Read()APIs. - Removed the
Azure::Core::Diagnostics::Logger::Listenertypedef.
- Do not re-use a libcurl connection to same host but different port.
- Fixed curl transport issue to avoid crash at exit when curl connection pool cleanup thread is running.
- Ensure uniqueness of
Azure::Core::Uuidon POSIX platforms.
- Modified precondition validation of function arguments to now result in assert failures rather than throwing an exception.
- Remove exposing windows.h header from our public headers.
- Improved performance of the WinHTTP transport layer on Windows for uploading large payloads.
- Added
Azure::Core::Url::GetScheme(). - Added
Azure::Core::Context::TryGetValue(). - Added
Azure::Core::Context::GetDeadline(). - Added
Azure::Core::Credentials::TokenCredentialOptions. - Added useful fields to the
Azure::Core::RequestFailedExceptionclass such asStatusCode,ReasonPhrase, and theRawResponse, for better diagnosis of errors.
- Simplified the
Response<T>API surface to expose two public fields with direct access:T Valueand aunique_ptrto anAzure::Core::Http::RawResponse. - Renamed
Azure::Nullable<T>::GetValue()toValue(). - Removed from
Azure::Core::Http::Request:SetUploadChunkSize().GetHTTPMessagePreBody().GetUploadChunkSize().GetHeadersAsString().
- Changes to
Azure::Core::Http::RawResponse:- Removed
SetHeader(std::string const& header) - Removed
SetHeader(uint8_t const* const first, uint8_t const* const last). - Removed
GetMajorVersion(). - Removed
GetMinorVersion(). - Renamed
GetBodyStream()toExtractBodyStream().
- Removed
- Changes to
Azure::Core::Context:- Removed
Get()andHasKey()in favor of a new methodTryGetValue(). - Changed input parameter type of
WithDeadline()toAzure::DateTime.
- Removed
- Removed
Azure::Core::PackageVersion. - Removed from
Azure::Core::Http::Policiesnamespace:HttpPolicyOrder,TransportPolicy,RetryPolicy,RequestIdPolicy,TelemetryPolicy,BearerTokenAuthenticationPolicy,LogPolicy. - Removed
AppendQueryParameters(),GetUrlWithoutQuery()andGetUrlAuthorityWithScheme()fromAzure::Core::Url. - Changed the
Azure::Core::Http::HttpMethodregular enum into an extensible enum class and removed theHttpMethodToString()helper method. - Introduced
Azure::Core::Context::Keyclass which takes place ofstd::stringused forAzure::Core::Contextkeys previously. - Changed the casing of
SSLin API names toSsl:- Renamed type
Azure::Core::Http::CurlTransportSSLOptionstoCurlTransportSslOptions. - Renamed member
Azure::Core::Http::CurlTransportOptions::SSLOptionstoSslOptions. - Renamed member
Azure::Core::Http::CurlTransportOptions::SSLVerifyPeertoSslVerifyPeer.
- Renamed type
- Moved
Azure::Core::Http::Requestto its own header file fromhttp.hpptoinc/azure/core/http/raw_response.hpp. - Moved
Azure::Core::Http::HttpStatusCodeto its own header file fromhttp.hpptoinc/azure/core/http/http_status_code.hpp.
- Added
HttpPolicyOrderfor adding custom Http policies to SDK clients. - Added
Azure::Core::Operation<T>::GetRawResponse(). - Added
Azure::Core::PackageVersion. - Added support for logging to console when
AZURE_LOG_LEVELenvironment variable is set.
- Changes to
Azure::Corenamespace:- Removed
Response<void>,ValueBase, andContextValue. - Removed
Context::operator[],Get()introduced instead. - Renamed
Uuid::GetUuidString()toToString(). - Changed return type of
Operation<T>::Poll()fromstd::unique_ptr<RawResponse>toRawResponse const&. - Moved
GetApplicationContext()toContext::GetApplicationContext() - Moved the
Base64Encode()andBase64Decode()functions to be static members of aConvertclass. - Moved
Loggingnamespace entities toDiagnostics::Loggerclass. - Moved
AccessToken,TokenCredential, andAuthenticationExceptiontoCredentialsnamespace. - Moved
Contextto be the last parameter for consistency, instead of first in various azure-core types. For example:BodyStream::Read(uint8_t* buffer, int64_t count, Context const& context)BodyStream::ReadToEnd(BodyStream& body, Context const& context)HttpPolicy::Send(Request& request, NextHttpPolicy policy, Context const& context)Operation<T>::PollUntilDone(std::chrono::milliseconds period, Context& context)TokenCredential::GetToken(Http::TokenRequestOptions const& tokenRequestOptions, Context const& context)
- Moved from
Azure::CoretoAzurenamespace:Response<T>,ETag, andNullable<T>.- Split
RequestConditionsintoMatchConditionsandModifiedConditions. - Renamed
DateTime::GetString()toToString(), and removedDateTime::GetRfc3339String().
- Removed
- Changes to
Azure::Core::Httpnamespace:- Removed
HttpPipeline,TransportKind,NullBodyStream, andLimitBodyStream. - Removed
Request::StartTry(). - Removed
InvalidHeaderExceptionand throwstd::invalid_argumentif the user provides invalid header arguments. - Renamed
CurlTransportSSLOptions::NoRevoketoEnableCertificateRevocationListCheck. - Renamed
RangetoHttpRange. - Renamed
TokenRequestOptionstoTokenRequestContext, and moved it toAzure::Core::Credentialsnamespace. - Moved
UrltoAzure::Corenamespace. RequestandRawResponse:- Renamed
AddHeader()toSetHeader(). - Introduced
Azure::Core::CaseInsensitiveMapwhich is now used to store headers.
- Renamed
BodyStreamand the types that derive from it:- Moved to
Azure::Core::IOnamespace. - Changed the static methods
BodyStream::ReadToCount()andBodyStream::ReadToEnd()into instance methods. - Changed the constructor of
FileBodyStreamto accept a file name directly and take ownership of opening/closing the file, instead of accepting a file descriptor, offset, and length.
- Moved to
- HTTP policies and their options:
- Moved to
Policiesnamespace. - Renamed
TransportPolicyOptionstoTransportOptions. - Renamed
TelemetryPolicyOptionstoTelemetryOptions. - Changed type of
RetryOptions::StatusCodesfromstd::vectortostd::set. - Renamed
LoggingPolicytoLogPolicy, and introducedLogOptionsas mandatory parameter for the constructor.
- Moved to
- Removed
- Moved header files:
- Renamed
azure/core/credentials.hpptoazure/core/credentials/credentials.hpp. - Renamed
azure/core/logger.hpptoazure/core/diagnostics/logger.hpp. - Renamed
azure/core/http/body_stream.hpptoazure/core/io/body_stream.hpp. - Renamed
azure/core/http/policy.hpptoazure/core/http/policies/policy.hpp. - Renamed
azure/core/http/curl/curl.hpptoazure/core/http/curl_transport.hpp. - Renamed
azure/core/http/winhttp/win_http_client.hpptoazure/core/http/win_http_transport.hpp.
- Renamed
- Make sure to rewind the body stream at the start of each request retry attempt, including the first.
- Connection pool resets when all connections are closed.
- Fix
Azure::Contextto supportstd::unique_ptr. - Throw
std::runtime_errorfromResponse<T>::GetRawResponse()if the response was already extracted.
- Added support for HTTP conditional requests
MatchConditionsandRequestConditions. - Added the
Hashbase class and MD5 hashing APIs to theAzure::Core::Cryptographynamespace available fromazure/core/cryptography/hash.hpp.
- Removed
Context::CancelWhen(). - Removed
LogClassificationand related functionality, addedLogLevelinstead.
- Fixed computation of the token expiration time in
BearerTokenAuthenticationPolicy. (A community contribution, courtesy of sjoubert) - Fixed
Retry-AfterHTTP header to be treated as case-insensitive. (A community contribution, courtesy of sjoubert) - Fixed compilation dependency issue for MacOS when consuming the SDK from VcPkg.
- Fixed support for sending requests to endpoints with a custom port within the url on Windows when using the WinHttp transport.
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- Sylvain Joubert (GitHub)
- Added support for HTTP validators
ETag.
- Make
ToLower()andLocaleInvariantCaseInsensitiveEqual()internal by moving them fromAzure::Core::StringstoAzure::Core::Internal::Strings. BearerTokenAuthenticationPolicyconstructor takesTokenRequestOptionsstruct instead of scopes vector.TokenRequestOptionsstruct has scopes vector as data member.TokenCredential::GetToken()takesTokenRequestOptionsinstead of scopes vector.
- Fixed the parsing of the last chunk of a chunked response when using the curl transport adapter.
- Fixed reading the value from
retry-afterheader inRetryPolicy. - Fix link errors when producing a DLL and add UWP compilation support.
- Do not pass a placeholder user-agent string as a fallback when using WinHttp.
- Initialize local variables in implementation to fix warning within release builds on Linux.
- Added a WinHTTP-based
HttpTransportcalledWinHttpTransportand use that as the defaultTransportPolicyOptions.Transporton Windows when sending and receiving requests and responses over the wire. - Added
Rangetype toAzure::Core::Httpnamespace. - Added support for long-running operations with
Operation<T>. - Added support for setting a custom transport adapter by implementing the method
std::shared_ptr<HttpTransport> ::AzureSdkGetCustomHttpTransport(). - Added interoperability between
std::chrono::system_clocktypes andDateTime. - Added default constructor to
DateTimeand support for dates since 0001. - Added Base64 encoding and decoding utility APIs to the
Azure::Corenamespace available fromazure/core/base64.hpp. - Added
Http::Response<void>template specialization. - Added
GetHeadersAsString()on theAzure::Core::Http::Requestclass. - Added a
platform.hppheader file for defining commonly used OS-specific#defineconstants. - Added
IsCancelled()on theAzure::Core::Contextclass.
- Removed
DateTime::operator Duration(),DateTime::Durationtypedef andDateTime::Now(). - Moved
Azure::Core::BearerTokenAuthenticationPolicy, defined inazure/core/credentials.hpptoAzure::Core::Httpnamespace inazure/core/http/policy.hppheader. - Changed type of
Token::ExpiresOntoDateTime. - Renamed exception
OperationCanceledExceptiontoOperationCancelledExceptionandThrowIfCanceled()toThrowIfCancelled()on theContextclass. - Moved
Azure::Core::Version, defined inazure/core/version.hppto theAzure::Core::Detailsnamespace. - Changed
Azure::Core::AuthenticationExceptionto derive fromstd::exceptioninstead ofstd::runtime_error. - Changed the
BodyStream::ReadAPI from being a pure virtual function to non-virtual. - Removed
CurlConnection,CurlConnectionPool,CurlSession, andCurlNetworkConnectionby making headers meant as implementation, private. - Removed option
AllowBeastfromCurlTransportSSLOptionsinCurlTransportOptions. - Changed default option
NoRevokefromCurlTransportSSLOptionsfor theCurlTransportOptionstotrue. This disables the revocation list checking by default.
- Fixed the Curl transport adapter connection pooling when setting options.
- Fixed setting up the default transport adapter.
- Fixed linker error of missing pthread on Linux.
- Initialize class data members to avoid MSVC warning.
- Throw
Azure::Core::Http::TransportExceptionifcurl_easy_init()returns a null handle. (A community contribution, courtesy of ku-sourav)
- Added support for distributing the C++ SDK as a source package via vcpkg.
- Fixed installation error when the SDK is being installed under a non-standard prefix. (A community contribution, courtesy of juchem)
- Fixed linker error when pthread is missing on Linux. (A community contribution, courtesy of lordgamez)
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- Added
strings.hppwithAzure::Core::Strings::LocaleInvariantCaseInsensitiveEqualandAzure::Core::Strings::ToLower. - Added
GetPort()toUrl. - Added
TransportPolicyOptions. - Added
TelemetryPolicyOptions. - Added
RequestFailedExceptionderiving fromstd::runtime_error. - Added
CurlTransportOptionsfor theCurlTransport. - Added
DateTimesupporting dates since 1601. - Added
OperationCanceledException. - Added
EncodeandDecodetoUrl.
- Removed
azure.hpp. - Removed macro
AZURE_UNREFERENCED_PARAMETER. - Bump CMake version from 3.12 to 3.13.
- Bump libcurl version from 7.4 to 7.44.
- Moved
ClientSecretCredentialandEnvironmentCredentialto the Identity library. Urlclass changes:AppendPathnow does not encode the input by default.- Signature updated for
SetHost,SetPathandAppendPath. - Removed
SetFragment. - Renamed
AppendQueriestoAppendQueryParameters. - Renamed
AppendQuerytoAppendQueryParameter. - Renamed
RemoveQuerytoRemoveQueryParameter. - Renamed
GetQuerytoGetQueryParameters.
- Prevent pipeline of length zero to be created.
- Avoid re-using a connection when a request to upload data fails while using the
CurlTransport. - Add entropy to
Uuidgeneration.
- Add high-level and simplified core.hpp file for simpler include experience for customers.
- Add code coverage using gcov with gcc.
- Update SDK-defined exception types to be classes instead of structs.
- Updated
TransportExceptionandInvalidHeaderExceptionto derive fromRequestFailedException. - Vcpkg dependency version updated to 2020.11.
- Make libcurl network requests cancelable by Context::Cancel().
- Validate HTTP headers for invalid characters.
- Calling
Cancel()from context now throwsOperationCanceledException.
- Throw Azure::Http::TransportException if creating new connection fails.
- Response objects store Nullable<T>.
- Switched to a more stable wait on sockets to address connection timeouts.
- Replace
Nullable(const T&)withNullable(T)to avoid extra copy when initialized with an rvalue.
- Improved performance on windows when using libcurl.
- Pinned the version of package dependencies.
- Added NOTICE.txt for 3rd party dependencies.
- Added build instructions for running tests. (A community contribution, courtesy of ku-sourav)
- Updated vcpkg build instructions. (A community contribution, courtesy of ku-sourav)
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
ku-sourav(GitHub)
- Initial release