move example to different port
[multitaskhttpd.git] / ProxyServer.py
index 327a4d111490022d6c37f60eb859fea98c751557..4816cdc37c1d27a2cb44063ca29969ebf9300d48 100644 (file)
@@ -139,25 +139,26 @@ class ProxyServerRequestHandler(object):
             proxy.connect()
             self.proxies[session] = proxy
 
-        multitask.add(self.proxy_relay(reqtype))
+        yield self.proxy_relay(reqtype)
 
-        return True
+        #while p.serving:
+        #    (yield multitask.sleep(0.01))
+
+        raise StopIteration
 
     def onPOST(self, client, *args):
         """Serve a POST request."""
-        return self.on_query(client, "POST", *args)
+        yield self.on_query(client, "POST", *args)
 
     def onGET(self, client, *args):
         """Serve a GET request."""
-        return self.on_query(client, "GET", *args)
+        yield self.on_query(client, "GET", *args)
 
     def proxy_relay(self, reqtype):
 
         session = self.client.session 
         p = self.proxies[session]
 
-        #while p.serving:
-        #    (yield multitask.sleep(0.01))
         p.serving = True
 
         try:
@@ -292,6 +293,7 @@ class ProxyServerRequestHandler(object):
                     print 'proxy wants client to close_connection'
                 try:
                     yield self.client.connectionClosed()
+                    p.serving = False
                     raise httpd.ConnectionClosed
                 except httpd.ConnectionClosed:
                     if self.debuglevel > 0:
@@ -310,6 +312,6 @@ class ProxyServerRequestHandler(object):
             if self.debuglevel > 0:
                 print traceback.print_exc()
             
-
+        p.serving = False
         raise StopIteration