#!/usr/bin/env python3
"""Minimal HTTP server for the POC.

Serves the POC files on 0.0.0.0:8080 so they are reachable as both
http://localhost:8080/... (attacker origin) and
http://127.0.0.1:8080/... (victim origin) — different hosts, hence
cross-origin and cross-site for Chrome's site isolation.
"""
import http.server
import os
import socketserver
import sys

PORT = 8765


class Handler(http.server.SimpleHTTPRequestHandler):
    def __init__(self, *a, **kw):
        super().__init__(*a, directory=os.path.dirname(__file__) or '.', **kw)

    def log_message(self, fmt, *args):
        sys.stderr.write("[server] %s\n" % (fmt % args))


def main():
    socketserver.TCPServer.allow_reuse_address = True
    with socketserver.TCPServer(("0.0.0.0", PORT), Handler) as httpd:
        sys.stderr.write(f"[server] listening on 0.0.0.0:{PORT}\n")
        httpd.serve_forever()


if __name__ == "__main__":
    main()
