I wrote a little script that acts like a proxy, you just give it a URL and it will fetch the content and display it back to you.
For some reason, this proxy blocks sometimes and refuses to serve any new queries. The script still runs, but it seems like it's stuck somewhere. When I strace it to see what it's doing, I find it hanging on this instruction : root@backup[10.10.10.21] ~/SCRIPTS/INFOMANIAK # strace -fp 6918 Process 6918 attached - interrupt to quit recvfrom(6, ^CProcess 6918 detached root@backup[10.10.10.21] ~/SCRIPTS/INFOMANIAK # I read in the SimpleHTTPServer source code that one can inherit from the SocketServer.TrheadingMixIn mixin to enable a threaded server to handle multiple requests at a time instead of just one (thinking maybe that's what was blocking it). However, it seems like it has nothing to do with my problem. What I need to do is not only handle multiple requests at a time, but more importantly to make the request handler non-blocking. Any ideas ? here's come code : import SimpleHTTPServer import BaseHTTPServer import SocketServer import requests class Handler(SocketServer.ThreadingMixIn,SimpleHTTPServer.SimpleHTTPRequestHandler): def do_GET(self): self.send_response(200) self.send_header('Content-Type', 'text/html') self.end_headers() # self.path will contain a URL to be fetched by my proxy self.wfile.write(getFlux(self.path.lstrip("/"))) session = requests.Session() IP,PORT = "MY_IP_HERE",8080 def getFlux(url): response = session.get(url) s = response.text return s server = BaseHTTPServer.HTTPServer((IP,PORT),Handler) server.serve_forever() Thank you. -- https://mail.python.org/mailman/listinfo/python-list