Opened 5 years ago
Closed 5 years ago
#3260 closed bug (Fixed)
web ui reverse proxy crash
Reported by: | ajslater | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | 2.0.3 |
Component: | Web UI | Version: | 2.0.0 |
Keywords: | reverse proxy | Cc: |
Description
if you access deluge web UI with a reverse proxy header it crashes
web.Server Traceback (most recent call last): builtins.TypeError: must be str, not bytes /usr/lib/python3/dist-packages/twisted/web/server.py:190 in process 189 try: 190 resrc = self.site.getResourceFor(self) 191 if resource._IEncodingResource.providedBy(resrc): /usr/lib/python3/dist-packages/twisted/web/server.py:826 in getResourceFor 825 request.sitepath = copy.copy(request.prepath) 826 return resource.getChildForRequest(self.resource, request) 827 /usr/lib/python3/dist-packages/twisted/web/resource.py:98 in getChildForRequest 97 request.prepath.append(pathElement) 98 resource = resource.getChildWithDefault(pathElement, request) 99 return resource /usr/lib/python3/dist-packages/deluge/ui/web/server.py:580 in getChildWithDefault 579 if base[0] != '/': 580 base = '/' + base 581 builtins.TypeError: must be str, not bytes
the base variable type is bytes from the header and not a string which blows up.
When you retrieve the header contents here: https://github.com/deluge-torrent/deluge/blob/develop/deluge/ui/web/server.py#L572
its returning bytes and not str. Bytes are what's what's specified in the twisted docs: https://twistedmatrix.com/documents/current/api/twisted.web.http.Request.html#getHeader
so it might be fixable with casting those bytes to a string or concatenating them another way.
This bug is new as of 2.x.x which makes sense since it looks like webui was refactored some.
Change History (3)
comment:1 by , 5 years ago
Milestone: | needs verified → 2.0.3 |
---|
Thanks for detailed report! Will fix this shortly