Bläddra i källkod

[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)
tags/2017.04.26
Yen Chi Hsuan 7 år sedan
förälder
incheckning
54f54fcca7
Ingen känd nyckel hittad för denna signaturen i databasen GPG-nyckel ID: 7F902A182457CA23
2 ändrade filer med 7 tillägg och 2 borttagningar
  1. +4
    -0
      ChangeLog
  2. +3
    -2
      youtube_dl/socks.py

+ 4
- 0
ChangeLog Visa fil

@@ -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)


+ 3
- 2
youtube_dl/socks.py Visa fil

@@ -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')


Laddar…
Avbryt
Spara