4 class TimeoutHTTPConnection(httplib.HTTPConnection):
6 httplib.HTTPConnection.connect(self)
7 self.sock.settimeout(self.timeout)
9 class TimeoutHTTP(httplib.HTTP):
10 _connection_class = TimeoutHTTPConnection
11 def set_timeout(self, timeout):
12 self._conn.timeout = timeout
14 class TimeoutTransport(xmlrpclib.Transport):
15 def __init__(self, timeout=10, *l, **kw):
16 xmlrpclib.Transport.__init__(self,*l,**kw)
18 def make_connection(self, host):
19 conn = TimeoutHTTP(host)
20 conn.set_timeout(self.timeout)
23 class TimeoutServerProxy(xmlrpclib.ServerProxy):
24 def __init__(self,uri,timeout=10,*l,**kw):
25 kw['transport']=TimeoutTransport(timeout=timeout, use_datetime=kw.get('use_datetime',0))
26 xmlrpclib.ServerProxy.__init__(self,uri,*l,**kw)
28 if __name__ == "__main__":
29 s=TimeoutServerProxy('http://127.0.0.1:9090',timeout=2)