77 lines
1.9 KiB
Python
77 lines
1.9 KiB
Python
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()
|
|
|
|
|