import http.server
import ssl

class CORSHTTPRequestHandler(http.server.SimpleHTTPRequestHandler):
    def end_headers(self):
        # Voeg de benodigde CORS-headers toe aan elke response
        self.send_header('Access-Control-Allow-Origin', '*')
        #self.send_header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS')
        #self.send_header('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type')
        self.send_header('Referrer-Policy', 'same-origin')
        super().end_headers()

    def do_OPTIONS(self):
        # Handel de preflight-verzoeken van browsers correct af
        self.send_response(200, "OK")
        self.end_headers()

def run_server():
    server_address = ('', 443)
    httpd = http.server.HTTPServer(server_address, CORSHTTPRequestHandler)
    
    # Configureer SSL/TLS voor HTTPS
    context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
    context.load_cert_chain(certfile="/etc/letsencrypt/live/stream.l45.be/fullchain.pem", keyfile="/etc/letsencrypt/live/stream.l45.be/privkey.pem")
    httpd.socket = context.wrap_socket(httpd.socket, server_side=True)
    
    print("HTTPS server running")
    try:
        httpd.serve_forever()
    except KeyboardInterrupt:
        print("\nServer stopping...")
        httpd.server_close()

if __name__ == '__main__':
    run_server()
