import socket from gs.classes.http_request import HttpRequest class LittleApache(): available_wifis = [] keep_webserver_alive = True def __init__(self, net): self.net = net addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1] self.s = socket.socket() self.s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) self.s.bind(addr) self.s.listen() # print('Listening on', addr) def start(self): print("Webserver started. Connect to: " + self.net.ifconfig()[0]) print(self.net.ifconfig()) while self.keep_webserver_alive: try: conn, addr = self.s.accept() #print('Got a connection from', addr) # Receive and parse the request request = conn.recv(1024) # print("Request (RAW)", request) http_request = HttpRequest(request) self.http_request = http_request request = str(request) # print('Request content = %s' % request) #try: # request = request.split()[1] # print('Request:', request) #except IndexError: # pass response = self.response(http_request) # Send the HTTP response and close the connection conn.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n') conn.send(response) conn.close() except OSError as e: conn.close() print('Connection closed') return self def response(self, request: HttpRequest): #print("Webpage: ", request) print("Request method: ", request.method, "Request path: ", request.path) header = f"""