#!/usr/bin/env python3

# This is a copy of tests/main/interfaces-network-bind/network-bind-consumer/bin/consumer,
# but modified to listen on all interfaces instead of just localhost

import signal
import sys
from http.server import HTTPServer, SimpleHTTPRequestHandler

def handle_usr1(signum, frame):
    sys.exit(0)
    # Put your custom logic here (e.g., reloading config, printing stats, etc.)

class QuietHandler(SimpleHTTPRequestHandler):
    def log_message(self, format, *args):
        # Pass silently to prevent printing to console
        pass
        # for debugging
        # print("%s - - [%s] %s" % (self.client_address[0], self.log_date_time_string(), format % args))

class testRequestHandler(QuietHandler):
    def do_GET(self):
        self.send_response(200)

        self.send_header('Content-type', 'text/html')
        self.end_headers()

        message = b"PASS\n"
        self.wfile.write(message)
        print('PASS')

def run():
    # Allow traffic from all interfaces
    server_address = ('0.0.0.0', 8081)
    httpd = HTTPServer(server_address, testRequestHandler)
    httpd.serve_forever()

if __name__ == '__main__':
    signal.signal(signal.SIGUSR1, handle_usr1)
    sys.exit(run())
