i wrote in python a simple text that sends domain_reload command over s xmlrpc interface to sr:
--------------------------------------------------------------- import xmlrpclib
XMLRPC_PROTOCOL = 'http' XMLRPC_SERVER = '127.0.0.1' XMLRPC_PORT = 6060
server_path = XMLRPC_PROTOCOL + '://' + XMLRPC_SERVER + \ ':' + str(XMLRPC_PORT)
c = xmlrpclib.ServerProxy(server_path)
erg = c.domain_reload() ----------------------------------------------------------------
when i execute the program, ngrep immediately prints what one would expect:
T 2009/07/04 17:20:02.455028 127.0.0.1:33418 -> 127.0.0.1:6060 [AP] POST /RPC2 HTTP/1.0..Host: 127.0.0.1:6060..User-Agent: xmlrpclib.py/1.0.1 ( by www.pythonware.com)..Content-Type: text/xml..Content-Length: 107.... ## T 2009/07/04 17:20:02.455358 127.0.0.1:33418 -> 127.0.0.1:6060 [AP] <?xml version='1.0'?>.<methodCall>.<methodName>domain_reload</methodName>.< params>.</params>.</methodCall>. ## T 2009/07/04 17:20:02.455718 127.0.0.1:6060 -> 127.0.0.1:33418 [AP] HTTP/1.0 200 OK..Via: SIP/2.0/TCP 127.0.0.1:33418..Server: SIP Route r (2.99.0-dev01-serk (i386/linux))..Content-Length: 274....<?xml version="1 .0"?>.<methodResponse>.<fault>.<value>.<struct>.<member>.<name>faultCode</n ame>.<value><int>500</int></value>.</member>.<member>.<name>faultString</na me>.<value><string>Method Not Found</string></value>.</member>.</struct>.</ value>.</fault>.</methodResponse>
however, python client program does not terminate until after more than 2 minutes. then it finally prints:
Traceback (most recent call last): File "sr-xmlrpc.py", line 15, in <module> erg = c.domain_reload() File "/usr/lib/python2.5/xmlrpclib.py", line 1147, in __call__ return self.__send(self.__name, args) File "/usr/lib/python2.5/xmlrpclib.py", line 1437, in __request verbose=self.__verbose File "/usr/lib/python2.5/xmlrpclib.py", line 1201, in request return self._parse_response(h.getfile(), sock) File "/usr/lib/python2.5/xmlrpclib.py", line 1340, in _parse_response return u.close() File "/usr/lib/python2.5/xmlrpclib.py", line 787, in close raise Fault(**self._stack[0]) xmlrpclib.Fault: <Fault 500: 'Method Not Found'>
i also tested with a php xmlrcp client with same result.
any idea why it takes so long and why parsing of response fails? is something missing from the response?
-- juha