Browse Source
[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)
master
Yen Chi Hsuan
8 years ago
No known key found for this signature in database
GPG Key ID: 7F902A182457CA23
2 changed files with
7 additions and
2 deletions
ChangeLog
youtube_dl/socks.py
@ -1,5 +1,9 @@
version <unreleased>
Core
* [socks] Handle cases where credentials are required but missing
Extractors
- [azubu] Remove extractor (#12813)
* [porn91] Fix extraction (#12814)
@ -193,9 +193,10 @@ class sockssocket(socket.socket):
self . _check_response_version ( SOCKS5_VERSION , version )
if method == Socks5Auth . AUTH_NO_ACCEPTABLE :
if method == Socks5Auth . AUTH_NO_ACCEPTABLE or (
method == Socks5Auth . AUTH_USER_PASS and ( not self . _proxy . username or not self . _proxy . password ) ) :
self . close ( )
raise Socks5Error ( method )
raise Socks5Error ( Socks5Auth . AUTH_NO_ACCEPTABLE )
if method == Socks5Auth . AUTH_USER_PASS :
username = self . _proxy . username . encode ( ' utf-8 ' )