From 6feebd6aa2ab621f598898f91fda4c0e237fd9d0 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Thu, 25 Jul 2019 10:13:02 +0100 Subject: [PATCH] Include host in headers --- daemon.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/daemon.py b/daemon.py index 9ff9756c..b7a4efc0 100644 --- a/daemon.py +++ b/daemon.py @@ -84,10 +84,17 @@ def readFollowList(filename: str): return followlist class PubServer(BaseHTTPRequestHandler): + def _login_headers(self,fileFormat: str) -> None: + self.send_response(200) + self.send_header('Content-type', fileFormat) + self.send_header('Host', self.server.domainFull) + self.send_header('WWW-Authenticate', 'Basic realm="simple", charset="UTF-8"') + self.end_headers() + def _set_headers(self,fileFormat: str) -> None: self.send_response(200) self.send_header('Content-type', fileFormat) - self.send_header('WWW-Authenticate', 'Basic realm="simple", charset="UTF-8"') + self.send_header('Host', self.server.domainFull) self.end_headers() def _404(self) -> None: @@ -462,7 +469,7 @@ class PubServer(BaseHTTPRequestHandler): if self.path.startswith('/login'): # request basic auth - self._set_headers('text/html') + self._login_headers('text/html') self.wfile.write(htmlLogin(self.server.baseDir).encode('utf-8')) self.server.GETbusy=False return @@ -1221,6 +1228,9 @@ def runDaemon(clientToServer: bool,baseDir: str,domain: str, \ httpd = ThreadingHTTPServer(serverAddress, PubServer) httpd.domain=domain httpd.port=port + httpd.domainFull=domain + if port!=80 and port!=443: + httpd.domainFull=domain+':'+str(port) httpd.httpPrefix=httpPrefix httpd.debug=debug httpd.federationList=fedList.copy()