]> git.pld-linux.org Git - projects/pld-builder.new.git/blame - PLD_Builder/request_handler_server.py
Switch to https for client/request handler server and between builders communication...
[projects/pld-builder.new.git] / PLD_Builder / request_handler_server.py
CommitLineData
51c62214
AM
1#!/usr/bin/python
2
c49ac31f 3import socket
51c62214
AM
4import string
5import cgi
6import time
387d9f05 7import log
c87a0ffa 8import ssl
2825d596 9import sys
97d377c9 10import traceback
6d31e66e 11import os
8e837ecd 12from config import config, init_conf
51c62214 13
51c62214
AM
14from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
15
16import request_handler
6d31e66e 17import path
51c62214
AM
18
19class MyHandler(BaseHTTPRequestHandler):
20
21 def do_GET(self):
22 self.send_error(401);
23
24 def do_POST(self):
25 global rootnode
26 try:
27 length = int(self.headers.getheader('content-length'))
28 ctype, pdict = cgi.parse_header(self.headers.getheader('content-type'))
29 if ctype != 'application/x-www-form-urlencoded':
39950739 30 log.error("request_handler_server: [%s]: 401 Unauthorized" % self.client_address[0])
51c62214
AM
31 self.send_error(401)
32 self.end_headers()
33 return
34
35 query = self.rfile.read(length)
51c62214 36
c1ad9456
ER
37 filename = self.headers.getheader('x-filename')
38
f02c1e4d 39 if not request_handler.handle_request_main(query, filename = filename):
0a33e679 40 error = log.last_log();
39950739 41 log.error("request_handler_server: [%s]: handle_request_main(..., %s) failed" % (self.client_address[0], filename))
6f69a3b6 42 self.send_error(500, "%s: request failed. %s" % (filename, error))
51c62214
AM
43 self.end_headers()
44 return
45
46 self.send_response(200)
47 self.end_headers()
48
49 except Exception, e:
0a33e679 50 self.send_error(500, "%s: %s" % (filename, e))
51c62214 51 self.end_headers()
97d377c9 52 log.error("request_handler_server: [%s]: exception: %s\n%s" % (self.client_address[0], e, traceback.format_exc()))
51c62214
AM
53 raise
54 pass
55
6d31e66e 56def write_css():
ed53f981 57 css_src = os.path.join(os.path.dirname(__file__), 'style.css')
6d31e66e 58 css_file = path.www_dir + "/style.css"
0d52c382 59 # skip if file exists and code is not newer
ed53f981 60 if os.path.exists(css_file) and os.stat(css_src).st_mtime < os.stat(css_file).st_mtime:
6d31e66e
ER
61 return
62
6d31e66e 63 old_umask = os.umask(0022)
ed53f981 64 r = open(css_src, 'r')
6d31e66e 65 f = open(css_file, "w")
ed53f981 66 f.write(r.read())
6d31e66e 67 f.close()
ed53f981 68 r.close()
6d31e66e
ER
69 os.umask(old_umask)
70
04ce7f54 71def write_js():
ed53f981
ER
72 js_src = os.path.join(os.path.dirname(__file__), 'script.js')
73 js_file = path.www_dir + '/script.js'
04ce7f54 74 # skip if file exists and code is not newer
ed53f981 75 if os.path.exists(js_file) and os.stat(js_src).st_mtime < os.stat(js_file).st_mtime:
04ce7f54
ER
76 return
77
04ce7f54 78 old_umask = os.umask(0022)
ed53f981
ER
79 r = open(js_src, 'r')
80 f = open(js_file, 'w')
81 f.write(r.read())
04ce7f54 82 f.close()
ed53f981 83 r.close()
04ce7f54
ER
84 os.umask(old_umask)
85
51c62214 86def main():
6d31e66e 87 write_css();
04ce7f54 88 write_js();
c49ac31f 89 socket.setdefaulttimeout(30)
51c62214 90 try:
8e837ecd
ER
91 init_conf()
92 host = ""
93 port = config.request_handler_server_port
c87a0ffa 94 srv_ssl = config.request_handler_server_ssl
8e837ecd 95
2825d596
ER
96 try:
97 server = HTTPServer((host, port), MyHandler)
c87a0ffa
AM
98 if srv_ssl:
99 server.socket = ssl.wrap_socket (server.socket,
100 keyfile = config.request_handler_server_ssl_key,
101 certfile = config.request_handler_server_ssl_cert,
102 ca_certs = config.request_handler_server_ssl_cacert,
103 server_side=True)
2825d596 104 except Exception, e:
c87a0ffa
AM
105 log.notice("request_handler_server: can't start server on [%s:%d], ssl=%s: %s" % (host, port, str(srv_ssl), e))
106 print >> sys.stderr, "ERROR: Can't start server on [%s:%d], ssl=%s: %s" % (host, port, str(srv_ssl), e)
2825d596
ER
107 sys.exit(1)
108
c87a0ffa 109 log.notice('request_handler_server: started on [%s:%d], ssl=%s...' % (host, port, str(srv_ssl)))
51c62214
AM
110 server.serve_forever()
111 except KeyboardInterrupt:
3f40dee2 112 log.notice('request_handler_server: ^C received, shutting down server')
51c62214
AM
113 server.socket.close()
114
115if __name__ == '__main__':
116 main()
117
This page took 1.20424 seconds and 4 git commands to generate.