[SR-Users] invalid xmlrpc response from pkg.stats?

Juha Heinanen jh at tutpro.com
Tue Mar 4 21:52:25 CET 2014


i tried make xmlrpc query on pkg.stats, but my xmlrpc lib was not able
to parse the response (below).  according to xmlrpc spec:

  The body of the response is a single XML structure, a
  <methodResponse>, which can contain a single <params> which contains a
  single <param> which contains a single <value>.

according to the spec <value> is scalar value or <struct> or <array>.
in sip proxy response below, there a several <struct>s in the <value>,
which according to my understanding is violation of the spec.

instead, the response should be like this:

<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value>
<array>
<data>
<value>
<struct>...</struct>
</value>
<value>
<struct>...</struct>
</value>
...
</data>
</array>
</param>
</methodResponse>

comments?

-- juha

--------------------------------------------------------------------------

Received the following response:

HTTP/1.0 200 OK
Via: SIP/2.0/TCP 127.0.0.1:36643
Server: OpenXg SIP Proxy (4.1.1-2 (i386/linux))
Content-Length: 6311

<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><struct><member><name>entry</name><value><int>0</int></value></member><member><name>pid</name><value><int>5846</int></value></member><member><name>rank</name><value><int>0</int></value></member><member><name>used</name><value><int>4553004</int></value></member><member><name>free</name><value><int>559936</int></value></member><member><name>real_used</name><value><int>5731520</int></value></member></struct>
<struct><member><name>entry</name><value><int>1</int></value></member><member><name>pid</name><value><int>5848</int></value></member><member><name>rank</name><value><int>1</int></value></member><member><name>used</name><value><int>4557328</int></value></member><member><name>free</name><value><int>554652</int></value></member><member><name>real_used</name><value><int>5736804</int></value></member></struct>
<struct><member><name>entry</name><value><int>2</int></value></member><member><name>pid</name><value><int>5849</int></value></member><member><name>rank</name><value><int>2</int></value></member><member><name>used</name><value><int>4557328</int></value></member><member><name>free</name><value><int>554652</int></value></member><member><name>real_used</name><value><int>5736804</int></value></member></struct>
<struct><member><name>entry</name><value><int>3</int></value></member><member><name>pid</name><value><int>5850</int></value></member><member><name>rank</name><value><int>3</int></value></member><member><name>used</name><value><int>4557328</int></value></member><member><name>free</name><value><int>554652</int></value></member><member><name>real_used</name><value><int>5736804</int></value></member></struct>
<struct><member><name>entry</name><value><int>4</int></value></member><member><name>pid</name><value><int>5851</int></value></member><member><name>rank</name><value><int>4</int></value></member><member><name>used</name><value><int>4557328</int></value></member><member><name>free</name><value><int>554652</int></value></member><member><name>real_used</name><value><int>5736804</int></value></member></struct>
<struct><member><name>entry</name><value><int>5</int></value></member><member><name>pid</name><value><int>5852</int></value></member><member><name>rank</name><value><int>4294967295</int></value></member><member><name>used</name><value><int>4556356</int></value></member><member><name>free</name><value><int>556296</int></value></member><member><name>real_used</name><value><int>5735160</int></value></member></struct>
<struct><member><name>entry</name><value><int>6</int></value></member><member><name>pid</name><value><int>5853</int></value></member><member><name>rank</name><value><int>4294967295</int></value></member><member><name>used</name><value><int>4556356</int></value></member><member><name>free</name><value><int>556296</int></value></member><member><name>real_used</name><value><int>5735160</int></value></member></struct>
<struct><member><name>entry</name><value><int>7</int></value></member><member><name>pid</name><value><int>5854</int></value></member><member><name>rank</name><value><int>4294967294</int></value></member><member><name>used</name><value><int>4563012</int></value></member><member><name>free</name><value><int>549112</int></value></member><member><name>real_used</name><value><int>5742344</int></value></member></struct>
<struct><member><name>entry</name><value><int>8</int></value></member><member><name>pid</name><value><int>5857</int></value></member><member><name>rank</name><value><int>4294967295</int></value></member><member><name>used</name><value><int>4556368</int></value></member><member><name>free</name><value><int>556236</int></value></member><member><name>real_used</name><value><int>5735220</int></value></member></struct>
<struct><member><name>entry</name><value><int>9</int></value></member><member><name>pid</name><value><int>5863</int></value></member><member><name>rank</name><value><int>4294967295</int></value></member><member><name>used</name><value><int>4556368</int></value></member><member><name>free</name><value><int>556236</int></value></member><member><name>real_used</name><value><int>5735220</int></value></member></struct>
<struct><member><name>entry</name><value><int>10</int></value></member><member><name>pid</name><value><int>5873</int></value></member><member><name>rank</name><value><int>4294967295</int></value></member><member><name>used</name><value><int>4557616</int></value></member><member><name>free</name><value><int>554844</int></value></member><member><name>real_used</name><value><int>5736612</int></value></member></struct>
<struct><member><name>entry</name><value><int>11</int></value></member><member><name>pid</name><value><int>5876</int></value></member><member><name>rank</name><value><int>5</int></value></member><member><name>used</name><value><int>4642360</int></value></member><member><name>free</name><value><int>467988</int></value></member><member><name>real_used</name><value><int>5823468</int></value></member></struct>
<struct><member><name>entry</name><value><int>12</int></value></member><member><name>pid</name><value><int>5877</int></value></member><member><name>rank</name><value><int>6</int></value></member><member><name>used</name><value><int>4618200</int></value></member><member><name>free</name><value><int>493396</int></value></member><member><name>real_used</name><value><int>5798060</int></value></member></struct>
<struct><member><name>entry</name><value><int>13</int></value></member><member><name>pid</name><value><int>5878</int></value></member><member><name>rank</name><value><int>7</int></value></member><member><name>used</name><value><int>4618200</int></value></member><member><name>free</name><value><int>493396</int></value></member><member><name>real_used</name><value><int>5798060</int></value></member></struct>
<struct><member><name>entry</name><value><int>14</int></value></member><member><name>pid</name><value><int>5884</int></value></member><member><name>rank</name><value><int>4294967292</int></value></member><member><name>used</name><value><int>4035956</int></value></member><member><name>free</name><value><int>497228</int></value></member><member><name>real_used</name><value><int>5307880</int></value></member></struct>
</value>
</param>
</params>
</methodResponse>



More information about the sr-users mailing list