OverrideOptionsOnConnectionHandle must provide HttpRequest as callback data
- Dominant language
- C++
- Stars
- 2.2k
- Forks
- 1.2k
- Avg merge
- 4d 11h
- Merged PRs (30d)
- 13
Description
### Describe the feature
Adding custom SetHttpClientFactory and custom CurlHttpClient if great but there is no link between client and served request in function OverrideOptionsOnConnectionHandle.
### Use Case
Implementing simultaneous and dynamic SSL checking and verification via SSL_CTX_set_verify (check for some connections, discard for other connections, etc.) with CURLOPT_SSL_CTX_FUNCTION is not possible because HttpClientFactory is static and there is no way to understand which option to use in OverrideOptionsOnConnectionHandle.
### Proposed Solution
Declare OverrideOptionsOnConnectionHandle with additional parameter HttpRequest* and when invoked in CurlHttpClient::MakeRequest pass "request.get()" along with curl connection handler.
### Other Information
_No response_
### Acknowledgements
- [ ] I may be able to implement this feature request
- [X] This feature might incur a breaking change
Contributor guide
Research direction
Start by locating the declaration and uses of OverrideOptionsOnConnectionHandle, then inspect CurlHttpClient::MakeRequest and how its connection handler is invoked. Confirm how HttpRequest is represented there and trace the callback path. Done means the callback receives the served HttpRequest as additional data while preserving the intended custom HTTP-client behavior and accounting for the noted breaking change.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100