From a77fdc074c958ed59fa6b3b76521f5a3cbbbd0ae Mon Sep 17 00:00:00 2001
From: Bob Mottram <bob@freedombone.net>
Date: Fri, 19 Jun 2020 12:01:42 +0100
Subject: [PATCH] Set redirect headers

---
 daemon.py | 46 ++++++++++++++++------------------------------
 1 file changed, 16 insertions(+), 30 deletions(-)

diff --git a/daemon.py b/daemon.py
index ec1aef403..67199849a 100644
--- a/daemon.py
+++ b/daemon.py
@@ -530,37 +530,23 @@ class PubServer(BaseHTTPRequestHandler):
             print('REDIRECT ERROR: redirect is not an absolute url ' +
                   redirect)
 
-        if not httpRedirect:
-            print('Redirect from existing headers: ' + str(self.headers))
-            self.headers = []
-            if cookie:
-                if not cookie.startswith('SET:'):
-                    self.headers['Cookie'] = cookie
-                else:
-                    self.send_header('Set-Cookie', cookie)
-            self.Path = redirect.replace(callingDomain, '')
-            print('Redirect path: ' + self.Path)
-            self.headers['Location'] = redirect
-            self.headers['Host'] = callingDomain
-            self.headers['InstanceID'] = self.server.instanceId
-            self.headers['Content-type'] = 'text/html; charset=utf-8'
-            self.headers['Content-Length'] = '0'
-            self.headers['X-Robots-Tag'] = 'noindex'
-            self.do_GET()
-        else:
+        if httpRedirect:
             self.send_response(303)
-            if cookie:
-                if not cookie.startswith('SET:'):
-                    self.send_header('Cookie', cookie)
-                else:
-                    self.send_header('Set-Cookie',
-                                     cookie.replace('SET:', '').strip())
-            self.send_header('Location', redirect)
-            self.send_header('Host', callingDomain)
-            self.send_header('InstanceID', self.server.instanceId)
-            self.send_header('Content-Length', '0')
-            self.send_header('X-Robots-Tag', 'noindex')
-            self.end_headers()
+
+        if cookie:
+            if not cookie.startswith('SET:'):
+                self.send_header('Cookie', cookie)
+            else:
+                self.send_header('Set-Cookie',
+                                 cookie.replace('SET:', '').strip())
+        self.send_header('Location', redirect)
+        self.send_header('Host', callingDomain)
+        self.send_header('InstanceID', self.server.instanceId)
+        self.send_header('Content-Length', '0')
+        self.send_header('X-Robots-Tag', 'noindex')
+        self.end_headers()
+        if not httpRedirect:
+            self.do_GET()
 
     def _httpReturnCode(self, httpCode: int, httpDescription: str) -> None:
         msg = "<html><head></head><body><h1>" + str(httpCode) + " " + \