alexdunlop81

proxy.py

Jul 18th, 2013
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.76 KB | None | 0 0
  1. from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
  2. #from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
  3. from SocketServer import ThreadingMixIn
  4. import sys
  5. import os
  6.  
  7.  
  8. #class ThreadedHTTPServer(ThreadingMixIn, HTTPServer):
  9. # """Handle requests in a separate thread."""
  10.  
  11. class StopableHTTPServer(HTTPServer):
  12. stop = False
  13.  
  14. # def force_stop(self):
  15. # self.server_close()
  16. # self.stopped = True
  17. #self.create_dummy_request()
  18.  
  19. def serve_forever(self):
  20. self.stop = False
  21. while not self.stop:
  22. self.handle_request()
  23. #self.server_close()
  24.  
  25. class MyHandler(BaseHTTPRequestHandler):
  26. _key = ''
  27. def do_QUIT(self):
  28. """send 200 OK response, and set server.stop to True"""
  29. self.send_response(200)
  30. self.end_headers()
  31. self.server.stop = True
  32.  
  33.  
  34. def do_GET(self):
  35.  
  36. if 'stop' in self.path:
  37. print "Callling stop"
  38. self.do_QUIT()
  39. return
  40. else:
  41. try:
  42. f = open(self._key, 'r')
  43. self.send_response(200)
  44. self.send_header('Content-type', 'text/plain')
  45. self.end_headers()
  46. data=f.read()
  47. self.wfile.write(data)
  48. f.close()
  49. except IOError:
  50. self.send_error(404,'File Not Found: %s' % self.path)
  51. #thread.sleep(10)
  52. return
  53.  
  54. def stop_server (port):
  55. """send QUIT request to http server running on localhost:<port>"""
  56. conn = httplib.HTTPConnection("localhost:%d" % port)
  57. conn.request("QUIT", "/")
  58. conn.getresponse()
  59.  
  60.  
  61. HOST_NAME = '127.0.0.1'
  62. PORT_NUMBER = int(sys.argv[2])
  63. RUN=True
  64. key=sys.argv[1]
  65. #print "==== PROXY: Using signal file " + file
  66.  
  67. if __name__ == '__main__':
  68. MyHandler._key=key
  69. server = StopableHTTPServer(('',PORT_NUMBER), MyHandler)
  70. #while RUN:
  71. #try:
  72. server.serve_forever()
  73. #except:
  74. # print "Stopping"
  75. # server.force_stop()
  76. sys.exit()
Advertisement
Add Comment
Please, Sign In to add comment