Commit graph

10 commits

Author SHA1 Message Date
Yen Chi Hsuan
54f54fcca7
[socks] Report errors elegantly when credentails are required but missing
In some non-standard implementations, the server may respond AUTH_USER_PASS
even if's not listed in available authentication methods. (it should
respond AUTH_NO_ACCEPTABLE per standards)
2017-04-22 21:48:41 +08:00
Yen Chi Hsuan
4bd7d9d4ae
[socks] Refine exception model for better error handling
1. ProxyError now inherits from socket.error instead of IOError

The only functions socks.py overrides are connect and connect_ex. In
Python 2.x and Python <= 3.2, socket functions raises socket.error. In
newer Python versions, those functions raises OSError instead. The name
socket.error is preserved as an alias of OSError for backward
compability. To keep socks.py compatible with Python's standard library,
it should raise the same exception as raw sockets.

See PEP 3151 (https://www.python.org/dev/peps/pep-3151/) for more
information about the change in Python 3.3.

2. Raise EOFError instead of IOError when the socket receives less data
than it expects

There's no common convention, but both ftplib and telnetlib raises
EOFError for similar situations. socks.py follows them.

Closes #11355

In #11355, only Python 2 is affected. In Python 3, both socket.error and
IOError are alias of OSError, so AbstractHTTPHandler.do_open correctly
catches the error and thus InfoExtractor._is_valid_url works fine.
2016-12-05 00:43:37 +08:00
Yen Chi Hsuan
8344296619
[socks] Fix error reporting (#11355) 2016-12-03 21:53:41 +08:00
Yen Chi Hsuan
582be35847
Update coding style after pycodestyle 2.1.0
In pycodestyle 2.1.0, E305 was introduced, which requires two blank
lines after top level declarations, too.

See https://github.com/PyCQA/pycodestyle/issues/400

See also #10689; thanks @stepshal for first mentioning this issue and
initial patches
2016-11-17 19:45:42 +08:00
stepshal
a2406fce3c
Fix misspelling 2016-06-26 01:28:55 +07:00
Yen Chi Hsuan
fa5cb8d021
[socks] Remove a superfluous clause 2016-05-10 14:51:38 +08:00
Yen Chi Hsuan
edaa23f822
[compat] Rename struct_(un)pack to compat_struct_(un)pack 2016-05-10 14:51:38 +08:00
Yen Chi Hsuan
9e9cd7248d
[socks] Eliminate magic constants and improve 2016-05-10 14:51:38 +08:00
Yen Chi Hsuan
71aff18809
[socks] Support SOCKS proxies 2016-05-10 14:51:38 +08:00
Yen Chi Hsuan
4350b74545
[socks] Add socks.py from @bluec0re's public domain implementation
https://gist.github.com/bluec0re/cafd3764412967417fd3
2016-05-10 14:49:25 +08:00