Improve implementation of platform default Http/WebSocket handler selection to allow for runtime selection of WinHttp WebSockets on Win32 if they are available (win 8+). Changed all platform default providers to this same pattern for consistency.
* Reworking WinHttp stack to support handling PLM events
* remove invalid assert
* Add some tracing, fix a bug after doing console suspend/resume testing
* Pass network error stack traces through and log them on Android
* Some clang-tidy bits
* Don't use ArrayCritical on read function either
* Copy back on writes
* Some preemptive nits
* Set trace level to verbose/important based on configuration
* Build fix
* Set trace level separately in the props
Co-authored-by: sashaweiss <asashaweiss@gmail.com>
* HC_PERFORM_ENV is the context for both the HTTP and WebSocket providers. On GDK, we want to user the Curl HTTP provider but the WinHttp WebSocket provider, so I've separated out WinHttpState from the WinHttp provider's HC_PERFORM_ENV so that it can be included in XCurl provider as well.
* Also added missing XCurl lib path to libHttpClient.props that was causing link issues
* Properly use client WriteResponseBody/ReadRequestBody callbacks in Curl HTTP provider
* Update openssl commit to 1.1.1k
* Format openssl and add log function
* Quick script fix
* More cleaning the script
* More rewriting and cleaning up of script
* Unblock arm64 from xcodeprojs and heavily modify script
* Remove short circuit
* Don't suffix with platform name, already broken out in DerivedData
* Re-add armv7 support
* Fix header path and replace deprecated Sec method
* Wrap SecTrust method in an availablity check
* Build fixes
* Fix Win32 and Android builds
* Empty commit to bump CI
Co-authored-by: sashaweiss <asashaweiss@gmail.com>
Co-authored-by: Jason Sandlin <jasonsa@microsoft.com>
* Skip calling RequestBodyRead if no more data is expected
* Return -1 in Android cpp to signal Android Java
* Add comments
* Empty commit to bump CI
* Empty commit to bump CI again
Co-authored-by: sashaweiss <asashaweiss@gmail.com>
* README updates
* Start stripping Android from CMakeLists.txts and stuff
* More stripping
* Do the deleting >:D
* More deletion
* Strip more
* Remove Android projects from VS
* Update README
* Reset unintended vcxproj guid changing
* Add Debug|x64 to vs17 projects missing it
* Also add Release|x64
* Revert "Add Debug|x64 to vs17 projects missing it"
This reverts commit 19d9d22300.
* Revert "Also add Release|x64"
This reverts commit d64fe15764.
* Task 33321557: Streamline XSAPI thunk dll generation and ship it in the GDK
* Task 33321557: Streamline XSAPI thunk dll generation and ship it in the GDK
* Move winhttp_http_task completion_callback lock handling into the individual callback type handlers to avoid holding onto lock when calling into externally provided event handlers
* Move duplicate XAsyncComplete checking to compete_task
* tabs -> spaces
* don't hold lock for complete_task since it can call back into client code synchronously
* Add prototypes and declarations
* Default read/write functions and WinHttp implementation
* XMLHttp
* Apple
* Android
* Correctly handle empty POST and PUT requests with OkHttp
* PR feedback
* PR feedback
* Build fix
* PR feedback
* Exit critical section before calling ThrowIOException
* Remove "bytesRead" from write callback
* Check for singleton init read and write callback setters
* Restore default read callback when setting body bytes
* Comments for set body bytes and set body string
* Bounds check in DefaultRequestBodyReadFunction
* UWP cleanup
* Update comments
* Context pointers
* Build fix
Co-authored-by: Jason Sandlin <jasonsa@microsoft.com>
This PR targets libHttpClient builds for Android Studio.
- Updating targetSDKVersion and compileSDKVersion to 30. [Android has asked that developers target API Level 30 by Nov 2021.](https://developer.android.com/distribute/best-practices/develop/target-sdk)
- Updating to Gradle 6.5
- Updating to Android Gradle Plug-in 4.1.2