]> git.pld-linux.org Git - projects/pld-builder.new.git/blob - PLD_Builder/request_handler_server.py
Missing I/O->buf changes.
[projects/pld-builder.new.git] / PLD_Builder / request_handler_server.py
1 #!/usr/bin/python
2
3 import string
4 import cgi
5 import time
6 import log
7 from config import config, init_conf
8
9 from os import curdir, sep
10 from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
11
12 import request_handler
13
14 class MyHandler(BaseHTTPRequestHandler):
15
16         def do_GET(self):
17                 self.send_error(401);
18
19         def do_POST(self):
20                 global rootnode
21                 try:
22                         length = int(self.headers.getheader('content-length'))
23                         ctype, pdict = cgi.parse_header(self.headers.getheader('content-type'))
24                         if ctype != 'application/x-www-form-urlencoded':
25                                 self.send_error(401)
26                                 self.end_headers()
27                                 return
28
29                         query = self.rfile.read(length)
30
31                         filename = self.headers.getheader('x-filename')
32
33                         if not request_handler.handle_request_main(query, filename = filename):
34                                 log.error("request_handler_server: handle_request_main(..., %s) failed" % filename)
35                                 self.send_error(500)
36                                 self.end_headers()
37                                 return
38
39                         self.send_response(200)
40                         self.end_headers()
41
42                 except Exception, e:
43                         self.send_error(500)
44                         self.end_headers()
45                         log.error("request_handler_server: exception: %s" % e)
46                         raise
47                         pass
48
49 def main():
50         try:
51                 init_conf()
52                 host = ""
53                 port = config.request_handler_server_port
54
55                 server = HTTPServer((host, port), MyHandler)
56                 print 'started httpserver on :%d...' % port
57                 server.serve_forever()
58         except KeyboardInterrupt:
59                 print '^C received, shutting down server'
60                 server.socket.close()
61
62 if __name__ == '__main__':
63         main()
64
This page took 0.083207 seconds and 4 git commands to generate.