File size: 1,299 Bytes
f22bba5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import http.server, json, os, sys

LOG_PATH = "/home/frappe/frappe-bench/sites/hisham-cmd-ofoqerp.hf.space/public/proxy_dump.log"

class DumpHandler(http.server.BaseHTTPRequestHandler):
    def do_POST(self):
        length = int(self.headers.get("Content-Length", 0))
        body = self.rfile.read(length) if length > 0 else b""
        with open(LOG_PATH, "w") as f:
            f.write(f"PATH: {self.path}\n")
            f.write(f"METHOD: POST\n")
            f.write(f"HEADERS:\n")
            for k, v in self.headers.items():
                f.write(f"  {k}: {v}\n")
            f.write(f"BODY ({len(body)} bytes): {body.decode('utf-8', errors='replace')[:2000]}\n")
        self.send_response(200)
        self.send_header("Content-Type", "application/json")
        self.end_headers()
        self.wfile.write(b'{"status":"logged"}')
    
    def do_GET(self):
        self.send_response(200)
        self.send_header("Content-Type", "text/plain")
        self.end_headers()
        self.wfile.write(b"Request dumper running")
    
    def log_message(self, format, *args):
        pass  # suppress stderr

port = int(sys.argv[1]) if len(sys.argv) > 1 else 7890
server = http.server.HTTPServer(("0.0.0.0", port), DumpHandler)
print(f"Request dumper on port {port}")
server.serve_forever()