mirror of
https://git.launchpad.net/livecd-rootfs
synced 2025-02-23 11:21:12 +00:00
magic-proxy: fix TypeError when trying to call get_uri() LP:#1944906
Currently the uri that is passed into urllib.parse.urlparse() is not prefixed with "http(s)://" which leads urlparse() to return a wrong scheme/netloc/path. Currently it looks like: ParseResult(scheme='', netloc='', path='de.archive.ubuntu.com/ubuntu/dists/impish-backports/InRelease' , params='', query='', fragment='') That's wrong. The path should look like 'ubuntu/dists/impish-backports/InRelease'. Prefixing the 'host' header with 'http://' in case it's not there does fix the problem. This fixes: Traceback (most recent call last): File "/usr/lib/python3.9/socketserver.py", line 683, in process_request_thread self.finish_request(request, client_address) File "/usr/lib/python3.9/socketserver.py", line 360, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/lib/python3.9/socketserver.py", line 747, in __init__ self.handle() File "/usr/lib/python3.9/http/server.py", line 427, in handle self.handle_one_request() File "/usr/lib/python3.9/http/server.py", line 415, in handle_one_request method() File "/home/tom/devel/livecd-rootfs/./magic-proxy", line 787, in do_GET File "/home/tom/devel/livecd-rootfs/./magic-proxy", line 838, in __get_request File "/home/tom/devel/livecd-rootfs/./magic-proxy", line 84, in get_uri TypeError: can only concatenate str (not "NoneType") to str (cherry picked from commit 3559153c7d91dfb25e6aaf1d18152e945411d503)
This commit is contained in:
parent
efd0641f6c
commit
da3c71a791
@ -814,8 +814,14 @@ class ProxyingHTTPRequestHandler(http.server.BaseHTTPRequestHandler):
|
||||
It is important to understand that there is no status 3xx HTTP redirect
|
||||
happening here, the client does not know that what it receives is not
|
||||
exactly what it requested."""
|
||||
host = self.headers.get("host")
|
||||
|
||||
# the host does not start with http(s):// which result in urlparse
|
||||
# to not detect the host & path correctly (LP:#1944906)
|
||||
if not host.startswith("http"):
|
||||
host = "http://{}".format(host)
|
||||
uri = host + self.path
|
||||
|
||||
uri = self.headers.get("host") + self.path
|
||||
parsed = urllib.parse.urlparse(uri)
|
||||
|
||||
self.sanitize_requestline()
|
||||
|
Loading…
x
Reference in New Issue
Block a user