#!/usr/bin/env python3
"""Serve the POC on two ports so attacker/victim are different origins.

  http://localhost:8080/poc.html     — attacker (reader)
  http://localhost:8081/victim.html  — victim (sentinel writer)
"""
import http.server
import os
import socketserver
import threading

HERE = os.path.dirname(os.path.abspath(__file__))


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

    def end_headers(self):
        # WebGPU does not require COOP/COEP, but set no-cache so edits reload.
        self.send_header('Cache-Control', 'no-store')
        super().end_headers()


class ReuseTCP(socketserver.TCPServer):
    allow_reuse_address = True


def serve(port):
    httpd = ReuseTCP(('0.0.0.0', port), Handler)
    print(f'[*] serving {HERE} on http://localhost:{port}/')
    httpd.serve_forever()


if __name__ == '__main__':
    import sys
    base = int(sys.argv[1]) if len(sys.argv) > 1 else 8080
    threading.Thread(target=serve, args=(base + 1,), daemon=True).start()
    serve(base)
