pld-builder.new: PLD_Builder/request_handler_server.py (NEW) Simpl...

arekm arekm at pld-linux.org
Wed Mar 7 20:45:07 CET 2007


Author: arekm                        Date: Wed Mar  7 19:45:07 2007 GMT
Module: pld-builder.new               Tag: HEAD
---- Log message:
Simple server for receiving notifications.

---- Files affected:
pld-builder.new/PLD_Builder:
   request_handler_server.py (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: pld-builder.new/PLD_Builder/request_handler_server.py
diff -u /dev/null pld-builder.new/PLD_Builder/request_handler_server.py:1.1
--- /dev/null	Wed Mar  7 20:45:07 2007
+++ pld-builder.new/PLD_Builder/request_handler_server.py	Wed Mar  7 20:45:02 2007
@@ -0,0 +1,62 @@
+#!/usr/bin/python
+
+host = ""
+port = 1234
+
+
+import string
+import cgi
+import time
+import StringIO
+
+from os import curdir, sep
+from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
+
+import request_handler
+
+class MyHandler(BaseHTTPRequestHandler):
+
+	def do_GET(self):
+		self.send_error(401);
+
+	def do_POST(self):
+		global rootnode
+		try:
+			length = int(self.headers.getheader('content-length'))
+			ctype, pdict = cgi.parse_header(self.headers.getheader('content-type'))
+			if ctype != 'application/x-www-form-urlencoded':
+				self.send_error(401)
+				self.end_headers()
+				return
+
+			query = self.rfile.read(length)
+			sio = StringIO.StringIO()
+			sio.write(query)
+			sio.seek(0)
+
+			if not request_handler.handle_request_main(sio):
+				self.send_error(500)
+				self.end_headers()
+				return
+
+			self.send_response(200)
+			self.end_headers()
+
+		except Exception, e:
+			self.send_error(500)
+			self.end_headers()
+			raise
+			pass
+
+def main():
+	try:
+		server = HTTPServer((host, port), MyHandler)
+		print 'started httpserver...'
+		server.serve_forever()
+	except KeyboardInterrupt:
+		print '^C received, shutting down server'
+		server.socket.close()
+
+if __name__ == '__main__':
+	main()
+
================================================================


More information about the pld-cvs-commit mailing list