import BaseHTTPServer #import Cheetah.Template import SocketServer #import cgi import threading class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler): server_version = "yadynHTTP/1.0" @classmethod def setParams(cls, entries): cls.entries = entries # def do_POST(self): # self.log_message("Request: %s", self.path) # sid = self.getSidFromCookie() # self.log_message("Cookie: %s" % self.headers.get('Cookie')) # # d = HscWebApp(sid) # # l = int(self.headers.get('Content-Length', '0')) # q = self.rfile.read(l) # e = cgi.parse_qs(q) # self.log_message("QUERY: %s" % str(e)) # d.setParams(Params(e)) # # d.processAction() # # self.send_response(303, "See Other") # self.setSidInCookie(d.sid) # self.send_header("Location", "/") # self.end_headers() # # d.finish() def do_GET(self): self.log_message("Request: %s", self.path) cmd = self.path.split('/')[1] dynid = self.path.split('/')[2] d = '' if cmd == 'status': if dynid == 'all': for entry in self.entries.values(): d += str(entry) + '\n' elif self.entries.has_key(dynid): d = str(self.entries[dynid]) else: d = "unknown dynid" else: d = "unknown cmd" self.send_response(200, "OK") self.send_header("Content-Type", "text/plain") self.end_headers() self.wfile.write(str(d)) class WebServer(SocketServer.ThreadingTCPServer): def __init__(self, server_address, RequestHandlerClass): self.allow_reuse_address = True SocketServer.ThreadingTCPServer.__init__(self, server_address, RequestHandlerClass) class WebHandler(threading.Thread): def __init__(self, webAddr, entries): threading.Thread.__init__(self) self.webAddr = webAddr MyHandler.setParams(entries) self.setDaemon(True) def run(self): WebServer(self.webAddr, MyHandler).serve_forever()