Skip to content

Commit

Permalink
proxy: username/password as str compatible with pysocks; Thanks to Lo…
Browse files Browse the repository at this point in the history
…renzo Mentaschi

#154
  • Loading branch information
temoto committed Jan 13, 2020
1 parent a8716b1 commit fa9a3bb
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 8 deletions.
10 changes: 9 additions & 1 deletion python2/httplib2/socks.py
Expand Up @@ -238,7 +238,15 @@ def setproxy(
headers - Additional or modified headers for the proxy connect
request.
"""
self.__proxy = (proxytype, addr, port, rdns, username, password, headers)
self.__proxy = (
proxytype,
addr,
port,
rdns,
username.encode() if username else None,
password.encode() if password else None,
headers,
)

def __negotiatesocks5(self, destaddr, destport):
"""__negotiatesocks5(self,destaddr,destport)
Expand Down
8 changes: 4 additions & 4 deletions python3/httplib2/__init__.py
Expand Up @@ -1008,10 +1008,10 @@ def __init__(
proxy_headers: Additional or modified headers for the proxy connect
request.
"""
if isinstance(proxy_user, str):
proxy_user = proxy_user.encode()
if isinstance(proxy_pass, str):
proxy_pass = proxy_pass.encode()
if isinstance(proxy_user, bytes):
proxy_user = proxy_user.decode()
if isinstance(proxy_pass, bytes):
proxy_pass = proxy_pass.decode()
self.proxy_type, self.proxy_host, self.proxy_port, self.proxy_rdns, self.proxy_user, self.proxy_pass, self.proxy_headers = (
proxy_type,
proxy_host,
Expand Down
10 changes: 9 additions & 1 deletion python3/httplib2/socks.py
Expand Up @@ -238,7 +238,15 @@ def setproxy(
headers - Additional or modified headers for the proxy connect
request.
"""
self.__proxy = (proxytype, addr, port, rdns, username, password, headers)
self.__proxy = (
proxytype,
addr,
port,
rdns,
username.encode() if username else None,
password.encode() if password else None,
headers,
)

def __negotiatesocks5(self, destaddr, destport):
"""__negotiatesocks5(self,destaddr,destport)
Expand Down
4 changes: 2 additions & 2 deletions tests/test_proxy.py
Expand Up @@ -32,8 +32,8 @@ def test_from_url_ident():
pi = httplib2.proxy_info_from_url("http://zoidberg:fish@someproxy:99")
assert pi.proxy_host == "someproxy"
assert pi.proxy_port == 99
assert pi.proxy_user == b"zoidberg"
assert pi.proxy_pass == b"fish"
assert pi.proxy_user == "zoidberg"
assert pi.proxy_pass == "fish"


def test_from_env():
Expand Down

0 comments on commit fa9a3bb

Please sign in to comment.