parent
1be0a96a4d
commit
59e92b1f18
1 changed files with 3 additions and 15 deletions
|
@ -1,7 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import functools
|
||||
import gzip
|
||||
import http.client
|
||||
import io
|
||||
import socket
|
||||
|
@ -155,20 +154,9 @@ class HTTPHandler(urllib.request.AbstractHTTPHandler):
|
|||
|
||||
@staticmethod
|
||||
def gz(data):
|
||||
gz = gzip.GzipFile(fileobj=io.BytesIO(data), mode='rb')
|
||||
try:
|
||||
return gz.read()
|
||||
except OSError as original_oserror:
|
||||
# There may be junk add the end of the file
|
||||
# See http://stackoverflow.com/q/4928560/35070 for details
|
||||
for i in range(1, 1024):
|
||||
try:
|
||||
gz = gzip.GzipFile(fileobj=io.BytesIO(data[:-i]), mode='rb')
|
||||
return gz.read()
|
||||
except OSError:
|
||||
continue
|
||||
else:
|
||||
raise original_oserror
|
||||
# There may be junk added the end of the file
|
||||
# We ignore it by only ever decoding a single gzip payload
|
||||
return zlib.decompress(data, wbits=zlib.MAX_WBITS | 16)
|
||||
|
||||
def http_request(self, req):
|
||||
# According to RFC 3986, URLs can not contain non-ASCII characters, however this is not
|
||||
|
|
Loading…
Reference in a new issue