Menu

#14 system.methodSignature does not return compliant data

open
nobody
None
5
2012-01-06
2012-01-06
Aaron
No

Per the XML-RPC introspection documentation, the return from system.methodSignature(string methodName) should be an array of signatures, each of which is an array with the return type, followed by any parameters. See this example:

Call:

<methodCall>
<methodName>system.methodSignature</methodName>
<params>
<param><value>
<string>sample.add</string>
</value></param>
</params>
</methodCall>

Response:

<methodResponse>
<params>
<param>
<value><array><data>
<value><array><data>
<value>
<string>int</string> <!-- return value -->
</value>
<value>
<string>int</string> <!-- 1st param -->
</value>
<value>
<string>int</string> <!-- 2nd param -->
</value>
</data></array></value>
</data></array>
</value></param>
</params>
</methodResponse>

The specification is here: http://xmlrpc-c.sourceforge.net/introspection.html

I was able to fix the problem on my local build by changing line 634 in ulxr_dispatcher.cpp from

CppString sig = (*it).first.getSignature(true, true);

to

CppString sig = (*it).first.getSignature(false, true);

Discussion


Log in to post a comment.

MongoDB Logo MongoDB