#!/usr/bin/env python3
"""Minimal HTTP server for the SMIL :visited leak POC.

Serves static files and logs POSTed results from the test page to stdout
so the leak verdict is visible in the terminal that started the server.
"""
import http.server
import os
import socketserver
import sys

PORT = 8000
ROOT = os.path.dirname(os.path.abspath(__file__))

class Handler(http.server.SimpleHTTPRequestHandler):
    def __init__(self, *a, **kw):
        super().__init__(*a, directory=ROOT, **kw)

    def do_POST(self):
        length = int(self.headers.get('Content-Length', 0))
        body = self.rfile.read(length).decode('utf-8', 'replace')
        sys.stdout.write("\n===== POC RESULT =====\n")
        sys.stdout.write(body + "\n")
        sys.stdout.write("======================\n")
        sys.stdout.flush()
        self.send_response(200)
        self.end_headers()

    def end_headers(self):
        self.send_header('Cache-Control', 'no-store')
        super().end_headers()

    def log_message(self, fmt, *args):
        pass  # quiet

if __name__ == '__main__':
    socketserver.TCPServer.allow_reuse_address = True
    with socketserver.TCPServer(("127.0.0.1", PORT), Handler) as httpd:
        print(f"[server] listening on http://127.0.0.1:{PORT}/", flush=True)
        httpd.serve_forever()
