Reseed data managment tools for I2P
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

37 lines
1.2 KiB

import http.server
import urllib.parse
import ssl
import os
class ReseedHandler(http.server.SimpleHTTPRequestHandler):
"""Handles reseeding requests"""
i2pseeds_file = ""
server_version = "Pyseeder Server"
sys_version = ""
def do_GET(self):
path = urllib.parse.urlparse(self.path).path
if path == "/i2pseeds.su3":
self.send_response(200)
self.send_header("Content-Type", "application/octet-stream")
self.send_header("Content-Length",
os.path.getsize(self.i2pseeds_file))
self.end_headers()
with open(self.i2pseeds_file, 'rb') as f:
self.wfile.write(f.read())
else:
self.send_error(404, "Not found")
def run_server(host, port, priv_key, cert, i2pseeds_file):
"""Start HTTPS server"""
Handler = ReseedHandler
Handler.i2pseeds_file = i2pseeds_file
httpd = http.server.HTTPServer((host, int(port)), Handler)
httpd.socket = ssl.wrap_socket(httpd.socket, server_side=True,
keyfile=priv_key, certfile=cert, ssl_version=ssl.PROTOCOL_TLSv1)
try:
httpd.serve_forever()
except KeyboardInterrupt:
exit()