Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
51b697b7
Commit
51b697b7
authored
Apr 30, 2016
by
Martin Panter
Browse files
Options
Browse Files
Download
Plain Diff
Issue #26864: Merge no_proxy fixes from 3.5
parents
0a5bd51d
aa27982f
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
24 additions
and
2 deletions
+24
-2
Lib/test/test_urllib.py
Lib/test/test_urllib.py
+13
-0
Lib/urllib/request.py
Lib/urllib/request.py
+6
-2
Misc/NEWS
Misc/NEWS
+5
-0
No files found.
Lib/test/test_urllib.py
View file @
51b697b7
...
...
@@ -231,6 +231,19 @@ class ProxyTests(unittest.TestCase):
self
.
assertTrue
(
urllib
.
request
.
proxy_bypass_environment
(
'anotherdomain.com:8888'
))
self
.
assertTrue
(
urllib
.
request
.
proxy_bypass_environment
(
'newdomain.com:1234'
))
def
test_proxy_bypass_environment_host_match
(
self
):
bypass
=
urllib
.
request
.
proxy_bypass_environment
self
.
env
.
set
(
'NO_PROXY'
,
'localhost, anotherdomain.com, newdomain.com:1234'
)
self
.
assertTrue
(
bypass
(
'localhost'
))
self
.
assertTrue
(
bypass
(
'LocalHost'
))
# MixedCase
self
.
assertTrue
(
bypass
(
'LOCALHOST'
))
# UPPERCASE
self
.
assertTrue
(
bypass
(
'newdomain.com:1234'
))
self
.
assertTrue
(
bypass
(
'anotherdomain.com:8888'
))
self
.
assertTrue
(
bypass
(
'www.newdomain.com:1234'
))
self
.
assertFalse
(
bypass
(
'prelocalhost'
))
self
.
assertFalse
(
bypass
(
'newdomain.com'
))
# no port
self
.
assertFalse
(
bypass
(
'newdomain.com:1235'
))
# wrong port
class
ProxyTests_withOrderedEnv
(
unittest
.
TestCase
):
...
...
Lib/urllib/request.py
View file @
51b697b7
...
...
@@ -2492,8 +2492,12 @@ def proxy_bypass_environment(host, proxies=None):
# check if the host ends with any of the DNS suffixes
no_proxy_list
=
[
proxy
.
strip
()
for
proxy
in
no_proxy
.
split
(
','
)]
for
name
in
no_proxy_list
:
if
name
and
(
hostonly
.
endswith
(
name
)
or
host
.
endswith
(
name
)):
return
1
if
name
:
name
=
re
.
escape
(
name
)
pattern
=
r'(.+\
.)?%s$
' % name
if (re.match(pattern, hostonly, re.I)
or re.match(pattern, host, re.I)):
return 1
# otherwise, don'
t
bypass
return
0
...
...
Misc/NEWS
View file @
51b697b7
...
...
@@ -256,6 +256,11 @@ Core and Builtins
Library
-------
-
Issue
#
26864
:
In
urllib
.
request
,
change
the
proxy
bypass
host
checking
against
no_proxy
to
be
case
-
insensitive
,
and
to
not
match
unrelated
host
names
that
happen
to
have
a
bypassed
hostname
as
a
suffix
.
Patch
by
Xiang
Zhang
.
-
Issue
#
24902
:
Print
server
URL
on
http
.
server
startup
.
Initial
patch
by
Felix
Kaiser
.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment