Initial server source import

This commit is contained in:
sashatrask
2026-09-30 20:30:56 +03:00
commit 170dd941b9
498 changed files with 261563 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
import argparse
import http.server
import json
import os
import ssl
class Handler(http.server.BaseHTTPRequestHandler):
protocol_version = 'HTTP/1.1'
def do_POST(self):
length = int(self.headers.get('Content-Length', '0'))
if length < 0 or length > 1024 * 1024:
self.send_error(413)
return
self.rfile.read(length)
self.send_response(204)
self.send_header('Content-Length', '0')
self.send_header('Retry-After', '1')
self.end_headers()
def log_message(self, _format, *_args):
pass
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--cert', required=True)
parser.add_argument('--key', required=True)
parser.add_argument('--port', required=True, type=int)
parser.add_argument('--ready-file', required=True)
args = parser.parse_args()
server = http.server.ThreadingHTTPServer(('127.0.0.1', args.port), Handler)
context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
context.load_cert_chain(args.cert, args.key)
server.socket = context.wrap_socket(server.socket, server_side=True)
with open(args.ready_file, 'x', encoding='ascii') as handle:
json.dump({'port': server.server_port}, handle, separators=(',', ':'))
handle.write('\n')
os.chmod(args.ready_file, 0o600)
server.serve_forever()
if __name__ == '__main__':
main()