Commit Graph

266 Commits

Author SHA1 Message Date
Ahson Khan
031696179b
Delegate to RFE string ctor and move impl from header to src. (#3315)
* Removing the two param RFE ctor, there should be no callers

* Remove the two param RFE ctor from the source file.

* Fix-up unit test and add a changelog entry.

* Remove test that uses the removed ctor.

* Delegate to RFE string ctor and move impl from header to src.
2022-02-04 15:09:39 -08:00
Ahson Khan
9c79a0725d
Removing the two param RFE ctor, there should be no callers (#3215)
* Removing the two param RFE ctor, there should be no callers

* Remove the two param RFE ctor from the source file.

* Fix-up unit test and add a changelog entry.

* Remove test that uses the removed ctor.
2022-02-03 19:00:25 -08:00
Anton Kolesnyk
2aae6be7a3
Encapsulate getenv(), and make it work on UWP (#3275)
It all started with UWP. The [docs](https://docs.microsoft.com/en-us/cpp/cppcx/crt-functions-not-supported-in-universal-windows-platform-apps?view=msvc-170) say: "`Environment variables are not available to UWP apps.`". And it truly won't work, I tried: linker error, the function is simply not present.

So, for a year or so, we were `ifdef`ing everything enivoronment-related: console logger, environment credential, managed identity credential.

And then just recently we wanted to enable our CI for UWP, including tests and samples. And it required to do more ifdefs (in vcpkg, we don't build samples or tests, so that problem did not exist).

It just became more messy. Especially in samples - you can see how we would disable warning with `#pragma warning(disable : 4996)` or defining `_CRT_SECURE_NO_WARNINGS` already, but now came UWP, so we would have to add comment that `getenv()` is not available and make the sample compilation to either fail with clear message, or throw an exception. Plus we would have to detect that we are being compiled on UWP, which also adds visual clutter for reader. You can see how such an irrelevant (for a sample) thing as `getenv` was consuming more and more lines of sample code and reader's attention.

But then! I read docs on more APIs for UWP. And I noticed that on .NET you can read environment variables. So I went and checked Win32 API docs for [GetEnvironmentVariable()](https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-getenvironmentvariable) - it says: "`Minimum supported client: ... UWP apps`".

**GetEnvironmentVariable() works on UWP!**
And so does `SetEnvironmentVariable()` (our tests use it, which means we can make all of them work and execute for UWP).

That's good news, but now it would probably be more code: it usually takes more lines to invoke WinAPI, it is no more an one-liner to call `getenv()/setenv()`. So, I encapsulated that into `Azure::Core::_internal::Environment::GetVariable()` and `SetVariable()`. You can see how much less ifdefs is in our code now. Not to mention it works on UWP!

Per team request, that API is SDK-internal. Samples use their own mini-helper project, `get-env-helper` that makes is so that `getenv()` works naturally on Linux and macOS, compiles without warnings and works on Win32, and compiles and works on UWP (using `GetEnvironmentStringsA()`)

If it was for me, I would just make `Azure::Core::Environment::GetVariable()` public and simplify even further, I think it would be beneficial for sample readers (you can see that extra `get-env-helper` stuff adds just a little more visual clutter, compared to nothing). But I can see reasons against that, why team did not want to do it.
2022-01-29 08:22:33 +00:00
Victor Vazquez
30c5d77d88
Remove Logging from the LibcurlConnectionPool - cleaning routine (#3219)
Remove Logging from the LibcurlConnectionPool - cleaning routine (#3219)
2022-01-13 20:04:18 +00:00
Anton Kolesnyk
b4fe751310
RequestFailedException: decouple Message and what(). (#3201)
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-12-18 09:00:04 -08:00
Anton Kolesnyk
07d20e78e3
Exclude uncoverable lines from code coverage (#3179)
* Use code coverage annotations in places that never can be covered

* Comments

* Increment goal

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-12-14 15:25:48 -08:00
Anton Kolesnyk
a2b2b74080
Add a few simple unit tests to boost coverage (#3163) 2021-12-13 14:50:30 -08:00
Anton Kolesnyk
12a2ca31bc
Fix DateTime::Parse validation for dates past year 9999 due to adjustments (#3177) 2021-12-13 12:55:00 -08:00
Anton Kolesnyk
d4ffa7dbc1
Remove static curl transport (#3178)
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-12-10 15:53:17 -08:00
Anton Kolesnyk
764b839dec
Make AZURE_ASSERT and related macros internal (#3059) 2021-11-17 18:31:37 -08:00
Anton Kolesnyk
5e0f1c9ac8
Do not initialize statics in inline functions (#3111)
* Do not initialize statics in inline functions

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-11-17 13:17:41 -08:00
Anton Kolesnyk
767b03401e
Remove en-us from links in code comments (#3083)
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-11-08 20:27:32 -08:00
Azure SDK Bot
f84c8d2af7
Increment package version after release of azure-core (#3073) 2021-11-08 08:43:45 -08:00
Victor Vazquez
7e7979d7f7
Cl for release 1.3.1 (#3070) 2021-11-05 15:31:33 -07:00
Azure SDK Bot
7926ec8c3c
Increment package version after release of azure-core (#3058) 2021-11-05 14:08:33 -07:00
Victor Vazquez
4614b80d22
cl (#3047) 2021-11-04 18:52:50 +00:00
Victor Vazquez
fb03127d05
Use ms for connection timeout (#3001)
* move the static transport adapter to private impl

* use MS for connection timeout

* update

* fix the value
2021-11-03 23:08:35 +00:00
Victor Vazquez
31398df179
move the static transport adapter to private impl (#2993) 2021-10-28 11:49:37 -07:00
Victor Vazquez
3be793d558
[Core] - Support azure-core version without OpenSSL dependency (#2839)
* perf test uuid

* use win impl for uuid on linux

* use c99 base64 encode-decode
2021-10-27 23:20:34 +00:00
Victor Vazquez
a4f2e510e5
Adding timeout option (#2991) 2021-10-25 12:12:53 -07:00
Victor Vazquez
ef72f3c8a1
expose Curl nosignal opt (#2985)
* add NoSignalOption

* cl

* tests
2021-10-21 17:25:02 -07:00
Victor Vazquez
dcc6f12c20
force http 1.1 on the libcurl transport adapter (#2978)
* force http 1.1

* update wording
2021-10-20 18:43:28 +00:00
Anton Kolesnyk
b477373a9c
Remove extra semicolons (#2979)
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2021-10-19 16:08:42 -07:00
Victor Vazquez
5e3cd1fb01
Adding a static-blocking libcurl transport adapter (#2948)
* static libcurl transport adapter

* ignore cspell

* updates to implementation
2021-10-18 15:01:00 -07:00
Rick Winter
bb8b889cf5
Remove static_cast (#2815)
* Remove static_cast

* Add additional checks around our Logger::Level to ensure its lock_free
2021-09-16 11:54:18 -07:00
Azure SDK Bot
2b3f03909e
Increment package version after release of azure-core (#2826) 2021-09-02 20:56:31 +00:00
Victor Vazquez
14a4459ae0
core cl update (#2819) 2021-09-02 11:02:14 -07:00
Victor Vazquez
49636a2f93
ignore result of function to compile on G++ 5 (#2784)
* ignore result of function

* changelog

* Add g++5 to CI legs

* use inline config for g++ 5

* update flag

* set default values for variables

* fix format
2021-08-24 15:55:46 -07:00
JinmingHu
a9507ae88d
Fix build error on some platforms (#2734)
* Move uuid impl to .cpp file

* CL
2021-08-13 07:50:25 +08:00
Azure SDK Bot
4e1cdb985d
Increment package version after release of azure-core (#2715) 2021-08-09 13:20:01 -07:00
Victor Vazquez
2b63bc6536
changelog for 1.2.0 release (#2713) 2021-08-05 20:47:51 -07:00
Victor Vazquez
554feb13b8
typo (#2700) 2021-08-02 11:54:56 -07:00
Anton Kolesnyk
326af88078
Make WinHTTP transport adapter to NOT use SSL/TLS for unsecured HTTP connections (#2678)
* Make WinHTTP transport adapter to NOT use SSL/TLS for unsecured HTTP connections

* Update changelog for identity as well

* LocaleInvariantCaseInsensitiveEqual + micro-optimization to avoid creating&allocating std::string each time

* Update sdk/identity/azure-identity/CHANGELOG.md

Co-authored-by: Rick Winter <rick.winter@microsoft.com>

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
Co-authored-by: Rick Winter <rick.winter@microsoft.com>
2021-07-28 10:55:54 -07:00
Victor Vazquez
a508789c36
Remove warning supress (#2677)
* remove warning suppress not required anymore

* json update

* update the curl header including

* changelog
2021-07-27 18:09:52 -07:00
Victor Vazquez
0567145212
support connection close header (#2672) 2021-07-27 10:03:56 -07:00
George Arama
0d4f138cb3
GetSecret Api implementation for Keyvault Secret (#2656)
* Progress stream reader

* format

* Update sdk/core/azure-core/src/io/body_stream.cpp

Co-authored-by: JinmingHu <jinmhu@microsoft.com>

* PR comments

* remove

* one more comment

* replaced if null with azure_assert

* moved from pointer to reference

* first pass

* src builds

* new line

* huzaaaaa

* readme

* strating point

* get progress, need to deserialize now

* serializer

* some more

* tests

* more tests

* some refactor

* start

* comment and formatting

* working again

* couple of updates

* clang

* remove pedantic ;

* include

* pr comments

* clang format

* trigger

* trigger 2

* PR comments

* name value swap

Co-authored-by: JinmingHu <jinmhu@microsoft.com>
2021-07-23 17:36:04 -07:00
George Arama
1f15e046e0
Progress stream reader (#2563)
* Progress stream reader

* format

* Update sdk/core/azure-core/src/io/body_stream.cpp

Co-authored-by: JinmingHu <jinmhu@microsoft.com>

* PR comments

* remove

* one more comment

* replaced if null with azure_assert

* moved from pointer to reference

* PR comments

* clang

Co-authored-by: JinmingHu <jinmhu@microsoft.com>
2021-07-20 13:28:48 -07:00
Azure SDK Bot
0a6a5080a9
Increment package version after release of azure-core (#2553) 2021-07-09 14:33:56 -07:00
George Arama
e8efcd21fd
2559 doc warnings (#2573)
* fix doc warnings

* format
2021-07-07 15:23:22 -07:00
JinmingHu
a8d7a48a07
Fix Bug: libcurl transport layer hangs on 304 response (#2558) 2021-07-06 18:28:32 +00:00
Anton Kolesnyk
6e4e9fd54b
Prepare Core and Identity releases (#2527)
* Prepare Core and Identity releases

* One more file

* Move to Other Changes

* Apply suggestions from code review

Co-authored-by: Ahson Khan <ahkha@microsoft.com>

* identity bugs fixed header

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
Co-authored-by: Ahson Khan <ahkha@microsoft.com>
2021-07-01 16:06:36 -07:00
Ahson Khan
863e9871e5
Make sure RFE Message is only set to the response body payload. (#2539)
* Make sure RFE Message is only set to the response body payload.

* Add a note about the Message property.

* Jeff likes wordsmithing things for fun.
2021-07-01 15:56:20 -07:00
Ahson Khan
d0ca42643f
Move Sha256Hash and other Hash algorithm types from KeyVault to Azure::Core (#2526)
* Move the SHA256, 384, and 512 Hash implementations to be internal.

* Update changelog and add back missing file.

* Rename SHA256 and others to Sha256Hash and update header name.

* Fix up path in CMakeList by removing quotes.

* Rename the sha.cpp source file to match header.

* Move Sha256Hash and other Hash algorithm types from KeyVault to
Azure::Core.

* Reorder src file in cmakelist to be alpha order just to reset CI

* Revert "Reorder src file in cmakelist to be alpha order just to reset CI"

This reverts commit 6729cf311af76bb8388738cc519ea40092bc362c.
2021-07-01 15:42:36 -07:00
Ahson Khan
731d07c2cc
Fix up the implementation details of the RequestFailedException ctor. (#2536) 2021-07-01 14:08:05 -07:00
George Arama
c449e3f9bc
2502 exceptions (#2529)
* first pass

* move exception creation from keyvault to core

* merge fix

* format

* fix includes location and containers

* remove default constructor

* to trigger build

* undo change

* uncomment

* Update sdk/core/azure-core/test/ut/exception_test.cpp

Co-authored-by: Rick Winter <rick.winter@microsoft.com>

Co-authored-by: Rick Winter <rick.winter@microsoft.com>
2021-07-01 04:17:15 +00:00
Wes Haggard
015c34a029
Update links from master to main (#2488)
* Update links from master to main

* Upate other references from master to main
2021-06-24 22:27:14 -07:00
Ahson Khan
1950e6d655
Use TCP fast open and false start to reduce RTT from 3 to 1, when using WinHttp on latest Windows OS. (#2253)
* Use TCP fast open and false start to reduce RTT from 3 to 1, when using WinHttp on latest Windows OS.

* Address PR feedback - Remove logging the error.
2021-06-22 16:06:24 -07:00
George Arama
70c3e72763
Add Unit Tests for EnvironmentLogLevelListener (#2454)
* first UT

* formatting

* unused error

* putenv

* some refactoring

* formatting

* casting

* again

* Update sdk/core/azure-core/test/ut/environmentLogLevelListener_test.cpp

Co-authored-by: Rick Winter <rick.winter@microsoft.com>

* some refactoring

* more tests

* format

* no env test

* put back missing empty line

* Update sdk/core/azure-core/test/ut/environmentLogLevelListener_test.cpp

Co-authored-by: Rick Winter <rick.winter@microsoft.com>

* PR comments

* fix signed/unsigned mismatch that causes ci build to fail

Co-authored-by: Rick Winter <rick.winter@microsoft.com>
2021-06-22 21:51:41 +00:00
Victor Vazquez
81e0d5aab0
use size_t for buffers in libcurl internal impl (#2376)
* use size_t for buffers in libcurl internal impl
2021-06-14 14:28:36 -07:00
JinmingHu
325466ecae
Fix memory leak in Base64Encode (#2441)
* Fix memory leak

* cl
2021-06-10 10:02:01 +08:00