fix: NO_PROXY should support IPv4, IPv6 and localhost#2659
Merged
lovelydinosaur merged 4 commits intoencode:masterfrom Apr 19, 2023
Merged
fix: NO_PROXY should support IPv4, IPv6 and localhost#2659lovelydinosaur merged 4 commits intoencode:masterfrom
lovelydinosaur merged 4 commits intoencode:masterfrom
Conversation
1 task
Contributor
|
Nicely done, yup. |
lovelydinosaur
approved these changes
Apr 19, 2023
lovelydinosaur
approved these changes
Apr 19, 2023
lovelydinosaur
approved these changes
Apr 19, 2023
This was referenced Apr 20, 2023
Closed
Merged
samclearman
pushed a commit
to titanmsp/httpx
that referenced
this pull request
Apr 26, 2025
* fix: NO_PROXY supports IPv4, IPv6 and localhost * add more tests for test_get_environment_proxies --------- Co-authored-by: Tom Christie <tom@tomchristie.com>
|
This PR introduced a parsing failure ( |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #2660
The
get_environment_proxiesfunction in _utils.py is responsible for parsing and mounting proxy info from system environment.httpx/httpx/_utils.py
Lines 229 to 264 in 4b5a92e
For env
no_proxy, according to CURLOPT_NOPROXY explained, it should support domains, IPv4, IPv6 and thelocalhost. However, currentget_environment_proxiesfunction implementation only supports domains correctly as it always adds wildcard*in front of thehostname.I encountered error when my environment
no_proxyincludes IPv6 address like::1. It is wrongly transformed intoall://*::1and causes urlparse error since the _urlparse.py parses the:1as port.To fix this issue, I looked into this repo and suggest handling the
no_proxyhostnames as domains, IPv4, IPv6 and thelocalhostseperately. I have updated theget_environment_proxiesfunction in _utils.py and tested it.Replies and discussions are welcomed!