Commit Graph

137 Commits

Author SHA1 Message Date
Victor Vazquez
a5ff474118
Http request counter (#1738)
* Add counter to request about the retry number using the Context
2021-03-03 20:51:19 +00:00
Ahson Khan
a55aba01be
Moved BodyStream and its derived types from Azure::Core::Http namespace to Azure::IO, and update headers. (#1733)
* Moved `BodyStream` and its derived types from `Azure::Core::Http`
namespace to `Azure::IO`, and update headers.

* Fix up clang formatting.

* Add missing winhttp bodystream namespace change.

* Update merge conflict related changes.

* Update header paths in includes.
2021-03-01 11:33:26 -08:00
Anton Kolesnyk
ae575b0c08
CaseInsensitiveMap (#1731)
* Add CaseInsensitiveMap<T>

* Drop unneccessary namespace qualification

* Comment working: more accurate description

* GCC and Clang fix (typename specification) + doxy comments for template parameters

* Remove Allocator template parameter - we can add it later if we need it, currently no need to commit to having it there

* Drop <T> template parameter. We can add it later with default value of std::string without breaking change

* Unit test

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-02-26 08:38:01 -08:00
Victor Vazquez
5fdb9f4b5d
Remove null body stream (#1741)
* Remove LimitBodyStream
Move NullBodyStream to internal
2021-02-25 22:37:34 +00:00
Ahson Khan
97b0ccf79b
Make sure to rewind the body stream at the start of each request retry attempt. (#1712)
* Make sure to rewind the body stream at the start of each request retry attempt.

* Add change log entry

* Add request start try unit test
2021-02-22 12:18:34 -08:00
Rick Winter
50efbdb4c0
Add holder for registry handle to ensure cleanup of native resources. (#1711)
Add a holder for the registry key to ensure it is always cleaned up when it goes out of scope.
Exceptions should be caught as const.
2021-02-22 17:48:28 +00:00
Anton Kolesnyk
bf347d24c2
Disable compiler extensions, fix Clang options to have effect, fix warnings (#1615)
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-02-18 19:15:11 -08:00
Victor Vazquez
5f523f7030
update noRevoke (#1678)
* update noRevoke

* use EnableCertificateRevocationListCheck instead of Disable
2021-02-18 02:16:22 +00:00
Victor Vazquez
b41c53509b
Update GetString to ToString (#1677)
* Update GetString to ToString
2021-02-12 22:25:01 +00:00
Anton Kolesnyk
84ffcd7168
Simplify logging (#1568)
Closes #1180.
2021-02-09 04:37:08 +00:00
Ahson Khan
b3497f8c16
Add a Hash base class to Azure::Core and redesign Md5 to derive from it. (#1632)
* Add MD5 hashing APIs to Azure::Core available from azure/core/md5.hpp.

* Add simplified header test for md5 and base64.

* Add changelog entry.

* Remove unnecessary include.

* Address feedback - add back ptr, length APIs.

* Address PR feedback - docs and typo fixes.

* Add a Hash base class and redesign Md5 to derive from it.

* Add test for call to final on empty instance.

* Remove old file which got renamed to hash.hpp.

* Remove md5.hpp file references.

* Address PR feedback - move to crypto, remove virtual, and misc.
2021-02-08 18:31:12 -08:00
Ahson Khan
4d3ecf39e7
Use the port defined in the URL when setting up the transport adapter usage. (#1611)
* Use the port defined in the URL when setting up the transport adapter usage.

* Fix typo when getting the request object.
2021-02-08 16:51:27 -08:00
Ahson Khan
568d4bcc4e
Add MD5 hashing APIs to Azure::Core available from azure/core/md5.hpp. (#1617)
* Add MD5 hashing APIs to Azure::Core available from azure/core/md5.hpp.

* Add simplified header test for md5 and base64.

* Add changelog entry.

* Remove unnecessary include.

* Address feedback - add back ptr, length APIs.

* Address PR feedback - docs and typo fixes.
2021-02-08 15:34:41 -08:00
Sylvain Joubert
2f250f3968
Fix math for bearer token refresh time (#1593) 2021-02-04 03:29:42 -08:00
Anton Kolesnyk
06d66492eb
Add TokenRequestOptions and ClientSecretCredentialOptions (#1527)
* Add GetTokenOptions
2021-02-02 17:09:33 -08:00
Victor Vazquez
c6b919ac2a
release mode test for Linux with test (#1560)
* release mode test for Linux with test

* Fix GCC warning when building in Release configuration

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-02-01 21:43:40 -08:00
Sylvain Joubert
8684be0970
Fix Retry-After header check (#1522)
This failed to be triggered because the response has all its headers as lower case
2021-01-29 12:51:26 -08:00
JinmingHu
a858a77ac0
make defaultNonUrlEncodeChars const (#1502) 2021-01-29 09:55:04 +08:00
Ahson Khan
af844a1272
Do not pass a placeholder user-agent string as a fallback when using WinHttp (#1495)
Verified the behavior is now as expected when telemetry policy is turned off.

**Before:**
![image](https://user-images.githubusercontent.com/6527137/106042018-65d64e00-6091-11eb-8741-c6c42cb028d3.png)

**After:**
![image](https://user-images.githubusercontent.com/6527137/106042157-86060d00-6091-11eb-9699-929128eb6ea1.png)
2021-01-27 20:31:53 +00:00
Rick Winter
453d39c577
Fix const naming in Core to follow Guidelines (#1481)
* Fix grammar in doxygen comments

* Update constants to follow the Guidelines
  Remove 'c_' prefixes
2021-01-27 11:56:30 -08:00
Victor Vazquez
ccccd115f8
Adding missing comments in curl source (#1440)
fixes: #1416
2021-01-26 08:19:09 +00:00
Anton Kolesnyk
15182d5a34
Fix link errors when producing a DLL, add UWP compilation support (#1346) 2021-01-21 16:52:07 -08:00
Victor Vazquez
d5cb9ccec0
revert timeout patch on libcurl (#1412)
Reverting https://github.com/Azure/azure-sdk-for-cpp/pull/1391/files as the patch is still required.

The previous validation was invalid because the current storage pipeline is not testing libcurl transport adapter
2021-01-20 06:50:22 +00:00
Victor Vazquez
3f67c21ba8
Fix the end of chunk parsing (#1403)
While parsing a chunked response with the curl HTTP transport adapter, there was an issue for parsing the last chunk.
As soon as the end of chunk data was found ("0") the adapter was returning and setting the session state as if the transfer was completed.
However, the HTTP RFC for chunked data (https://tools.ietf.org/html/rfc7230#section-4.1) defines that there is a CRLF after the last chunk info.

By not reading the last CRLF from the response, and if the connection was re-used right after reading the last chunk made the next request to get the `CRLF` as the first part for the response, making the parser crash.

The fix in this PR makes sure that when the last chunk is found and parsed, the CRLF is also parsed from the response to make sure that the response data transfer has completed

fixes: #1396
2021-01-20 05:57:45 +00:00
Victor Vazquez
06a6a5628e
Remove libcurl patch for timeout (#1391) 2021-01-19 16:19:37 -08:00
Ahson Khan
c564c02544
Move APIs from Azure::Core::Strings to Azure::Core::Internal since they aren't meant for end users to call. (#1337)
Fixes https://github.com/Azure/azure-sdk-for-cpp/issues/1319

See https://github.com/Azure/azure-sdk-for-cpp/pull/1297#discussion_r554458422 for context.

~There is an open question whether this should be in the Jan or Feb milestone.~ Moved to Feb
2021-01-15 22:02:40 +00:00
Anton Kolesnyk
99a6ec5395
DateTime: better integration with chrono, support year 0001+ (#1320) 2021-01-11 17:40:16 -08:00
Ahson Khan
fb33402844
Remove Base64 encode and decode methods from Azure::Storage and move the string-based helper to Internal. Update storage call sites. (#1298)
Follow up from https://github.com/Azure/azure-sdk-for-cpp/pull/1297 as the second step to fix #1020
2021-01-09 08:12:06 +00:00
Ahson Khan
1efbfb3056
Add Base64 encoding and decoding utility APIs to the Azure::Core namespace available from azure/core/base64.hpp. (#1297)
* Add Base64 encode and decode APIs to Azure::Core (from Azure::Storage).

* Revert changes to crypt.hpp to leave callsite updates for auto-gen
storage component for later.

* Add entry to changelog.

* Add basic unit tests.

* Remove definition of NOMINMAX since it is unnecessary.

* Include missing header from openssl.

* Include missing open ssl buffer header.

* Address feedback around angle brackets, and move implementation into a
namespace block.

* Remove redundant namespace qualifier in the signature.

* Link openssl to azure-core for non-Windows platforms, to fix the MacOS
linking issue.
2021-01-08 21:20:44 -08:00
Rick Winter
36fbcd9cee
Version strings (#1276)
Moves package version strings in the details namespace.
Fixes #1249 

# Pull Request Checklist

Please leverage this checklist as a reminder to address commonly occurring feedback when submitting a pull request to make sure your PR can be reviewed quickly:

See the detailed list in the [contributing guide](https://github.com/Azure/azure-sdk-for-cpp/blob/master/CONTRIBUTING.md#pull-requests).

- [x] [C++ Guidelines](https://azure.github.io/azure-sdk/cpp_introduction.html)
- [x] Doxygen docs
- [x] Unit tests
- [x] No unwanted commits/changes
- [x] Descriptive title/description
  - [x] PR is single purpose
  - [x] Related issue listed
- [x] Comments in source
- [x] No typos
- [x] Update changelog
- [x] Not work-in-progress
- [x] External references or docs updated
- [x] Self review of PR done
- [x] Any breaking changes?
2021-01-07 08:07:46 +00:00
Victor Vazquez
9d9f1e6f4c
remove cancellation check from retry policies (#1196)
* remove cancellation check from retry policies

* Update BodyStream to do cancellation check on Read
2021-01-05 18:38:06 -08:00
Victor Vazquez
e141cf1a6b
Update canceled to cancelled (#1256)
* rename all `canceled` to `cancelled`

* Adding changelog breaking changes
2021-01-05 16:28:05 -08:00
Kan Tang
fb869f10af
Resolves the leap year last day calculation issue. (#1254) 2021-01-05 09:45:21 +08:00
ku-sourav
14e947ff03
Throw exception if curl_easy_init returns Null (#1239) 2020-12-22 14:23:29 -08:00
Anton Kolesnyk
bdc2931855
Token: use DateTime (#1221) 2020-12-18 19:10:54 -08:00
Anton Kolesnyk
e3d8719281
Fix gtest and related warnings (#1224) 2020-12-18 18:20:02 -08:00
Victor Vazquez
1502468dba
Reuse connection pool depending on host and connection options (#1189)
* Reuse connection pool depending on host and connection options
2020-12-18 17:27:47 -08:00
Victor Vazquez
8aac9091c2
Mention min clang format version and format all cpp and hpp files with clang-format version 9.0 (#1208)
* Add info about clang-format version

* updates for cpp and hpp format

* special cases
2020-12-17 18:34:23 -08:00
Victor Vazquez
6a317e8b87
Move the default transport adapter assignation to the source (#1206)
fixes: #1169
2020-12-18 02:13:03 +00:00
Victor Vazquez
942c6aaffa
replace ifdef for if defined (#1199)
fixes: #1057
2020-12-17 22:57:40 +00:00
Rick Winter
bcb684f95e
Add Operation<T> (#1186)
* Add Operation<T>
2020-12-17 14:47:20 -08:00
Victor Vazquez
dacd6aa6c1
Added HTTP Range (#1188)
* Added HTTP Rangeom>
2020-12-16 14:27:17 -08:00
Victor Vazquez
fc7d52926a
init fields to avoid MSVC warning (#1172)
Fixes: https://github.com/Azure/azure-sdk-for-cpp/issues/922
2020-12-15 22:21:24 +00:00
Victor Vazquez
8cd93803c4
Remove libcurl non required options (#1153)
Fixes: https://github.com/azure/azure-sdk-for-cpp/issues/931
2020-12-15 22:08:48 +00:00
Ahson Khan
f2394ddb02
Following the guidelines, use quotes for files within the same project, and angle brackets for external dependencies. (#1150) 2020-12-11 14:04:59 -08:00
Anton Kolesnyk
3eae7c130c
Add VcPkg support (#1013) 2020-12-11 11:53:37 -08:00
Ahson Khan
0f854ffa9b
Add WinHTTP Transport support to the SDK for windows clients as another HTTP Transport. (#897)
Fixes https://github.com/Azure/azure-sdk-for-cpp/issues/354
2020-12-10 22:00:52 +00:00
Anton Kolesnyk
035ba8509c
Move BearerTokenAuthenticationPolicy to Http namespace/policy.hpp (#1104) 2020-12-08 17:04:03 -08:00
Anton Kolesnyk
ce98087f7e
Don't use WINDOWS/POSIX/NOMINMAX macros defined in cmake, move them to source code instead (#1070) 2020-12-04 11:55:59 -08:00
Anton Kolesnyk
7d6d3dbf8f
Make SDK buildable in VS 2017 (#1078) 2020-12-03 19:16:18 -08:00