summaryrefslogtreecommitdiff
path: root/pear/packages/XML_RPC-1.0.4.tar
blob: b1eb50e7429d72136b5989a06e696c237cf5e310 (plain)
ofshex dumpascii
0000 70 61 63 6b 61 67 65 2e 78 6d 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 package.xml.....................
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0060 00 00 00 00 31 30 30 36 34 34 20 00 20 20 32 30 31 30 20 00 20 20 20 37 36 34 20 00 20 20 20 20 ....100644....2010.....764......
0080 20 20 20 33 32 31 33 20 20 37 35 34 36 36 36 37 35 36 30 20 20 20 36 33 37 33 20 00 00 00 00 00 ...3213..7546667560...6373......
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 22 31 2e 30 22 20 65 6e 63 6f 64 69 6e 67 3d 22 49 53 <?xml.version="1.0".encoding="IS
0220 4f 2d 38 38 35 39 2d 31 22 20 3f 3e 0a 3c 70 61 63 6b 61 67 65 20 76 65 72 73 69 6f 6e 3d 22 31 O-8859-1".?>.<package.version="1
0240 2e 30 22 3e 0a 20 20 3c 6e 61 6d 65 3e 58 4d 4c 5f 52 50 43 3c 2f 6e 61 6d 65 3e 0a 20 20 3c 73 .0">...<name>XML_RPC</name>...<s
0260 75 6d 6d 61 72 79 3e 50 48 50 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 65 ummary>PHP.implementation.of.the
0280 20 58 4d 4c 2d 52 50 43 20 70 72 6f 74 6f 63 6f 6c 3c 2f 73 75 6d 6d 61 72 79 3e 0a 20 20 3c 64 .XML-RPC.protocol</summary>...<d
02a0 65 73 63 72 69 70 74 69 6f 6e 3e 54 68 69 73 20 69 73 20 61 20 50 45 41 52 2d 69 66 69 65 64 20 escription>This.is.a.PEAR-ified.
02c0 76 65 72 73 69 6f 6e 20 6f 66 20 55 73 65 66 75 6c 20 69 6e 63 27 73 20 58 4d 4c 2d 52 50 43 0a version.of.Useful.inc's.XML-RPC.
02e0 66 6f 72 20 50 48 50 2e 20 20 49 74 20 68 61 73 20 73 75 70 70 6f 72 74 20 66 6f 72 20 48 54 54 for.PHP...It.has.support.for.HTT
0300 50 20 74 72 61 6e 73 70 6f 72 74 2c 20 70 72 6f 78 69 65 73 20 61 6e 64 20 61 75 74 68 65 6e 74 P.transport,.proxies.and.authent
0320 69 63 61 74 69 6f 6e 2e 3c 2f 64 65 73 63 72 69 70 74 69 6f 6e 3e 0a 20 20 3c 6d 61 69 6e 74 61 ication.</description>...<mainta
0340 69 6e 65 72 73 3e 0a 20 20 20 20 3c 6d 61 69 6e 74 61 69 6e 65 72 3e 0a 20 20 20 20 20 20 3c 75 iners>.....<maintainer>.......<u
0360 73 65 72 3e 73 73 62 3c 2f 75 73 65 72 3e 0a 20 20 20 20 20 20 3c 6e 61 6d 65 3e 53 74 69 67 20 ser>ssb</user>.......<name>Stig.
0380 53 e6 74 68 65 72 20 42 61 6b 6b 65 6e 3c 2f 6e 61 6d 65 3e 0a 20 20 20 20 20 20 3c 65 6d 61 69 S.ther.Bakken</name>.......<emai
03a0 6c 3e 73 74 69 67 40 70 68 70 2e 6e 65 74 3c 2f 65 6d 61 69 6c 3e 0a 20 20 20 20 20 20 3c 72 6f l>stig@php.net</email>.......<ro
03c0 6c 65 3e 6c 65 61 64 3c 2f 72 6f 6c 65 3e 0a 20 20 20 20 3c 2f 6d 61 69 6e 74 61 69 6e 65 72 3e le>lead</role>.....</maintainer>
03e0 0a 20 20 3c 2f 6d 61 69 6e 74 61 69 6e 65 72 73 3e 0a 20 20 3c 72 65 6c 65 61 73 65 3e 0a 20 20 ...</maintainers>...<release>...
0400 20 20 3c 76 65 72 73 69 6f 6e 3e 31 2e 30 2e 34 3c 2f 76 65 72 73 69 6f 6e 3e 0a 20 20 20 20 3c ..<version>1.0.4</version>.....<
0420 64 61 74 65 3e 32 30 30 32 2d 31 30 2d 30 32 3c 2f 64 61 74 65 3e 0a 20 20 20 20 3c 6c 69 63 65 date>2002-10-02</date>.....<lice
0440 6e 73 65 3e 50 48 50 20 4c 69 63 65 6e 73 65 3c 2f 6c 69 63 65 6e 73 65 3e 0a 20 20 20 20 3c 73 nse>PHP.License</license>.....<s
0460 74 61 74 65 3e 73 74 61 62 6c 65 3c 2f 73 74 61 74 65 3e 0a 20 20 20 20 3c 6e 6f 74 65 73 3e 2a tate>stable</state>.....<notes>*
0480 20 61 64 64 65 64 20 48 54 54 50 20 70 72 6f 78 79 20 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 20 .added.HTTP.proxy.authorization.
04a0 73 75 70 70 6f 72 74 20 28 74 68 61 6e 6b 73 20 74 6f 20 41 72 6e 61 75 64 20 4c 69 6d 62 6f 75 support.(thanks.to.Arnaud.Limbou
04c0 72 67 29 3c 2f 6e 6f 74 65 73 3e 0a 20 20 20 20 3c 66 69 6c 65 6c 69 73 74 3e 0a 20 20 20 20 20 rg)</notes>.....<filelist>......
04e0 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 70 68 70 22 20 62 61 73 65 69 6e 73 74 61 6c 6c 64 69 72 .<file.role="php".baseinstalldir
0500 3d 22 58 4d 4c 22 20 6d 64 35 73 75 6d 3d 22 34 34 34 36 65 34 62 66 37 31 32 33 32 65 30 39 64 ="XML".md5sum="4446e4bf71232e09d
0520 39 33 37 30 39 64 38 35 34 63 63 34 36 63 39 22 20 6e 61 6d 65 3d 22 52 50 43 2e 70 68 70 22 2f 93709d854cc46c9".name="RPC.php"/
0540 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 70 68 70 22 20 62 61 73 65 69 6e 73 >.......<file.role="php".baseins
0560 74 61 6c 6c 64 69 72 3d 22 58 4d 4c 2f 52 50 43 22 20 6d 64 35 73 75 6d 3d 22 65 34 66 37 64 32 talldir="XML/RPC".md5sum="e4f7d2
0580 36 38 66 38 62 61 63 30 63 63 62 33 39 62 39 36 37 62 33 33 61 38 37 62 35 64 22 20 6e 61 6d 65 68f8bac0ccb39b967b33a87b5d".name
05a0 3d 22 53 65 72 76 65 72 2e 70 68 70 22 2f 3e 0a 20 20 20 20 3c 2f 66 69 6c 65 6c 69 73 74 3e 0a ="Server.php"/>.....</filelist>.
05c0 20 20 3c 2f 72 65 6c 65 61 73 65 3e 0a 20 20 3c 63 68 61 6e 67 65 6c 6f 67 3e 0a 20 20 20 20 3c ..</release>...<changelog>.....<
05e0 72 65 6c 65 61 73 65 3e 0a 20 20 20 20 20 20 3c 76 65 72 73 69 6f 6e 3e 31 2e 30 2e 33 3c 2f 76 release>.......<version>1.0.3</v
0600 65 72 73 69 6f 6e 3e 0a 20 20 20 20 20 20 3c 64 61 74 65 3e 32 30 30 32 2d 30 35 2d 31 39 3c 2f ersion>.......<date>2002-05-19</
0620 64 61 74 65 3e 0a 20 20 20 20 20 20 3c 73 74 61 74 65 3e 73 74 61 62 6c 65 3c 2f 73 74 61 74 65 date>.......<state>stable</state
0640 3e 0a 20 20 20 20 20 20 3c 6e 6f 74 65 73 3e 2a 20 66 69 78 20 62 75 67 20 77 68 65 6e 20 70 61 >.......<notes>*.fix.bug.when.pa
0660 72 73 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 20 77 69 74 68 20 62 6f 6f 6c 65 61 6e 20 74 79 70 rsing.responses.with.boolean.typ
0680 65 73 0a 0a 3c 2f 6e 6f 74 65 73 3e 0a 20 20 20 20 3c 2f 72 65 6c 65 61 73 65 3e 0a 20 20 20 20 es..</notes>.....</release>.....
06a0 3c 72 65 6c 65 61 73 65 3e 0a 20 20 20 20 20 20 3c 76 65 72 73 69 6f 6e 3e 31 2e 30 2e 32 3c 2f <release>.......<version>1.0.2</
06c0 76 65 72 73 69 6f 6e 3e 0a 20 20 20 20 20 20 3c 64 61 74 65 3e 32 30 30 32 2d 30 34 2d 31 36 3c version>.......<date>2002-04-16<
06e0 2f 64 61 74 65 3e 0a 20 20 20 20 20 20 3c 73 74 61 74 65 3e 73 74 61 62 6c 65 3c 2f 73 74 61 74 /date>.......<state>stable</stat
0700 65 3e 0a 20 20 20 20 20 20 3c 6e 6f 74 65 73 3e 2a 20 45 5f 41 4c 4c 20 66 69 78 65 73 0a 2a 20 e>.......<notes>*.E_ALL.fixes.*.
0720 66 69 78 20 48 54 54 50 20 72 65 73 70 6f 6e 73 65 20 68 65 61 64 65 72 20 70 61 72 73 69 6e 67 fix.HTTP.response.header.parsing
0740 0a 0a 3c 2f 6e 6f 74 65 73 3e 0a 20 20 20 20 3c 2f 72 65 6c 65 61 73 65 3e 0a 20 20 20 20 3c 72 ..</notes>.....</release>.....<r
0760 65 6c 65 61 73 65 3e 0a 20 20 20 20 20 20 3c 76 65 72 73 69 6f 6e 3e 31 2e 30 2e 31 3c 2f 76 65 elease>.......<version>1.0.1</ve
0780 72 73 69 6f 6e 3e 0a 20 20 20 20 20 20 3c 64 61 74 65 3e 32 30 30 31 2d 30 39 2d 32 35 3c 2f 64 rsion>.......<date>2001-09-25</d
07a0 61 74 65 3e 0a 20 20 20 20 20 20 3c 73 74 61 74 65 3e 73 74 61 62 6c 65 3c 2f 73 74 61 74 65 3e ate>.......<state>stable</state>
07c0 0a 20 20 20 20 20 20 3c 6e 6f 74 65 73 3e 54 68 69 73 20 69 73 20 61 20 50 45 41 52 2d 69 66 69 .......<notes>This.is.a.PEAR-ifi
07e0 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 55 73 65 66 75 6c 20 49 6e 63 27 73 20 31 2e 30 2e 31 ed.version.of.Useful.Inc's.1.0.1
0800 20 72 65 6c 65 61 73 65 2e 0a 49 6e 63 6c 75 64 65 73 20 61 6e 20 75 72 67 65 6e 74 20 73 65 63 .release..Includes.an.urgent.sec
0820 75 72 69 74 79 20 66 69 78 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 44 61 6e 20 4c 69 62 62 urity.fix.identified.by.Dan.Libb
0840 79 20 26 6c 74 3b 64 61 6e 40 6c 69 62 62 79 2e 63 6f 6d 26 67 74 3b 2e 0a 3c 2f 6e 6f 74 65 73 y.&lt;dan@libby.com&gt;..</notes
0860 3e 0a 20 20 20 20 3c 2f 72 65 6c 65 61 73 65 3e 0a 20 20 3c 2f 63 68 61 6e 67 65 6c 6f 67 3e 0a >.....</release>...</changelog>.
0880 3c 2f 70 61 63 6b 61 67 65 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 </package>......................
08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a00 58 4d 4c 5f 52 50 43 2d 31 2e 30 2e 34 2f 52 50 43 2e 70 68 70 00 00 00 00 00 00 00 00 00 00 00 XML_RPC-1.0.4/RPC.php...........
0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a60 00 00 00 00 31 30 30 36 34 34 20 00 20 20 32 30 31 30 20 00 20 20 20 37 36 34 20 00 20 20 20 20 ....100644....2010.....764......
0a80 20 31 30 31 34 32 34 20 20 37 35 34 36 36 36 30 32 37 33 20 20 20 37 32 35 32 20 00 00 00 00 00 .101424..7546660273...7252......
0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c00 3c 3f 70 68 70 0a 2f 2f 20 62 79 20 45 64 64 20 44 75 6d 62 69 6c 6c 20 28 43 29 20 31 39 39 39 <?php.//.by.Edd.Dumbill.(C).1999
0c20 2d 32 30 30 31 0a 2f 2f 20 3c 65 64 64 40 75 73 65 66 75 6c 69 6e 63 2e 63 6f 6d 3e 0a 2f 2f 20 -2001.//.<edd@usefulinc.com>.//.
0c40 24 49 64 3a 20 52 50 43 2e 70 68 70 2c 76 20 31 2e 31 31 20 32 30 30 32 2f 31 30 2f 30 32 20 32 $Id:.RPC.php,v.1.11.2002/10/02.2
0c60 31 3a 31 30 3a 31 39 20 73 73 62 20 45 78 70 20 24 0a 0a 2f 2f 20 4c 69 63 65 6e 73 65 20 69 73 1:10:19.ssb.Exp.$..//.License.is
0c80 20 67 72 61 6e 74 65 64 20 74 6f 20 75 73 65 20 6f 72 20 6d 6f 64 69 66 79 20 74 68 69 73 20 73 .granted.to.use.or.modify.this.s
0ca0 6f 66 74 77 61 72 65 20 28 22 58 4d 4c 2d 52 50 43 20 66 6f 72 20 50 48 50 22 29 0a 2f 2f 20 66 oftware.("XML-RPC.for.PHP").//.f
0cc0 6f 72 20 63 6f 6d 6d 65 72 63 69 61 6c 20 6f 72 20 6e 6f 6e 2d 63 6f 6d 6d 65 72 63 69 61 6c 20 or.commercial.or.non-commercial.
0ce0 75 73 65 20 70 72 6f 76 69 64 65 64 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 6f 66 20 74 68 use.provided.the.copyright.of.th
0d00 65 20 61 75 74 68 6f 72 0a 2f 2f 20 69 73 20 70 72 65 73 65 72 76 65 64 20 69 6e 20 61 6e 79 20 e.author.//.is.preserved.in.any.
0d20 64 69 73 74 72 69 62 75 74 65 64 20 6f 72 20 64 65 72 69 76 61 74 69 76 65 20 77 6f 72 6b 2e 0a distributed.or.derivative.work..
0d40 0a 2f 2f 20 54 48 49 53 20 53 4f 46 54 57 41 52 45 20 49 53 20 50 52 4f 56 49 44 45 44 20 42 59 .//.THIS.SOFTWARE.IS.PROVIDED.BY
0d60 20 54 48 45 20 41 55 54 48 4f 52 20 60 60 41 53 20 49 53 27 27 20 41 4e 44 20 41 4e 59 20 45 58 .THE.AUTHOR.``AS.IS''.AND.ANY.EX
0d80 50 52 45 53 53 45 44 20 4f 52 0a 2f 2f 20 49 4d 50 4c 49 45 44 20 57 41 52 52 41 4e 54 49 45 53 PRESSED.OR.//.IMPLIED.WARRANTIES
0da0 2c 20 49 4e 43 4c 55 44 49 4e 47 2c 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 2c ,.INCLUDING,.BUT.NOT.LIMITED.TO,
0dc0 20 54 48 45 20 49 4d 50 4c 49 45 44 20 57 41 52 52 41 4e 54 49 45 53 0a 2f 2f 20 4f 46 20 4d 45 .THE.IMPLIED.WARRANTIES.//.OF.ME
0de0 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 41 4e 44 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 RCHANTABILITY.AND.FITNESS.FOR.A.
0e00 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 20 41 52 45 20 44 49 53 43 4c 41 49 4d 45 PARTICULAR.PURPOSE.ARE.DISCLAIME
0e20 44 2e 0a 2f 2f 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 53 48 41 4c 4c 20 54 48 45 20 41 55 54 48 D..//.IN.NO.EVENT.SHALL.THE.AUTH
0e40 4f 52 20 42 45 20 4c 49 41 42 4c 45 20 46 4f 52 20 41 4e 59 20 44 49 52 45 43 54 2c 20 49 4e 44 OR.BE.LIABLE.FOR.ANY.DIRECT,.IND
0e60 49 52 45 43 54 2c 0a 2f 2f 20 49 4e 43 49 44 45 4e 54 41 4c 2c 20 53 50 45 43 49 41 4c 2c 20 45 IRECT,.//.INCIDENTAL,.SPECIAL,.E
0e80 58 45 4d 50 4c 41 52 59 2c 20 4f 52 20 43 4f 4e 53 45 51 55 45 4e 54 49 41 4c 20 44 41 4d 41 47 XEMPLARY,.OR.CONSEQUENTIAL.DAMAG
0ea0 45 53 20 28 49 4e 43 4c 55 44 49 4e 47 2c 20 42 55 54 0a 2f 2f 20 4e 4f 54 20 4c 49 4d 49 54 45 ES.(INCLUDING,.BUT.//.NOT.LIMITE
0ec0 44 20 54 4f 2c 20 50 52 4f 43 55 52 45 4d 45 4e 54 20 4f 46 20 53 55 42 53 54 49 54 55 54 45 20 D.TO,.PROCUREMENT.OF.SUBSTITUTE.
0ee0 47 4f 4f 44 53 20 4f 52 20 53 45 52 56 49 43 45 53 3b 20 4c 4f 53 53 20 4f 46 20 55 53 45 2c 0a GOODS.OR.SERVICES;.LOSS.OF.USE,.
0f00 2f 2f 20 44 41 54 41 2c 20 4f 52 20 50 52 4f 46 49 54 53 3b 20 4f 52 20 42 55 53 49 4e 45 53 53 //.DATA,.OR.PROFITS;.OR.BUSINESS
0f20 20 49 4e 54 45 52 52 55 50 54 49 4f 4e 29 20 48 4f 57 45 56 45 52 20 43 41 55 53 45 44 20 41 4e .INTERRUPTION).HOWEVER.CAUSED.AN
0f40 44 20 4f 4e 20 41 4e 59 0a 2f 2f 20 54 48 45 4f 52 59 20 4f 46 20 4c 49 41 42 49 4c 49 54 59 2c D.ON.ANY.//.THEORY.OF.LIABILITY,
0f60 20 57 48 45 54 48 45 52 20 49 4e 20 43 4f 4e 54 52 41 43 54 2c 20 53 54 52 49 43 54 20 4c 49 41 .WHETHER.IN.CONTRACT,.STRICT.LIA
0f80 42 49 4c 49 54 59 2c 20 4f 52 20 54 4f 52 54 0a 2f 2f 20 28 49 4e 43 4c 55 44 49 4e 47 20 4e 45 BILITY,.OR.TORT.//.(INCLUDING.NE
0fa0 47 4c 49 47 45 4e 43 45 20 4f 52 20 4f 54 48 45 52 57 49 53 45 29 20 41 52 49 53 49 4e 47 20 49 GLIGENCE.OR.OTHERWISE).ARISING.I
0fc0 4e 20 41 4e 59 20 57 41 59 20 4f 55 54 20 4f 46 20 54 48 45 20 55 53 45 20 4f 46 0a 2f 2f 20 54 N.ANY.WAY.OUT.OF.THE.USE.OF.//.T
0fe0 48 49 53 20 53 4f 46 54 57 41 52 45 2c 20 45 56 45 4e 20 49 46 20 41 44 56 49 53 45 44 20 4f 46 HIS.SOFTWARE,.EVEN.IF.ADVISED.OF
1000 20 54 48 45 20 50 4f 53 53 49 42 49 4c 49 54 59 20 4f 46 20 53 55 43 48 20 44 41 4d 41 47 45 2e .THE.POSSIBILITY.OF.SUCH.DAMAGE.
1020 0a 0a 2f 2f 20 41 64 61 70 74 65 64 20 74 6f 20 50 45 41 52 20 73 74 61 6e 64 61 72 64 73 20 62 ..//.Adapted.to.PEAR.standards.b
1040 79 20 53 74 69 67 20 53 e6 74 68 65 72 20 42 61 6b 6b 65 6e 20 3c 73 74 69 67 40 70 68 70 2e 6e y.Stig.S.ther.Bakken.<stig@php.n
1060 65 74 3e 20 61 6e 64 0a 2f 2f 20 4d 61 72 74 69 6e 20 4a 61 6e 73 65 6e 20 3c 6d 6a 40 70 68 70 et>.and.//.Martin.Jansen.<mj@php
1080 2e 6e 65 74 3e 0a 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 22 50 45 41 52 2e 70 68 70 22 3b 0a .net>..require_once."PEAR.php";.
10a0 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 78 6d 6c 5f 70 61 72 73 65 .if.(!function_exists('xml_parse
10c0 72 5f 63 72 65 61 74 65 27 29 29 20 7b 0a 2f 2f 20 57 69 6e 20 33 32 20 66 69 78 2e 20 46 72 6f r_create')).{.//.Win.32.fix..Fro
10e0 6d 3a 20 22 4c 65 6f 20 57 65 73 74 22 20 3c 6c 77 65 73 74 40 69 6d 61 67 69 6e 65 74 2e 66 72 m:."Leo.West".<lwest@imaginet.fr
1100 3e 0a 20 20 20 20 69 66 28 24 57 49 4e 44 49 52 29 20 7b 0a 20 20 20 20 20 20 20 20 64 6c 28 22 >.....if($WINDIR).{.........dl("
1120 70 68 70 33 5f 78 6d 6c 2e 64 6c 6c 22 29 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 php3_xml.dll");.....}.else.{....
1140 20 20 20 20 20 64 6c 28 22 78 6d 6c 2e 73 6f 22 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 24 47 4c 4f .....dl("xml.so");.....}.}..$GLO
1160 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 49 34 27 5d 3d 22 69 34 22 3b 0a 24 47 4c 4f 42 41 4c BALS['XML_RPC_I4']="i4";.$GLOBAL
1180 53 5b 27 58 4d 4c 5f 52 50 43 5f 49 6e 74 27 5d 3d 22 69 6e 74 22 3b 0a 24 47 4c 4f 42 41 4c 53 S['XML_RPC_Int']="int";.$GLOBALS
11a0 5b 27 58 4d 4c 5f 52 50 43 5f 42 6f 6f 6c 65 61 6e 27 5d 3d 22 62 6f 6f 6c 65 61 6e 22 3b 0a 24 ['XML_RPC_Boolean']="boolean";.$
11c0 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 44 6f 75 62 6c 65 27 5d 3d 22 64 6f 75 62 6c GLOBALS['XML_RPC_Double']="doubl
11e0 65 22 3b 0a 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 53 74 72 69 6e 67 27 5d 3d 22 e";.$GLOBALS['XML_RPC_String']="
1200 73 74 72 69 6e 67 22 3b 0a 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 44 61 74 65 54 string";.$GLOBALS['XML_RPC_DateT
1220 69 6d 65 27 5d 3d 22 64 61 74 65 54 69 6d 65 2e 69 73 6f 38 36 30 31 22 3b 0a 24 47 4c 4f 42 41 ime']="dateTime.iso8601";.$GLOBA
1240 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 42 61 73 65 36 34 27 5d 3d 22 62 61 73 65 36 34 22 3b 0a 24 LS['XML_RPC_Base64']="base64";.$
1260 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 41 72 72 61 79 27 5d 3d 22 61 72 72 61 79 22 GLOBALS['XML_RPC_Array']="array"
1280 3b 0a 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 53 74 72 75 63 74 27 5d 3d 22 73 74 ;.$GLOBALS['XML_RPC_Struct']="st
12a0 72 75 63 74 22 3b 0a 0a 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 54 79 70 65 73 27 ruct";..$GLOBALS['XML_RPC_Types'
12c0 5d 3d 61 72 72 61 79 28 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 49 34 27 5d 20 3d ]=array($GLOBALS['XML_RPC_I4'].=
12e0 3e 20 31 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 >.1,............................
1300 20 20 20 20 20 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 49 6e 74 27 5d 20 3d 3e 20 .....$GLOBALS['XML_RPC_Int'].=>.
1320 31 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 1,..............................
1340 20 20 20 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 42 6f 6f 6c 65 61 6e 27 5d 20 3d ...$GLOBALS['XML_RPC_Boolean'].=
1360 3e 20 31 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 >.1,............................
1380 20 20 20 20 20 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 53 74 72 69 6e 67 27 5d 20 .....$GLOBALS['XML_RPC_String'].
13a0 3d 3e 20 31 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 =>.1,...........................
13c0 20 20 20 20 20 20 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 44 6f 75 62 6c 65 27 5d ......$GLOBALS['XML_RPC_Double']
13e0 20 3d 3e 20 31 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .=>.1,..........................
1400 20 20 20 20 20 20 20 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 44 61 74 65 54 69 6d .......$GLOBALS['XML_RPC_DateTim
1420 65 27 5d 20 3d 3e 20 31 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e'].=>.1,.......................
1440 20 20 20 20 20 20 20 20 20 20 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 42 61 73 65 ..........$GLOBALS['XML_RPC_Base
1460 36 34 27 5d 20 3d 3e 20 31 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64'].=>.1,......................
1480 20 20 20 20 20 20 20 20 20 20 20 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 41 72 72 ...........$GLOBALS['XML_RPC_Arr
14a0 61 79 27 5d 20 3d 3e 20 32 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ay'].=>.2,......................
14c0 20 20 20 20 20 20 20 20 20 20 20 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 53 74 72 ...........$GLOBALS['XML_RPC_Str
14e0 75 63 74 27 5d 20 3d 3e 20 33 29 3b 0a 0a 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f uct'].=>.3);..$GLOBALS['XML_RPC_
1500 65 6e 74 69 74 69 65 73 27 5d 3d 61 72 72 61 79 28 22 71 75 6f 74 22 20 3d 3e 20 27 22 27 2c 0a entities']=array("quot".=>.'"',.
1520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1540 20 20 20 22 61 6d 70 22 20 3d 3e 20 22 26 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..."amp".=>."&",................
1560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6c 74 22 20 3d 3e 20 22 3c 22 2c ...................."lt".=>."<",
1580 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15a0 20 20 20 20 22 67 74 22 20 3d 3e 20 22 3e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...."gt".=>.">",................
15c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 70 6f 73 22 20 3d 3e 20 22 27 ...................."apos".=>."'
15e0 22 29 3b 0a 0a 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 65 72 72 27 5d 5b 22 75 6e ");..$GLOBALS['XML_RPC_err']["un
1600 6b 6e 6f 77 6e 5f 6d 65 74 68 6f 64 22 5d 3d 31 3b 0a 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f known_method"]=1;.$GLOBALS['XML_
1620 52 50 43 5f 73 74 72 27 5d 5b 22 75 6e 6b 6e 6f 77 6e 5f 6d 65 74 68 6f 64 22 5d 3d 22 55 6e 6b RPC_str']["unknown_method"]="Unk
1640 6e 6f 77 6e 20 6d 65 74 68 6f 64 22 3b 0a 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f nown.method";.$GLOBALS['XML_RPC_
1660 65 72 72 27 5d 5b 22 69 6e 76 61 6c 69 64 5f 72 65 74 75 72 6e 22 5d 3d 32 3b 0a 24 47 4c 4f 42 err']["invalid_return"]=2;.$GLOB
1680 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 73 74 72 27 5d 5b 22 69 6e 76 61 6c 69 64 5f 72 65 74 75 ALS['XML_RPC_str']["invalid_retu
16a0 72 6e 22 5d 3d 22 49 6e 76 61 6c 69 64 20 72 65 74 75 72 6e 20 70 61 79 6c 6f 61 64 3a 20 65 6e rn"]="Invalid.return.payload:.en
16c0 61 62 6c 69 6e 67 20 64 65 62 75 67 67 69 6e 67 20 74 6f 20 65 78 61 6d 69 6e 65 20 69 6e 63 6f abling.debugging.to.examine.inco
16e0 6d 69 6e 67 20 70 61 79 6c 6f 61 64 22 3b 0a 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 ming.payload";.$GLOBALS['XML_RPC
1700 5f 65 72 72 27 5d 5b 22 69 6e 63 6f 72 72 65 63 74 5f 70 61 72 61 6d 73 22 5d 3d 33 3b 0a 24 47 _err']["incorrect_params"]=3;.$G
1720 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 73 74 72 27 5d 5b 22 69 6e 63 6f 72 72 65 63 74 LOBALS['XML_RPC_str']["incorrect
1740 5f 70 61 72 61 6d 73 22 5d 3d 22 49 6e 63 6f 72 72 65 63 74 20 70 61 72 61 6d 65 74 65 72 73 20 _params"]="Incorrect.parameters.
1760 70 61 73 73 65 64 20 74 6f 20 6d 65 74 68 6f 64 22 3b 0a 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c passed.to.method";.$GLOBALS['XML
1780 5f 52 50 43 5f 65 72 72 27 5d 5b 22 69 6e 74 72 6f 73 70 65 63 74 5f 75 6e 6b 6e 6f 77 6e 22 5d _RPC_err']["introspect_unknown"]
17a0 3d 34 3b 0a 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 73 74 72 27 5d 5b 22 69 6e 74 =4;.$GLOBALS['XML_RPC_str']["int
17c0 72 6f 73 70 65 63 74 5f 75 6e 6b 6e 6f 77 6e 22 5d 3d 22 43 61 6e 27 74 20 69 6e 74 72 6f 73 70 rospect_unknown"]="Can't.introsp
17e0 65 63 74 3a 20 6d 65 74 68 6f 64 20 75 6e 6b 6e 6f 77 6e 22 3b 0a 24 47 4c 4f 42 41 4c 53 5b 27 ect:.method.unknown";.$GLOBALS['
1800 58 4d 4c 5f 52 50 43 5f 65 72 72 27 5d 5b 22 68 74 74 70 5f 65 72 72 6f 72 22 5d 3d 35 3b 0a 24 XML_RPC_err']["http_error"]=5;.$
1820 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 73 74 72 27 5d 5b 22 68 74 74 70 5f 65 72 72 GLOBALS['XML_RPC_str']["http_err
1840 6f 72 22 5d 3d 22 44 69 64 6e 27 74 20 72 65 63 65 69 76 65 20 32 30 30 20 4f 4b 20 66 72 6f 6d or"]="Didn't.receive.200.OK.from
1860 20 72 65 6d 6f 74 65 20 73 65 72 76 65 72 2e 22 3b 0a 0a 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c .remote.server.";..$GLOBALS['XML
1880 5f 52 50 43 5f 64 65 66 65 6e 63 6f 64 69 6e 67 27 5d 3d 22 55 54 46 2d 38 22 3b 0a 0a 2f 2f 20 _RPC_defencoding']="UTF-8";..//.
18a0 6c 65 74 20 75 73 65 72 20 65 72 72 6f 72 73 20 73 74 61 72 74 20 61 74 20 38 30 30 0a 24 47 4c let.user.errors.start.at.800.$GL
18c0 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 65 72 72 75 73 65 72 27 5d 3d 38 30 30 3b 0a 2f 2f OBALS['XML_RPC_erruser']=800;.//
18e0 20 6c 65 74 20 58 4d 4c 20 70 61 72 73 65 20 65 72 72 6f 72 73 20 73 74 61 72 74 20 61 74 20 31 .let.XML.parse.errors.start.at.1
1900 30 30 0a 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 65 72 72 78 6d 6c 27 5d 3d 31 30 00.$GLOBALS['XML_RPC_errxml']=10
1920 30 3b 0a 0a 2f 2f 20 66 6f 72 6d 75 6c 61 74 65 20 62 61 63 6b 73 6c 61 73 68 65 73 20 66 6f 72 0;..//.formulate.backslashes.for
1940 20 65 73 63 61 70 69 6e 67 20 72 65 67 65 78 70 0a 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 .escaping.regexp.$GLOBALS['XML_R
1960 50 43 5f 62 61 63 6b 73 6c 61 73 68 27 5d 3d 63 68 72 28 39 32 29 2e 63 68 72 28 39 32 29 3b 0a PC_backslash']=chr(92).chr(92);.
1980 0a 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 74 77 6f 73 6c 61 73 68 27 5d 3d 24 47 .$GLOBALS['XML_RPC_twoslash']=$G
19a0 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 62 61 63 6b 73 6c 61 73 68 27 5d 20 2e 20 24 47 LOBALS['XML_RPC_backslash']...$G
19c0 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 62 61 63 6b 73 6c 61 73 68 27 5d 3b 0a 24 47 4c LOBALS['XML_RPC_backslash'];.$GL
19e0 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 74 77 6f 73 6c 61 73 68 27 5d 3d 22 32 53 4c 53 22 OBALS['XML_RPC_twoslash']="2SLS"
1a00 3b 0a 2f 2f 20 75 73 65 64 20 74 6f 20 73 74 6f 72 65 20 73 74 61 74 65 20 64 75 72 69 6e 67 20 ;.//.used.to.store.state.during.
1a20 70 61 72 73 69 6e 67 0a 2f 2f 20 71 75 69 63 6b 20 65 78 70 6c 61 6e 61 74 69 6f 6e 20 6f 66 20 parsing.//.quick.explanation.of.
1a40 63 6f 6d 70 6f 6e 65 6e 74 73 3a 0a 2f 2f 20 20 20 73 74 20 2d 20 75 73 65 64 20 74 6f 20 62 75 components:.//...st.-.used.to.bu
1a60 69 6c 64 20 75 70 20 61 20 73 74 72 69 6e 67 20 66 6f 72 20 65 76 61 6c 75 61 74 69 6f 6e 0a 2f ild.up.a.string.for.evaluation./
1a80 2f 20 20 20 61 63 20 2d 20 75 73 65 64 20 74 6f 20 61 63 63 75 6d 75 6c 61 74 65 20 76 61 6c 75 /...ac.-.used.to.accumulate.valu
1aa0 65 73 0a 2f 2f 20 20 20 71 74 20 2d 20 75 73 65 64 20 74 6f 20 64 65 63 69 64 65 20 69 66 20 71 es.//...qt.-.used.to.decide.if.q
1ac0 75 6f 74 65 73 20 61 72 65 20 6e 65 65 64 65 64 20 66 6f 72 20 65 76 61 6c 75 61 74 69 6f 6e 0a uotes.are.needed.for.evaluation.
1ae0 2f 2f 20 20 20 63 6d 20 2d 20 75 73 65 64 20 74 6f 20 64 65 6e 6f 74 65 20 73 74 72 75 63 74 20 //...cm.-.used.to.denote.struct.
1b00 6f 72 20 61 72 72 61 79 20 28 63 6f 6d 6d 61 20 6e 65 65 64 65 64 29 0a 2f 2f 20 20 20 69 73 66 or.array.(comma.needed).//...isf
1b20 20 2d 20 75 73 65 64 20 74 6f 20 69 6e 64 69 63 61 74 65 20 61 20 66 61 75 6c 74 0a 2f 2f 20 20 .-.used.to.indicate.a.fault.//..
1b40 20 6c 76 20 2d 20 75 73 65 64 20 74 6f 20 69 6e 64 69 63 61 74 65 20 22 6c 6f 6f 6b 69 6e 67 20 .lv.-.used.to.indicate."looking.
1b60 66 6f 72 20 61 20 76 61 6c 75 65 22 3a 20 69 6d 70 6c 65 6d 65 6e 74 73 0a 2f 2f 20 20 20 20 20 for.a.value":.implements.//.....
1b80 20 20 20 74 68 65 20 6c 6f 67 69 63 20 74 6f 20 61 6c 6c 6f 77 20 76 61 6c 75 65 73 20 77 69 74 ...the.logic.to.allow.values.wit
1ba0 68 20 6e 6f 20 74 79 70 65 73 20 74 6f 20 62 65 20 73 74 72 69 6e 67 73 0a 2f 2f 20 20 20 70 61 h.no.types.to.be.strings.//...pa
1bc0 72 61 6d 73 20 2d 20 75 73 65 64 20 74 6f 20 73 74 6f 72 65 20 70 61 72 61 6d 65 74 65 72 73 20 rams.-.used.to.store.parameters.
1be0 69 6e 20 6d 65 74 68 6f 64 20 63 61 6c 6c 73 0a 2f 2f 20 20 20 6d 65 74 68 6f 64 20 2d 20 75 73 in.method.calls.//...method.-.us
1c00 65 64 20 74 6f 20 73 74 6f 72 65 20 6d 65 74 68 6f 64 20 6e 61 6d 65 0a 0a 24 47 4c 4f 42 41 4c ed.to.store.method.name..$GLOBAL
1c20 53 5b 27 58 4d 4c 5f 52 50 43 5f 78 68 27 5d 3d 61 72 72 61 79 28 29 3b 0a 0a 66 75 6e 63 74 69 S['XML_RPC_xh']=array();..functi
1c40 6f 6e 20 58 4d 4c 5f 52 50 43 5f 65 6e 74 69 74 79 5f 64 65 63 6f 64 65 28 24 73 74 72 69 6e 67 on.XML_RPC_entity_decode($string
1c60 29 0a 7b 0a 20 20 20 20 24 74 6f 70 3d 73 70 6c 69 74 28 22 26 22 2c 20 24 73 74 72 69 6e 67 29 ).{.....$top=split("&",.$string)
1c80 3b 0a 20 20 20 20 24 6f 70 3d 22 22 3b 0a 20 20 20 20 24 69 3d 30 3b 0a 20 20 20 20 77 68 69 6c ;.....$op="";.....$i=0;.....whil
1ca0 65 28 24 69 3c 73 69 7a 65 6f 66 28 24 74 6f 70 29 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 e($i<sizeof($top)).{.........if.
1cc0 28 65 72 65 67 28 22 5e 28 5b 23 61 2d 7a 41 2d 5a 30 2d 39 5d 2b 29 3b 22 2c 20 24 74 6f 70 5b (ereg("^([#a-zA-Z0-9]+);",.$top[
1ce0 24 69 5d 2c 20 24 72 65 67 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6f 70 2e 3d $i],.$regs)).{.............$op.=
1d00 65 72 65 67 5f 72 65 70 6c 61 63 65 28 22 5e 5b 23 61 2d 7a 41 2d 5a 30 2d 39 5d 2b 3b 22 2c 0a ereg_replace("^[#a-zA-Z0-9]+;",.
1d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 58 4d ..............................XM
1d40 4c 5f 52 50 43 5f 6c 6f 6f 6b 75 70 5f 65 6e 74 69 74 79 28 24 72 65 67 73 5b 31 5d 29 2c 0a 20 L_RPC_lookup_entity($regs[1]),..
1d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 6f .............................$to
1d80 70 5b 24 69 5d 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 p[$i]);.........}.else.{........
1da0 20 20 20 20 20 69 66 20 28 24 69 3d 3d 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....if.($i==0).................
1dc0 24 6f 70 3d 24 74 6f 70 5b 24 69 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 $op=$top[$i];.............else..
1de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6f 70 2e 3d 22 26 22 20 2e 20 24 74 6f 70 5b 24 ...............$op.="&"...$top[$
1e00 69 5d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 69 2b 2b 3b 0a 20 20 20 i];.........}..........$i++;....
1e20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 24 6f 70 3b 0a 7d 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 .}.....return.$op;.}...function.
1e40 58 4d 4c 5f 52 50 43 5f 6c 6f 6f 6b 75 70 5f 65 6e 74 69 74 79 28 24 65 6e 74 29 0a 7b 0a 20 20 XML_RPC_lookup_entity($ent).{...
1e60 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 65 6e 74 69 74 69 65 73 3b 0a 0a 20 20 20 ..global.$XML_RPC_entities;.....
1e80 20 69 66 20 28 24 58 4d 4c 5f 52 50 43 5f 65 6e 74 69 74 69 65 73 5b 73 74 72 74 6f 6c 6f 77 65 .if.($XML_RPC_entities[strtolowe
1ea0 72 28 24 65 6e 74 29 5d 29 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 58 4d 4c 5f 52 50 r($ent)]).........return.$XML_RP
1ec0 43 5f 65 6e 74 69 74 69 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 65 6e 74 29 5d 3b 0a 0a 20 C_entities[strtolower($ent)];...
1ee0 20 20 20 69 66 20 28 65 72 65 67 28 22 5e 23 28 5b 30 2d 39 5d 2b 29 24 22 2c 20 24 65 6e 74 2c ...if.(ereg("^#([0-9]+)$",.$ent,
1f00 20 24 72 65 67 73 29 29 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 63 68 72 28 24 72 65 67 .$regs)).........return.chr($reg
1f20 73 5b 31 5d 29 3b 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 22 3f 22 3b 0a 7d 0a 0a 0a 66 75 6e 63 s[1]);......return."?";.}...func
1f40 74 69 6f 6e 20 58 4d 4c 5f 52 50 43 5f 73 65 28 24 70 61 72 73 65 72 2c 20 24 6e 61 6d 65 2c 20 tion.XML_RPC_se($parser,.$name,.
1f60 24 61 74 74 72 73 29 0a 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 78 68 $attrs).{.....global.$XML_RPC_xh
1f80 2c 20 24 58 4d 4c 5f 52 50 43 5f 44 61 74 65 54 69 6d 65 2c 20 24 58 4d 4c 5f 52 50 43 5f 53 74 ,.$XML_RPC_DateTime,.$XML_RPC_St
1fa0 72 69 6e 67 3b 0a 0a 20 20 20 20 73 77 69 74 63 68 28 24 6e 61 6d 65 29 20 7b 0a 20 20 20 20 63 ring;......switch($name).{.....c
1fc0 61 73 65 20 22 53 54 52 55 43 54 22 3a 0a 20 20 20 20 63 61 73 65 20 22 41 52 52 41 59 22 3a 0a ase."STRUCT":.....case."ARRAY":.
1fe0 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 73 74 ........$XML_RPC_xh[$parser]['st
2000 27 5d 2e 3d 22 61 72 72 61 79 28 22 3b 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 '].="array(";.........$XML_RPC_x
2020 68 5b 24 70 61 72 73 65 72 5d 5b 27 63 6d 27 5d 2b 2b 3b 0a 20 20 20 20 20 20 20 20 2f 2f 20 74 h[$parser]['cm']++;.........//.t
2040 68 69 73 20 6c 61 73 74 20 6c 69 6e 65 20 74 75 72 6e 73 20 71 75 6f 74 69 6e 67 20 6f 66 66 0a his.last.line.turns.quoting.off.
2060 20 20 20 20 20 20 20 20 2f 2f 20 74 68 69 73 20 6d 65 61 6e 73 20 69 66 20 77 65 20 67 65 74 20 ........//.this.means.if.we.get.
2080 61 6e 20 65 6d 70 74 79 20 61 72 72 61 79 20 77 65 27 6c 6c 0a 20 20 20 20 20 20 20 20 2f 2f 20 an.empty.array.we'll.........//.
20a0 73 69 6d 70 6c 79 20 67 65 74 20 61 20 62 69 74 20 6f 66 20 77 68 69 74 65 73 70 61 63 65 20 69 simply.get.a.bit.of.whitespace.i
20c0 6e 20 74 68 65 20 65 76 61 6c 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 n.the.eval.........$XML_RPC_xh[$
20e0 70 61 72 73 65 72 5d 5b 27 71 74 27 5d 3d 30 3b 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a parser]['qt']=0;.........break;.
2100 20 20 20 20 63 61 73 65 20 22 4e 41 4d 45 22 3a 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 ....case."NAME":.........$XML_RP
2120 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 73 74 27 5d 2e 3d 22 27 22 3b 20 24 58 4d 4c 5f 52 C_xh[$parser]['st'].="'";.$XML_R
2140 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 61 63 27 5d 3d 22 22 3b 0a 20 20 20 20 20 20 20 PC_xh[$parser]['ac']="";........
2160 20 62 72 65 61 6b 3b 0a 20 20 20 20 63 61 73 65 20 22 46 41 55 4c 54 22 3a 0a 20 20 20 20 20 20 .break;.....case."FAULT":.......
2180 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 69 73 66 27 5d 3d 31 3b ..$XML_RPC_xh[$parser]['isf']=1;
21a0 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 63 61 73 65 20 22 50 41 52 41 4d 22 .........break;.....case."PARAM"
21c0 3a 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 :.........$XML_RPC_xh[$parser]['
21e0 73 74 27 5d 3d 22 22 3b 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 63 61 73 65 st']="";.........break;.....case
2200 20 22 56 41 4c 55 45 22 3a 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 ."VALUE":.........$XML_RPC_xh[$p
2220 61 72 73 65 72 5d 5b 27 73 74 27 5d 2e 3d 22 6e 65 77 20 58 4d 4c 5f 52 50 43 5f 56 61 6c 75 65 arser]['st'].="new.XML_RPC_Value
2240 28 22 3b 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d (";.........$XML_RPC_xh[$parser]
2260 5b 27 6c 76 27 5d 3d 31 3b 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 ['lv']=1;.........$XML_RPC_xh[$p
2280 61 72 73 65 72 5d 5b 27 76 74 27 5d 3d 24 58 4d 4c 5f 52 50 43 5f 53 74 72 69 6e 67 3b 0a 20 20 arser]['vt']=$XML_RPC_String;...
22a0 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 61 63 27 5d ......$XML_RPC_xh[$parser]['ac']
22c0 3d 22 22 3b 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 ="";.........$XML_RPC_xh[$parser
22e0 5d 5b 27 71 74 27 5d 3d 30 3b 0a 20 20 20 20 20 20 20 20 2f 2f 20 6c 6f 6f 6b 20 66 6f 72 20 61 ]['qt']=0;.........//.look.for.a
2300 20 76 61 6c 75 65 3a 20 69 66 20 74 68 69 73 20 69 73 20 73 74 69 6c 6c 20 31 20 62 79 20 74 68 .value:.if.this.is.still.1.by.th
2320 65 0a 20 20 20 20 20 20 20 20 2f 2f 20 74 69 6d 65 20 77 65 20 72 65 61 63 68 20 74 68 65 20 66 e.........//.time.we.reach.the.f
2340 69 72 73 74 20 64 61 74 61 20 73 65 67 6d 65 6e 74 20 74 68 65 6e 20 74 68 65 20 74 79 70 65 20 irst.data.segment.then.the.type.
2360 69 73 20 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 2f 2f 20 62 79 20 69 6d 70 6c 69 63 61 74 is.string.........//.by.implicat
2380 69 6f 6e 20 61 6e 64 20 77 65 20 6e 65 65 64 20 74 6f 20 61 64 64 20 69 6e 20 61 20 71 75 6f 74 ion.and.we.need.to.add.in.a.quot
23a0 65 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 0a 20 20 20 20 63 61 73 65 20 22 49 34 22 3a e.........break;......case."I4":
23c0 0a 20 20 20 20 63 61 73 65 20 22 49 4e 54 22 3a 0a 20 20 20 20 63 61 73 65 20 22 53 54 52 49 4e .....case."INT":.....case."STRIN
23e0 47 22 3a 0a 20 20 20 20 63 61 73 65 20 22 42 4f 4f 4c 45 41 4e 22 3a 0a 20 20 20 20 63 61 73 65 G":.....case."BOOLEAN":.....case
2400 20 22 44 4f 55 42 4c 45 22 3a 0a 20 20 20 20 63 61 73 65 20 22 44 41 54 45 54 49 4d 45 2e 49 53 ."DOUBLE":.....case."DATETIME.IS
2420 4f 38 36 30 31 22 3a 0a 20 20 20 20 63 61 73 65 20 22 42 41 53 45 36 34 22 3a 0a 20 20 20 20 20 O8601":.....case."BASE64":......
2440 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 61 63 27 5d 3d 22 22 ...$XML_RPC_xh[$parser]['ac']=""
2460 3b 20 2f 2f 20 72 65 73 65 74 20 74 68 65 20 61 63 63 75 6d 75 6c 61 74 6f 72 0a 0a 20 20 20 20 ;.//.reset.the.accumulator......
2480 20 20 20 20 69 66 20 28 24 6e 61 6d 65 3d 3d 22 44 41 54 45 54 49 4d 45 2e 49 53 4f 38 36 30 31 ....if.($name=="DATETIME.ISO8601
24a0 22 20 7c 7c 20 24 6e 61 6d 65 3d 3d 22 53 54 52 49 4e 47 22 29 20 7b 0a 20 20 20 20 20 20 20 20 ".||.$name=="STRING").{.........
24c0 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 71 74 27 5d 3d 31 ....$XML_RPC_xh[$parser]['qt']=1
24e0 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 6e 61 6d 65 3d 3d 22 44 41 54 45 54 ;..............if.($name=="DATET
2500 49 4d 45 2e 49 53 4f 38 36 30 31 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 58 IME.ISO8601").................$X
2520 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 76 74 27 5d 3d 24 58 4d 4c 5f 52 50 ML_RPC_xh[$parser]['vt']=$XML_RP
2540 43 5f 44 61 74 65 54 69 6d 65 3b 0a 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 C_DateTime;..........}.else.if.(
2560 24 6e 61 6d 65 3d 3d 22 42 41 53 45 36 34 22 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 $name=="BASE64").{.............$
2580 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 71 74 27 5d 3d 32 3b 0a 20 20 20 XML_RPC_xh[$parser]['qt']=2;....
25a0 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 4e 6f 20 .....}.else.{.............//.No.
25c0 71 75 6f 74 69 6e 67 20 69 73 20 72 65 71 75 69 72 65 64 20 68 65 72 65 20 2d 2d 20 62 75 74 0a quoting.is.required.here.--.but.
25e0 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 ............//.at.the.end.of.the
2600 20 65 6c 65 6d 65 6e 74 20 77 65 20 6d 75 73 74 20 63 68 65 63 6b 0a 20 20 20 20 20 20 20 20 20 .element.we.must.check..........
2620 20 20 20 2f 2f 20 66 6f 72 20 64 61 74 61 20 66 6f 72 6d 61 74 20 65 72 72 6f 72 73 2e 0a 20 20 ...//.for.data.format.errors....
2640 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 ..........$XML_RPC_xh[$parser]['
2660 71 74 27 5d 3d 30 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b qt']=0;.........}.........break;
2680 0a 0a 20 20 20 20 63 61 73 65 20 22 4d 45 4d 42 45 52 22 3a 0a 20 20 20 20 20 20 20 20 24 58 4d ......case."MEMBER":.........$XM
26a0 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 61 63 27 5d 3d 22 22 3b 0a 20 20 20 20 L_RPC_xh[$parser]['ac']="";.....
26c0 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 20 20 20 ....break;.....default:.........
26e0 62 72 65 61 6b 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 28 24 6e 61 6d 65 21 3d 22 56 41 break;.....}......if.($name!="VA
2700 4c 55 45 22 29 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 6c 76 27 5d LUE").$XML_RPC_xh[$parser]['lv']
2720 3d 30 3b 0a 7d 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 58 4d 4c 5f 52 50 43 5f 65 65 28 24 70 61 72 =0;.}...function.XML_RPC_ee($par
2740 73 65 72 2c 20 24 6e 61 6d 65 29 0a 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 ser,.$name).{.....global.$XML_RP
2760 43 5f 78 68 2c 24 58 4d 4c 5f 52 50 43 5f 54 79 70 65 73 2c 24 58 4d 4c 5f 52 50 43 5f 53 74 72 C_xh,$XML_RPC_Types,$XML_RPC_Str
2780 69 6e 67 3b 0a 0a 20 20 20 20 73 77 69 74 63 68 28 24 6e 61 6d 65 29 20 7b 0a 20 20 20 20 63 61 ing;......switch($name).{.....ca
27a0 73 65 20 22 53 54 52 55 43 54 22 3a 0a 20 20 20 20 63 61 73 65 20 22 41 52 52 41 59 22 3a 0a 20 se."STRUCT":.....case."ARRAY":..
27c0 20 20 20 20 20 20 20 69 66 20 28 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b .......if.($XML_RPC_xh[$parser][
27e0 27 63 6d 27 5d 20 26 26 20 73 75 62 73 74 72 28 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 'cm'].&&.substr($XML_RPC_xh[$par
2800 73 65 72 5d 5b 27 73 74 27 5d 2c 20 2d 31 29 20 3d 3d 27 2c 27 29 20 7b 0a 20 20 20 20 20 20 20 ser]['st'],.-1).==',').{........
2820 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 73 74 27 5d 3d .....$XML_RPC_xh[$parser]['st']=
2840 73 75 62 73 74 72 28 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 73 74 27 substr($XML_RPC_xh[$parser]['st'
2860 5d 2c 30 2c 2d 31 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 58 4d 4c ],0,-1);.........}..........$XML
2880 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 73 74 27 5d 2e 3d 22 29 22 3b 0a 20 20 20 _RPC_xh[$parser]['st'].=")";....
28a0 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 76 74 27 5d 3d .....$XML_RPC_xh[$parser]['vt']=
28c0 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f strtolower($name);.........$XML_
28e0 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 63 6d 27 5d 2d 2d 3b 0a 20 20 20 20 20 20 20 RPC_xh[$parser]['cm']--;........
2900 20 62 72 65 61 6b 3b 0a 0a 20 20 20 20 63 61 73 65 20 22 4e 41 4d 45 22 3a 0a 20 20 20 20 20 20 .break;......case."NAME":.......
2920 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 73 74 27 5d 2e 3d 20 24 ..$XML_RPC_xh[$parser]['st'].=.$
2940 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 61 63 27 5d 20 2e 20 22 27 20 3d XML_RPC_xh[$parser]['ac']..."'.=
2960 3e 20 22 3b 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 0a 20 20 20 20 63 61 73 65 20 22 42 >.";.........break;......case."B
2980 4f 4f 4c 45 41 4e 22 3a 0a 20 20 20 20 20 20 20 20 2f 2f 20 73 70 65 63 69 61 6c 20 63 61 73 65 OOLEAN":.........//.special.case
29a0 20 68 65 72 65 3a 20 77 65 20 74 72 61 6e 73 6c 61 74 65 20 62 6f 6f 6c 65 61 6e 20 31 20 6f 72 .here:.we.translate.boolean.1.or
29c0 20 30 20 69 6e 74 6f 20 50 48 50 0a 20 20 20 20 20 20 20 20 2f 2f 20 63 6f 6e 73 74 61 6e 74 73 .0.into.PHP.........//.constants
29e0 20 74 72 75 65 20 6f 72 20 66 61 6c 73 65 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 58 4d 4c 5f .true.or.false.........if.($XML_
2a00 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 61 63 27 5d 3d 3d 27 31 27 29 0a 20 20 20 20 RPC_xh[$parser]['ac']=='1').....
2a20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 61 63 ........$XML_RPC_xh[$parser]['ac
2a40 27 5d 3d 22 74 72 75 65 22 3b 0a 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 ']="true";.........else.........
2a60 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 61 63 27 5d 3d 22 ....$XML_RPC_xh[$parser]['ac']="
2a80 66 61 6c 73 65 22 3b 0a 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 false";..........$XML_RPC_xh[$pa
2aa0 72 73 65 72 5d 5b 27 76 74 27 5d 3d 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 20 rser]['vt']=strtolower($name);..
2ac0 20 20 20 20 20 20 20 2f 2f 20 44 72 6f 70 20 74 68 72 6f 75 67 68 20 69 6e 74 65 6e 74 69 6f 6e .......//.Drop.through.intention
2ae0 61 6c 6c 79 2e 0a 0a 20 20 20 20 63 61 73 65 20 22 49 34 22 3a 0a 20 20 20 20 63 61 73 65 20 22 ally.......case."I4":.....case."
2b00 49 4e 54 22 3a 0a 20 20 20 20 63 61 73 65 20 22 53 54 52 49 4e 47 22 3a 0a 20 20 20 20 63 61 73 INT":.....case."STRING":.....cas
2b20 65 20 22 44 4f 55 42 4c 45 22 3a 0a 20 20 20 20 63 61 73 65 20 22 44 41 54 45 54 49 4d 45 2e 49 e."DOUBLE":.....case."DATETIME.I
2b40 53 4f 38 36 30 31 22 3a 0a 20 20 20 20 63 61 73 65 20 22 42 41 53 45 36 34 22 3a 0a 20 20 20 20 SO8601":.....case."BASE64":.....
2b60 20 20 20 20 69 66 20 28 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 71 74 ....if.($XML_RPC_xh[$parser]['qt
2b80 27 5d 3d 3d 31 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 77 65 20 75 73 65 20 64 ']==1).{.............//.we.use.d
2ba0 6f 75 62 6c 65 20 71 75 6f 74 65 73 20 72 61 74 68 65 72 20 74 68 61 6e 20 73 69 6e 67 6c 65 20 ouble.quotes.rather.than.single.
2bc0 73 6f 20 62 61 63 6b 73 6c 61 73 68 69 66 69 63 61 74 69 6f 6e 20 77 6f 72 6b 73 20 4f 4b 0a 20 so.backslashification.works.OK..
2be0 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b ...........$XML_RPC_xh[$parser][
2c00 27 73 74 27 5d 2e 3d 22 5c 22 22 2e 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 'st'].="\""..$XML_RPC_xh[$parser
2c20 5d 5b 27 61 63 27 5d 20 2e 20 22 5c 22 22 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 69 ]['ac']..."\"";.........}.else.i
2c40 66 20 28 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 71 74 27 5d 3d 3d 32 f.($XML_RPC_xh[$parser]['qt']==2
2c60 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 ).{.............$XML_RPC_xh[$par
2c80 73 65 72 5d 5b 27 73 74 27 5d 2e 3d 22 62 61 73 65 36 34 5f 64 65 63 6f 64 65 28 27 22 2e 20 24 ser]['st'].="base64_decode('"..$
2ca0 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 61 63 27 5d 20 2e 20 22 27 29 22 XML_RPC_xh[$parser]['ac']..."')"
2cc0 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 24 6e 61 6d 65 3d 3d 22 42 4f 4f ;.........}.else.if.($name=="BOO
2ce0 4c 45 41 4e 22 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 LEAN").{.............$XML_RPC_xh
2d00 5b 24 70 61 72 73 65 72 5d 5b 27 73 74 27 5d 2e 3d 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 [$parser]['st'].=$XML_RPC_xh[$pa
2d20 72 73 65 72 5d 5b 27 61 63 27 5d 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 rser]['ac'];.........}.else.{...
2d40 20 20 20 20 20 20 20 20 20 20 2f 2f 20 77 65 20 68 61 76 65 20 61 6e 20 49 34 2c 20 49 4e 54 20 ..........//.we.have.an.I4,.INT.
2d60 6f 72 20 61 20 44 4f 55 42 4c 45 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 77 65 20 6d 75 or.a.DOUBLE.............//.we.mu
2d80 73 74 20 63 68 65 63 6b 20 74 68 61 74 20 6f 6e 6c 79 20 30 31 32 33 34 35 36 37 38 39 2d 2e 3c st.check.that.only.0123456789-.<
2da0 73 70 61 63 65 3e 20 61 72 65 20 63 68 61 72 61 63 74 65 72 73 20 68 65 72 65 0a 20 20 20 20 20 space>.are.characters.here......
2dc0 20 20 20 20 20 20 20 69 66 20 28 21 65 72 65 67 28 22 5e 5c 2d 3f 5b 30 31 32 33 34 35 36 37 38 .......if.(!ereg("^\-?[012345678
2de0 39 20 5c 74 5c 2e 5d 2b 24 22 2c 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 9.\t\.]+$",.$XML_RPC_xh[$parser]
2e00 5b 27 61 63 27 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 54 4f ['ac'])).{.................//.TO
2e20 44 4f 3a 20 66 69 6e 64 20 61 20 62 65 74 74 65 72 20 77 61 79 20 6f 66 20 74 68 72 6f 77 69 6e DO:.find.a.better.way.of.throwin
2e40 67 20 61 6e 20 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 74 68 g.an.error.................//.th
2e60 61 6e 20 74 68 69 73 21 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 5f 6c an.this!.................error_l
2e80 6f 67 28 22 58 4d 4c 2d 52 50 43 3a 20 6e 6f 6e 20 6e 75 6d 65 72 69 63 20 76 61 6c 75 65 20 72 og("XML-RPC:.non.numeric.value.r
2ea0 65 63 65 69 76 65 64 20 69 6e 20 49 4e 54 20 6f 72 20 44 4f 55 42 4c 45 22 29 3b 0a 20 20 20 20 eceived.in.INT.or.DOUBLE");.....
2ec0 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d ............$XML_RPC_xh[$parser]
2ee0 5b 27 73 74 27 5d 2e 3d 22 45 52 52 4f 52 5f 4e 4f 4e 5f 4e 55 4d 45 52 49 43 5f 46 4f 55 4e 44 ['st'].="ERROR_NON_NUMERIC_FOUND
2f00 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 ";.............}.else.{.........
2f20 20 20 20 20 20 20 20 20 2f 2f 20 69 74 27 73 20 6f 6b 2c 20 61 64 64 20 69 74 20 6f 6e 0a 20 20 ........//.it's.ok,.add.it.on...
2f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 ..............$XML_RPC_xh[$parse
2f60 72 5d 5b 27 73 74 27 5d 2e 3d 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 r]['st'].=$XML_RPC_xh[$parser]['
2f80 61 63 27 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 ac'];.............}.........}...
2fa0 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 61 63 27 .......$XML_RPC_xh[$parser]['ac'
2fc0 5d 3d 22 22 3b 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 71 74 27 5d ]="";.$XML_RPC_xh[$parser]['qt']
2fe0 3d 30 3b 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d =0;.........$XML_RPC_xh[$parser]
3000 5b 27 6c 76 27 5d 3d 33 3b 20 2f 2f 20 69 6e 64 69 63 61 74 65 20 77 65 27 76 65 20 66 6f 75 6e ['lv']=3;.//.indicate.we've.foun
3020 64 20 61 20 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 0a 20 20 20 20 63 61 d.a.value.........break;......ca
3040 73 65 20 22 56 41 4c 55 45 22 3a 0a 20 20 20 20 20 20 20 20 2f 2f 20 64 65 61 6c 20 77 69 74 68 se."VALUE":.........//.deal.with
3060 20 61 20 73 74 72 69 6e 67 20 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 69 66 20 28 73 74 72 6c .a.string.value.........if.(strl
3080 65 6e 28 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 61 63 27 5d 29 3e 30 en($XML_RPC_xh[$parser]['ac'])>0
30a0 20 26 26 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 .&&.............$XML_RPC_xh[$par
30c0 73 65 72 5d 5b 27 76 74 27 5d 3d 3d 24 58 4d 4c 5f 52 50 43 5f 53 74 72 69 6e 67 29 20 7b 0a 0a ser]['vt']==$XML_RPC_String).{..
30e0 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d ............$XML_RPC_xh[$parser]
3100 5b 27 73 74 27 5d 2e 3d 22 5c 22 22 2e 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 ['st'].="\""..$XML_RPC_xh[$parse
3120 72 5d 5b 27 61 63 27 5d 20 2e 20 22 5c 22 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 r]['ac']..."\"";.........}......
3140 20 20 20 20 2f 2f 20 54 68 69 73 20 69 66 28 29 20 64 65 74 65 63 74 73 20 69 66 20 6e 6f 20 73 ....//.This.if().detects.if.no.s
3160 63 61 6c 61 72 20 77 61 73 20 69 6e 73 69 64 65 20 3c 56 41 4c 55 45 3e 3c 2f 56 41 4c 55 45 3e calar.was.inside.<VALUE></VALUE>
3180 0a 20 20 20 20 20 20 20 20 2f 2f 20 61 6e 64 20 70 61 64 73 20 61 6e 20 65 6d 70 74 79 20 22 22 .........//.and.pads.an.empty.""
31a0 2e 0a 20 20 20 20 20 20 20 20 69 66 28 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 ..........if($XML_RPC_xh[$parser
31c0 5d 5b 27 73 74 27 5d 5b 73 74 72 6c 65 6e 28 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 ]['st'][strlen($XML_RPC_xh[$pars
31e0 65 72 5d 5b 27 73 74 27 5d 29 2d 31 5d 20 3d 3d 20 27 28 27 29 20 7b 0a 20 20 20 20 20 20 20 20 er]['st'])-1].==.'(').{.........
3200 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 73 74 27 5d 2e 3d ....$XML_RPC_xh[$parser]['st'].=
3220 20 27 22 22 27 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 .'""';.........}.........$XML_RP
3240 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 73 74 27 5d 2e 3d 22 2c 20 27 22 20 2e 20 24 58 4d C_xh[$parser]['st'].=",.'"...$XM
3260 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 76 74 27 5d 20 2e 20 22 27 29 22 3b 0a L_RPC_xh[$parser]['vt']..."')";.
3280 20 20 20 20 20 20 20 20 69 66 20 28 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d ........if.($XML_RPC_xh[$parser]
32a0 5b 27 63 6d 27 5d 29 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 73 74 ['cm']).$XML_RPC_xh[$parser]['st
32c0 27 5d 2e 3d 22 2c 22 3b 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 0a 20 20 20 20 63 61 73 '].=",";.........break;......cas
32e0 65 20 22 4d 45 4d 42 45 52 22 3a 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b e."MEMBER":.........$XML_RPC_xh[
3300 24 70 61 72 73 65 72 5d 5b 27 61 63 27 5d 3d 22 22 3b 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 $parser]['ac']="";.$XML_RPC_xh[$
3320 70 61 72 73 65 72 5d 5b 27 71 74 27 5d 3d 30 3b 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a parser]['qt']=0;.........break;.
3340 0a 20 20 20 20 63 61 73 65 20 22 44 41 54 41 22 3a 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 .....case."DATA":.........$XML_R
3360 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 61 63 27 5d 3d 22 22 3b 20 24 58 4d 4c 5f 52 50 PC_xh[$parser]['ac']="";.$XML_RP
3380 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 71 74 27 5d 3d 30 3b 0a 20 20 20 20 20 20 20 20 62 C_xh[$parser]['qt']=0;.........b
33a0 72 65 61 6b 3b 0a 0a 20 20 20 20 63 61 73 65 20 22 50 41 52 41 4d 22 3a 0a 20 20 20 20 20 20 20 reak;......case."PARAM":........
33c0 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 70 61 72 61 6d 73 27 5d 5b .$XML_RPC_xh[$parser]['params'][
33e0 5d 3d 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 73 74 27 5d 3b 0a 20 20 ]=$XML_RPC_xh[$parser]['st'];...
3400 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 0a 20 20 20 20 63 61 73 65 20 22 4d 45 54 48 4f 44 4e 41 ......break;......case."METHODNA
3420 4d 45 22 3a 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 ME":.........$XML_RPC_xh[$parser
3440 5d 5b 27 6d 65 74 68 6f 64 27 5d 3d 65 72 65 67 5f 72 65 70 6c 61 63 65 28 22 5e 5b 5c 6e 5c 72 ]['method']=ereg_replace("^[\n\r
3460 5c 74 20 5d 2b 22 2c 20 22 22 2c 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d \t.]+",."",.$XML_RPC_xh[$parser]
3480 5b 27 61 63 27 5d 29 3b 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 0a 20 20 20 20 63 61 73 ['ac']);.........break;......cas
34a0 65 20 22 42 4f 4f 4c 45 41 4e 22 3a 0a 20 20 20 20 20 20 20 20 2f 2f 20 73 70 65 63 69 61 6c 20 e."BOOLEAN":.........//.special.
34c0 63 61 73 65 20 68 65 72 65 3a 20 77 65 20 74 72 61 6e 73 6c 61 74 65 20 62 6f 6f 6c 65 61 6e 20 case.here:.we.translate.boolean.
34e0 31 20 6f 72 20 30 20 69 6e 74 6f 20 50 48 50 0a 20 20 20 20 20 20 20 20 2f 2f 20 63 6f 6e 73 74 1.or.0.into.PHP.........//.const
3500 61 6e 74 73 20 74 72 75 65 20 6f 72 20 66 61 6c 73 65 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 ants.true.or.false.........if.($
3520 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 61 63 27 5d 3d 3d 27 31 27 29 0a XML_RPC_xh[$parser]['ac']=='1').
3540 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d ............$XML_RPC_xh[$parser]
3560 5b 27 61 63 27 5d 3d 22 74 72 75 65 22 3b 0a 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 ['ac']="true";.........else.....
3580 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 61 63 ........$XML_RPC_xh[$parser]['ac
35a0 27 5d 3d 22 66 61 6c 73 65 22 3b 0a 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 ']="false";..........$XML_RPC_xh
35c0 5b 24 70 61 72 73 65 72 5d 5b 27 76 74 27 5d 3d 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 [$parser]['vt']=strtolower($name
35e0 29 3b 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 0a 20 20 20 20 64 65 66 61 75 6c 74 3a 0a );.........break;......default:.
3600 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 7d 0a 20 20 20 20 2f 2f 20 69 66 20 69 ........break;.....}.....//.if.i
3620 74 27 73 20 61 20 76 61 6c 69 64 20 74 79 70 65 20 6e 61 6d 65 2c 20 73 65 74 20 74 68 65 20 74 t's.a.valid.type.name,.set.the.t
3640 79 70 65 0a 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 58 4d 4c 5f 52 50 43 5f 54 79 70 65 73 ype.....if.(isset($XML_RPC_Types
3660 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 [strtolower($name)])).{.........
3680 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 76 74 27 5d 3d 73 74 72 74 6f $XML_RPC_xh[$parser]['vt']=strto
36a0 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 0a 66 75 6e 63 74 69 6f 6e lower($name);.....}.}...function
36c0 20 58 4d 4c 5f 52 50 43 5f 63 64 28 24 70 61 72 73 65 72 2c 20 24 64 61 74 61 29 0a 7b 0a 20 20 .XML_RPC_cd($parser,.$data).{...
36e0 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 78 68 2c 20 24 58 4d 4c 5f 52 50 43 5f 62 ..global.$XML_RPC_xh,.$XML_RPC_b
3700 61 63 6b 73 6c 61 73 68 3b 0a 0a 20 20 20 20 2f 2f 69 66 20 28 65 72 65 67 28 22 5e 5b 5c 6e 5c ackslash;......//if.(ereg("^[\n\
3720 72 20 5c 74 5d 2b 24 22 2c 20 24 64 61 74 61 29 29 20 72 65 74 75 72 6e 3b 0a 20 20 20 20 2f 2f r.\t]+$",.$data)).return;.....//
3740 20 70 72 69 6e 74 20 22 61 64 64 69 6e 67 20 5b 24 7b 64 61 74 61 7d 5d 5c 6e 22 3b 0a 0a 20 20 .print."adding.[${data}]\n";....
3760 20 20 69 66 20 28 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 6c 76 27 5d ..if.($XML_RPC_xh[$parser]['lv']
3780 21 3d 33 29 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 22 6c 6f 6f 6b 66 6f 72 76 61 6c 75 65 3d !=3).{.........//."lookforvalue=
37a0 3d 33 22 20 6d 65 61 6e 73 20 74 68 61 74 20 77 65 27 76 65 20 66 6f 75 6e 64 20 61 6e 20 65 6e =3".means.that.we've.found.an.en
37c0 74 69 72 65 20 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 2f 2f 20 61 6e 64 20 73 68 6f 75 6c 64 tire.value.........//.and.should
37e0 20 64 69 73 63 61 72 64 20 61 6e 79 20 66 75 72 74 68 65 72 20 63 68 61 72 61 63 74 65 72 20 64 .discard.any.further.character.d
3800 61 74 61 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 ata..........if.($XML_RPC_xh[$pa
3820 72 73 65 72 5d 5b 27 6c 76 27 5d 3d 3d 31 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f rser]['lv']==1).{.............//
3840 20 69 66 20 77 65 27 76 65 20 66 6f 75 6e 64 20 74 65 78 74 20 61 6e 64 20 77 65 27 72 65 20 6a .if.we've.found.text.and.we're.j
3860 75 73 74 20 69 6e 20 61 20 3c 76 61 6c 75 65 3e 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 ust.in.a.<value>.then...........
3880 20 20 2f 2f 20 74 75 72 6e 20 71 75 6f 74 69 6e 67 20 6f 6e 2c 20 61 73 20 74 68 69 73 20 77 69 ..//.turn.quoting.on,.as.this.wi
38a0 6c 6c 20 62 65 20 61 20 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f ll.be.a.string.............$XML_
38c0 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 71 74 27 5d 3d 31 3b 0a 20 20 20 20 20 20 20 RPC_xh[$parser]['qt']=1;........
38e0 20 20 20 20 20 2f 2f 20 61 6e 64 20 73 61 79 20 77 65 27 76 65 20 66 6f 75 6e 64 20 61 20 76 61 .....//.and.say.we've.found.a.va
3900 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 lue.............$XML_RPC_xh[$par
3920 73 65 72 5d 5b 27 6c 76 27 5d 3d 32 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 ser]['lv']=2;.........}.........
3940 20 2f 2f 20 72 65 70 6c 61 63 65 20 63 68 61 72 61 63 74 65 72 73 20 74 68 61 74 20 65 76 61 6c .//.replace.characters.that.eval
3960 20 77 6f 75 6c 64 0a 20 20 20 20 20 20 20 20 2f 2f 20 64 6f 20 73 70 65 63 69 61 6c 20 74 68 69 .would.........//.do.special.thi
3980 6e 67 73 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 40 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 ngs.with.........@$XML_RPC_xh[$p
39a0 61 72 73 65 72 5d 5b 27 61 63 27 5d 2e 3d 73 74 72 5f 72 65 70 6c 61 63 65 28 27 24 27 2c 20 27 arser]['ac'].=str_replace('$',.'
39c0 5c 24 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 22 27 \$',.............str_replace('"'
39e0 2c 20 27 5c 22 27 2c 20 73 74 72 5f 72 65 70 6c 61 63 65 28 63 68 72 28 39 32 29 2c 0a 20 20 20 ,.'\"',.str_replace(chr(92),....
3a00 20 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 62 61 63 6b 73 6c 61 73 68 2c .............$XML_RPC_backslash,
3a20 20 24 64 61 74 61 29 29 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 58 4d .$data)));.....}.}...function.XM
3a40 4c 5f 52 50 43 5f 64 68 28 24 70 61 72 73 65 72 2c 20 24 64 61 74 61 29 0a 7b 0a 20 20 20 20 67 L_RPC_dh($parser,.$data).{.....g
3a60 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 78 68 3b 0a 20 20 20 20 69 66 20 28 73 75 62 73 74 lobal.$XML_RPC_xh;.....if.(subst
3a80 72 28 24 64 61 74 61 2c 20 30 2c 20 31 29 20 3d 3d 20 22 26 22 20 26 26 20 73 75 62 73 74 72 28 r($data,.0,.1).==."&".&&.substr(
3aa0 24 64 61 74 61 2c 20 2d 31 2c 20 31 29 20 3d 3d 20 22 3b 22 29 20 7b 0a 20 20 20 20 20 20 20 20 $data,.-1,.1).==.";").{.........
3ac0 69 66 20 28 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 6c 76 27 5d 3d 3d if.($XML_RPC_xh[$parser]['lv']==
3ae0 31 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 1).{.............$XML_RPC_xh[$pa
3b00 72 73 65 72 5d 5b 27 71 74 27 5d 3d 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f rser]['qt']=1;.............$XML_
3b20 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 6c 76 27 5d 3d 32 3b 0a 20 20 20 20 20 20 20 RPC_xh[$parser]['lv']=2;........
3b40 20 7d 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b .}.........$XML_RPC_xh[$parser][
3b60 27 61 63 27 5d 2e 3d 73 74 72 5f 72 65 70 6c 61 63 65 28 27 24 27 2c 20 27 5c 24 27 2c 0a 20 20 'ac'].=str_replace('$',.'\$',...
3b80 20 20 20 20 20 20 20 20 20 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 22 27 2c 20 27 5c 22 27 2c ..........str_replace('"',.'\"',
3ba0 20 73 74 72 5f 72 65 70 6c 61 63 65 28 63 68 72 28 39 32 29 2c 0a 20 20 20 20 20 20 20 20 20 20 .str_replace(chr(92),...........
3bc0 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 62 61 63 6b 73 6c 61 73 68 2c 20 24 64 61 74 61 29 ......$XML_RPC_backslash,.$data)
3be0 29 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 0a 63 6c 61 73 73 20 58 4d 4c 5f 52 50 43 5f 43 6c 69 65 ));.....}.}...class.XML_RPC_Clie
3c00 6e 74 0a 7b 0a 20 20 20 20 76 61 72 20 24 70 61 74 68 3b 0a 20 20 20 20 76 61 72 20 24 73 65 72 nt.{.....var.$path;.....var.$ser
3c20 76 65 72 3b 0a 20 20 20 20 76 61 72 20 24 70 6f 72 74 3b 0a 20 20 20 20 76 61 72 20 24 65 72 72 ver;.....var.$port;.....var.$err
3c40 6e 6f 3b 0a 20 20 20 20 76 61 72 20 24 65 72 72 73 74 72 69 6e 67 3b 0a 20 20 20 20 76 61 72 20 no;.....var.$errstring;.....var.
3c60 24 64 65 62 75 67 3d 30 3b 0a 20 20 20 20 76 61 72 20 24 75 73 65 72 6e 61 6d 65 3d 22 22 3b 0a $debug=0;.....var.$username="";.
3c80 20 20 20 20 76 61 72 20 24 70 61 73 73 77 6f 72 64 3d 22 22 3b 0a 0a 20 20 20 20 66 75 6e 63 74 ....var.$password="";......funct
3ca0 69 6f 6e 20 58 4d 4c 5f 52 50 43 5f 43 6c 69 65 6e 74 28 24 70 61 74 68 2c 20 24 73 65 72 76 65 ion.XML_RPC_Client($path,.$serve
3cc0 72 2c 20 24 70 6f 72 74 20 3d 20 38 30 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r,.$port.=.80,..................
3ce0 20 20 20 20 20 20 20 20 20 20 20 24 70 72 6f 78 79 20 3d 20 27 27 2c 20 24 70 72 6f 78 79 5f 70 ...........$proxy.=.'',.$proxy_p
3d00 6f 72 74 20 3d 20 38 30 38 30 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ort.=.8080,.....................
3d20 20 20 20 20 20 20 20 20 24 70 72 6f 78 79 5f 75 73 65 72 20 3d 20 27 27 2c 20 24 70 72 6f 78 79 ........$proxy_user.=.'',.$proxy
3d40 5f 70 61 73 73 20 3d 20 27 27 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d _pass.=.'').....{.........$this-
3d60 3e 70 6f 72 74 3d 24 70 6f 72 74 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 73 65 72 76 >port=$port;.........$this->serv
3d80 65 72 3d 24 73 65 72 76 65 72 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 61 74 68 3d er=$server;.........$this->path=
3da0 24 70 61 74 68 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 6f 78 79 20 3d 20 24 70 $path;.........$this->proxy.=.$p
3dc0 72 6f 78 79 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 6f 78 79 5f 70 6f 72 74 20 roxy;.........$this->proxy_port.
3de0 3d 20 24 70 72 6f 78 79 5f 70 6f 72 74 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 =.$proxy_port;.........$this->pr
3e00 6f 78 79 5f 75 73 65 72 20 3d 20 24 70 72 6f 78 79 5f 75 73 65 72 3b 0a 20 20 20 20 20 20 20 20 oxy_user.=.$proxy_user;.........
3e20 24 74 68 69 73 2d 3e 70 72 6f 78 79 5f 70 61 73 73 20 3d 20 24 70 72 6f 78 79 5f 70 61 73 73 3b $this->proxy_pass.=.$proxy_pass;
3e40 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 62 75 67 28 24 69 .....}......function.setDebug($i
3e60 6e 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 69 6e 29 20 7b 0a 20 20 20 20 n).....{.........if.($in).{.....
3e80 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 64 65 62 75 67 3d 31 3b 0a 20 20 20 20 20 20 20 20 ........$this->debug=1;.........
3ea0 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 64 65 62 75 }.else.{.............$this->debu
3ec0 67 3d 30 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 g=0;.........}.....}......functi
3ee0 6f 6e 20 73 65 74 43 72 65 64 65 6e 74 69 61 6c 73 28 24 75 2c 20 24 70 29 0a 20 20 20 20 7b 0a on.setCredentials($u,.$p).....{.
3f00 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 75 73 65 72 6e 61 6d 65 3d 24 75 3b 0a 20 20 20 20 ........$this->username=$u;.....
3f20 20 20 20 20 24 74 68 69 73 2d 3e 70 61 73 73 77 6f 72 64 3d 24 70 3b 0a 20 20 20 20 7d 0a 0a 20 ....$this->password=$p;.....}...
3f40 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 65 6e 64 28 24 6d 73 67 2c 20 24 74 69 6d 65 6f 75 74 3d ...function.send($msg,.$timeout=
3f60 30 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 77 68 65 72 65 20 6d 73 67 20 69 73 0).....{.........//.where.msg.is
3f80 20 61 6e 20 78 6d 6c 72 70 63 6d 73 67 0a 20 20 20 20 20 20 20 20 24 6d 73 67 2d 3e 64 65 62 75 .an.xmlrpcmsg.........$msg->debu
3fa0 67 3d 24 74 68 69 73 2d 3e 64 65 62 75 67 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 g=$this->debug;.........return.$
3fc0 74 68 69 73 2d 3e 73 65 6e 64 50 61 79 6c 6f 61 64 48 54 54 50 31 30 28 24 6d 73 67 2c 20 24 74 this->sendPayloadHTTP10($msg,.$t
3fe0 68 69 73 2d 3e 73 65 72 76 65 72 2c 20 24 74 68 69 73 2d 3e 70 6f 72 74 2c 0a 20 20 20 20 20 20 his->server,.$this->port,.......
4000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4020 20 20 24 74 69 6d 65 6f 75 74 2c 20 24 74 68 69 73 2d 3e 75 73 65 72 6e 61 6d 65 2c 0a 20 20 20 ..$timeout,.$this->username,....
4040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4060 20 20 20 20 20 24 74 68 69 73 2d 3e 70 61 73 73 77 6f 72 64 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 .....$this->password);.....}....
4080 20 20 66 75 6e 63 74 69 6f 6e 20 73 65 6e 64 50 61 79 6c 6f 61 64 48 54 54 50 31 30 28 24 6d 73 ..function.sendPayloadHTTP10($ms
40a0 67 2c 20 24 73 65 72 76 65 72 2c 20 24 70 6f 72 74 2c 20 24 74 69 6d 65 6f 75 74 3d 30 2c 0a 20 g,.$server,.$port,.$timeout=0,..
40c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 75 ..............................$u
40e0 73 65 72 6e 61 6d 65 3d 22 22 2c 20 24 70 61 73 73 77 6f 72 64 3d 22 22 29 0a 20 20 20 20 7b 0a sername="",.$password="").....{.
4100 20 20 20 20 20 20 20 20 2f 2f 20 49 66 20 77 65 27 72 65 20 75 73 69 6e 67 20 61 20 70 72 6f 78 ........//.If.we're.using.a.prox
4120 79 20 6f 70 65 6e 20 61 20 73 6f 63 6b 65 74 20 74 6f 20 74 68 65 20 70 72 6f 78 79 20 73 65 72 y.open.a.socket.to.the.proxy.ser
4140 76 65 72 20 69 6e 73 74 65 61 64 20 74 6f 20 74 68 65 20 78 6d 6c 2d 72 70 63 20 73 65 72 76 65 ver.instead.to.the.xml-rpc.serve
4160 72 0a 20 20 20 20 20 20 20 20 69 66 28 24 74 68 69 73 2d 3e 70 72 6f 78 79 29 7b 0a 20 20 20 20 r.........if($this->proxy){.....
4180 20 20 20 20 20 20 20 20 69 66 28 24 74 69 6d 65 6f 75 74 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 ........if($timeout.>.0).{......
41a0 20 20 20 20 20 20 20 20 20 20 20 24 66 70 3d 66 73 6f 63 6b 6f 70 65 6e 28 24 74 68 69 73 2d 3e ...........$fp=fsockopen($this->
41c0 70 72 6f 78 79 2c 20 24 74 68 69 73 2d 3e 70 72 6f 78 79 5f 70 6f 72 74 2c 20 24 74 68 69 73 2d proxy,.$this->proxy_port,.$this-
41e0 3e 65 72 72 6e 6f 2c 20 24 74 68 69 73 2d 3e 65 72 72 73 74 72 2c 20 24 74 69 6d 65 6f 75 74 29 >errno,.$this->errstr,.$timeout)
4200 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 ;.............}.............else
4220 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 66 70 3d 66 73 6f 63 6b 6f 70 65 6e .{.................$fp=fsockopen
4240 28 24 74 68 69 73 2d 3e 70 72 6f 78 79 2c 20 24 74 68 69 73 2d 3e 70 72 6f 78 79 5f 70 6f 72 74 ($this->proxy,.$this->proxy_port
4260 2c 20 24 74 68 69 73 2d 3e 65 72 72 6e 6f 2c 20 24 74 68 69 73 2d 3e 65 72 72 73 74 72 29 3b 0a ,.$this->errno,.$this->errstr);.
4280 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 ............}.........}.........
42a0 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 28 24 74 69 6d 65 6f 75 74 20 3e else.{.............if($timeout.>
42c0 20 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 66 70 3d 66 73 6f 63 6b 6f .0).{.................$fp=fsocko
42e0 70 65 6e 28 24 73 65 72 76 65 72 2c 20 24 70 6f 72 74 2c 20 24 74 68 69 73 2d 3e 65 72 72 6e 6f pen($server,.$port,.$this->errno
4300 2c 20 24 74 68 69 73 2d 3e 65 72 72 73 74 72 2c 20 24 74 69 6d 65 6f 75 74 29 3b 0a 20 20 20 20 ,.$this->errstr,.$timeout);.....
4320 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 20 ........}.............else.{....
4340 20 20 20 20 20 20 20 20 20 20 20 20 20 24 66 70 3d 66 73 6f 63 6b 6f 70 65 6e 28 24 73 65 72 76 .............$fp=fsockopen($serv
4360 65 72 2c 20 24 70 6f 72 74 2c 20 24 74 68 69 73 2d 3e 65 72 72 6e 6f 2c 20 24 74 68 69 73 2d 3e er,.$port,.$this->errno,.$this->
4380 65 72 72 73 74 72 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d errstr);.............}.........}
43a0 0a 0a 20 20 20 20 20 20 20 20 69 66 28 21 24 66 70 20 26 26 20 24 74 68 69 73 2d 3e 70 72 6f 78 ..........if(!$fp.&&.$this->prox
43c0 79 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 50 45 41 52 3a 3a 72 61 69 73 65 45 72 72 6f y).{.............PEAR::raiseErro
43e0 72 28 22 43 6f 6e 6e 65 63 74 69 6f 6e 20 74 6f 20 70 72 6f 78 79 20 73 65 72 76 65 72 20 22 2e r("Connection.to.proxy.server.".
4400 24 74 68 69 73 2d 3e 70 72 6f 78 79 2e 22 3a 22 2e 24 74 68 69 73 2d 3e 70 72 6f 78 79 5f 70 6f $this->proxy.":".$this->proxy_po
4420 72 74 2e 22 20 66 61 69 6c 65 64 22 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 rt.".failed");.........}........
4440 20 65 6c 73 65 20 69 66 28 21 24 66 70 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 50 45 41 .else.if(!$fp).{.............PEA
4460 52 3a 3a 72 61 69 73 65 45 72 72 6f 72 28 22 43 6f 6e 6e 65 63 74 69 6f 6e 20 74 6f 20 52 50 43 R::raiseError("Connection.to.RPC
4480 20 73 65 72 76 65 72 20 22 2e 24 74 68 69 73 2d 3e 73 65 72 76 65 72 2e 22 20 66 61 69 6c 65 64 .server.".$this->server.".failed
44a0 22 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 4f 6e 6c 79 20 63 ");.........}..........//.Only.c
44c0 72 65 61 74 65 20 74 68 65 20 70 61 79 6c 6f 61 64 20 69 66 20 69 74 20 77 61 73 20 6e 6f 74 20 reate.the.payload.if.it.was.not.
44e0 63 72 65 61 74 65 64 20 70 72 65 76 69 6f 75 73 6c 79 0a 20 20 20 20 20 20 20 20 69 66 28 65 6d created.previously.........if(em
4500 70 74 79 28 24 6d 73 67 2d 3e 70 61 79 6c 6f 61 64 29 29 20 24 6d 73 67 2d 3e 63 72 65 61 74 65 pty($msg->payload)).$msg->create
4520 50 61 79 6c 6f 61 64 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 74 68 61 6e 6b 73 20 74 6f Payload();..........//.thanks.to
4540 20 47 72 61 6e 74 20 52 61 75 73 63 68 65 72 20 3c 67 72 61 6e 74 37 40 66 69 72 73 74 77 6f 72 .Grant.Rauscher.<grant7@firstwor
4560 6c 64 2e 6e 65 74 3e 0a 20 20 20 20 20 20 20 20 2f 2f 20 66 6f 72 20 74 68 69 73 0a 20 20 20 20 ld.net>.........//.for.this.....
4580 20 20 20 20 24 63 72 65 64 65 6e 74 69 61 6c 73 3d 22 22 3b 0a 20 20 20 20 20 20 20 20 69 66 20 ....$credentials="";.........if.
45a0 28 24 75 73 65 72 6e 61 6d 65 21 3d 22 22 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 ($username!="").{.............$c
45c0 72 65 64 65 6e 74 69 61 6c 73 3d 22 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 3a 20 42 61 73 69 63 redentials="Authorization:.Basic
45e0 20 22 20 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 73 65 36 34 5f 65 6e 63 6f ."...................base64_enco
4600 64 65 28 24 75 73 65 72 6e 61 6d 65 20 2e 20 22 3a 22 20 2e 20 24 70 61 73 73 77 6f 72 64 29 20 de($username...":"...$password).
4620 2e 20 22 5c 72 5c 6e 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 0a 20 20 20 20 20 20 20 20 69 66 .."\r\n";.........}...........if
4640 28 24 74 68 69 73 2d 3e 70 72 6f 78 79 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6f 70 ($this->proxy).{.............$op
4660 20 3d 20 22 50 4f 53 54 20 68 74 74 70 3a 2f 2f 22 20 2e 20 24 74 68 69 73 2d 3e 73 65 72 76 65 .=."POST.http://"...$this->serve
4680 72 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 28 24 74 68 69 73 2d 3e 70 72 6f 78 79 5f r;..............if($this->proxy_
46a0 70 6f 72 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 6f 70 20 2e 3d 20 22 port).{.................$op..=."
46c0 3a 22 20 2e 20 24 74 68 69 73 2d 3e 70 6f 72 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a :"...$this->port;.............}.
46e0 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 ........}.........else.{........
4700 20 20 20 20 24 6f 70 20 3d 20 22 50 4f 53 54 20 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 ....$op.=."POST.";.........}....
4720 20 20 20 20 20 20 24 6f 70 20 2e 3d 20 24 74 68 69 73 2d 3e 70 61 74 68 2e 20 22 20 48 54 54 50 ......$op..=.$this->path..".HTTP
4740 2f 31 2e 30 5c 72 5c 6e 55 73 65 72 2d 41 67 65 6e 74 3a 20 50 48 50 20 58 4d 4c 52 50 43 20 31 /1.0\r\nUser-Agent:.PHP.XMLRPC.1
4760 2e 30 5c 72 5c 6e 22 20 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 48 6f 73 74 3a 20 22 2e 20 .0\r\n"..............."Host:."..
4780 24 74 68 69 73 2d 3e 73 65 72 76 65 72 20 20 2e 20 22 5c 72 5c 6e 22 3b 0a 20 20 20 20 20 20 20 $this->server...."\r\n";........
47a0 20 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 78 79 20 26 26 20 24 74 68 69 73 2d 3e 70 72 6f 78 .if.($this->proxy.&&.$this->prox
47c0 79 5f 75 73 65 72 20 21 3d 20 27 27 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6f 70 20 y_user.!=.'').{.............$op.
47e0 2e 3d 20 27 50 72 6f 78 79 2d 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 3a 20 42 61 73 69 63 20 27 .=.'Proxy-Authorization:.Basic.'
4800 20 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 73 65 36 34 5f 65 6e 63 6f 64 65 ...................base64_encode
4820 28 24 74 68 69 73 2d 3e 70 72 6f 78 79 5f 75 73 65 72 20 2e 20 27 3a 27 20 2e 20 24 74 68 69 73 ($this->proxy_user...':'...$this
4840 2d 3e 70 72 6f 78 79 5f 70 61 73 73 29 20 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ->proxy_pass)...................
4860 22 5c 72 5c 6e 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 6f 70 20 2e 3d "\r\n";.........}.........$op..=
4880 20 24 63 72 65 64 65 6e 74 69 61 6c 73 20 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 43 6f 6e .$credentials..............."Con
48a0 74 65 6e 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 78 6d 6c 5c 72 5c 6e 43 6f 6e 74 65 6e 74 2d 4c tent-Type:.text/xml\r\nContent-L
48c0 65 6e 67 74 68 3a 20 22 20 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 6c 65 6e 28 24 6d ength:."...............strlen($m
48e0 73 67 2d 3e 70 61 79 6c 6f 61 64 29 20 2e 20 22 5c 72 5c 6e 5c 72 5c 6e 22 20 2e 0a 20 20 20 20 sg->payload)..."\r\n\r\n".......
4900 20 20 20 20 20 20 20 20 24 6d 73 67 2d 3e 70 61 79 6c 6f 61 64 3b 0a 0a 20 20 20 20 20 20 20 20 ........$msg->payload;..........
4920 2f 2f 20 70 72 69 6e 74 28 24 6f 70 29 3b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 66 70 75 //.print($op);..........if.(!fpu
4940 74 73 28 24 66 70 2c 20 24 6f 70 2c 20 73 74 72 6c 65 6e 28 24 6f 70 29 29 29 20 7b 0a 20 20 20 ts($fp,.$op,.strlen($op))).{....
4960 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 65 72 72 73 74 72 3d 22 57 72 69 74 65 20 65 72 .........$this->errstr="Write.er
4980 72 6f 72 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 20 20 20 20 ror";.............return.0;.....
49a0 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 72 65 73 70 3d 24 6d 73 67 2d 3e 70 61 72 73 65 52 ....}.........$resp=$msg->parseR
49c0 65 73 70 6f 6e 73 65 46 69 6c 65 28 24 66 70 29 3b 0a 20 20 20 20 20 20 20 20 66 63 6c 6f 73 65 esponseFile($fp);.........fclose
49e0 28 24 66 70 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 65 73 70 3b 0a 20 20 20 ($fp);.........return.$resp;....
4a00 20 7d 0a 7d 0a 0a 0a 63 6c 61 73 73 20 58 4d 4c 5f 52 50 43 5f 52 65 73 70 6f 6e 73 65 0a 7b 0a .}.}...class.XML_RPC_Response.{.
4a20 20 20 20 20 76 61 72 20 24 78 76 3b 0a 20 20 20 20 76 61 72 20 24 66 6e 3b 0a 20 20 20 20 76 61 ....var.$xv;.....var.$fn;.....va
4a40 72 20 24 66 73 3b 0a 20 20 20 20 76 61 72 20 24 68 64 72 73 3b 0a 0a 20 20 20 20 66 75 6e 63 74 r.$fs;.....var.$hdrs;......funct
4a60 69 6f 6e 20 58 4d 4c 5f 52 50 43 5f 52 65 73 70 6f 6e 73 65 28 24 76 61 6c 2c 20 24 66 63 6f 64 ion.XML_RPC_Response($val,.$fcod
4a80 65 3d 30 2c 20 24 66 73 74 72 3d 22 22 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 e=0,.$fstr="").....{.........if.
4aa0 28 24 66 63 6f 64 65 21 3d 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d ($fcode!=0).{.............$this-
4ac0 3e 66 6e 3d 24 66 63 6f 64 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 >fn=$fcode;.............$this->f
4ae0 73 3d 68 74 6d 6c 73 70 65 63 69 61 6c 63 68 61 72 73 28 24 66 73 74 72 29 3b 0a 20 20 20 20 20 s=htmlspecialchars($fstr);......
4b00 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 78 ...}.else.{.............$this->x
4b20 76 3d 24 76 61 6c 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e v=$val;.........}.....}......fun
4b40 63 74 69 6f 6e 20 66 61 75 6c 74 43 6f 64 65 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 ction.faultCode().....{.........
4b60 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 if.(isset($this->fn))...........
4b80 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 6e 3b 0a 20 20 20 20 20 20 20 20 65 6c 73 65 ..return.$this->fn;.........else
4ba0 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 20 20 20 20 7d 0a 0a 20 20 .............return.0;.....}....
4bc0 20 20 66 75 6e 63 74 69 6f 6e 20 66 61 75 6c 74 53 74 72 69 6e 67 28 29 20 7b 20 72 65 74 75 72 ..function.faultString().{.retur
4be0 6e 20 24 74 68 69 73 2d 3e 66 73 3b 20 7d 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 75 n.$this->fs;.}.....function.valu
4c00 65 28 29 20 7b 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 78 76 3b 20 7d 0a 0a 20 20 20 20 66 e().{.return.$this->xv;.}......f
4c20 75 6e 63 74 69 6f 6e 20 73 65 72 69 61 6c 69 7a 65 28 29 20 7b 0a 20 20 20 20 20 20 20 20 24 72 unction.serialize().{.........$r
4c40 73 3d 22 3c 6d 65 74 68 6f 64 52 65 73 70 6f 6e 73 65 3e 5c 6e 22 3b 0a 20 20 20 20 20 20 20 20 s="<methodResponse>\n";.........
4c60 69 66 20 28 24 74 68 69 73 2d 3e 66 6e 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 73 if.($this->fn).{.............$rs
4c80 2e 3d 22 3c 66 61 75 6c 74 3e 0a 20 20 3c 76 61 6c 75 65 3e 0a 20 20 20 20 3c 73 74 72 75 63 74 .="<fault>...<value>.....<struct
4ca0 3e 0a 20 20 20 20 20 20 3c 6d 65 6d 62 65 72 3e 0a 20 20 20 20 20 20 20 20 3c 6e 61 6d 65 3e 66 >.......<member>.........<name>f
4cc0 61 75 6c 74 43 6f 64 65 3c 2f 6e 61 6d 65 3e 0a 20 20 20 20 20 20 20 20 3c 76 61 6c 75 65 3e 3c aultCode</name>.........<value><
4ce0 69 6e 74 3e 22 20 2e 20 24 74 68 69 73 2d 3e 66 6e 20 2e 20 22 3c 2f 69 6e 74 3e 3c 2f 76 61 6c int>"...$this->fn..."</int></val
4d00 75 65 3e 0a 20 20 20 20 20 20 3c 2f 6d 65 6d 62 65 72 3e 0a 20 20 20 20 20 20 3c 6d 65 6d 62 65 ue>.......</member>.......<membe
4d20 72 3e 0a 20 20 20 20 20 20 20 20 3c 6e 61 6d 65 3e 66 61 75 6c 74 53 74 72 69 6e 67 3c 2f 6e 61 r>.........<name>faultString</na
4d40 6d 65 3e 0a 20 20 20 20 20 20 20 20 3c 76 61 6c 75 65 3e 3c 73 74 72 69 6e 67 3e 22 20 2e 20 24 me>.........<value><string>"...$
4d60 74 68 69 73 2d 3e 66 73 20 2e 20 22 3c 2f 73 74 72 69 6e 67 3e 3c 2f 76 61 6c 75 65 3e 0a 20 20 this->fs..."</string></value>...
4d80 20 20 20 20 3c 2f 6d 65 6d 62 65 72 3e 0a 20 20 20 20 3c 2f 73 74 72 75 63 74 3e 0a 20 20 3c 2f ....</member>.....</struct>...</
4da0 76 61 6c 75 65 3e 0a 3c 2f 66 61 75 6c 74 3e 22 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 value>.</fault>";.........}.else
4dc0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 73 2e 3d 22 3c 70 61 72 61 6d 73 3e 5c 6e 3c .{.............$rs.="<params>\n<
4de0 70 61 72 61 6d 3e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 78 76 2d 3e 73 65 72 69 61 6c 69 7a 65 param>\n"...$this->xv->serialize
4e00 28 29 20 2e 0a 20 20 20 20 20 20 20 20 22 3c 2f 70 61 72 61 6d 3e 5c 6e 3c 2f 70 61 72 61 6d 73 ()..........."</param>\n</params
4e20 3e 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 72 73 2e 3d 22 5c 6e 3c 2f >";.........}.........$rs.="\n</
4e40 6d 65 74 68 6f 64 52 65 73 70 6f 6e 73 65 3e 22 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e methodResponse>";.........return
4e60 20 24 72 73 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 0a 63 6c 61 73 73 20 58 4d 4c 5f 52 50 43 5f 4d 65 .$rs;.....}.}...class.XML_RPC_Me
4e80 73 73 61 67 65 0a 7b 0a 20 20 20 20 76 61 72 20 24 70 61 79 6c 6f 61 64 3b 0a 20 20 20 20 76 61 ssage.{.....var.$payload;.....va
4ea0 72 20 24 6d 65 74 68 6f 64 6e 61 6d 65 3b 0a 20 20 20 20 76 61 72 20 24 70 61 72 61 6d 73 20 3d r.$methodname;.....var.$params.=
4ec0 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 76 61 72 20 24 64 65 62 75 67 3d 30 3b 0a 0a 20 20 20 .array();.....var.$debug=0;.....
4ee0 20 66 75 6e 63 74 69 6f 6e 20 58 4d 4c 5f 52 50 43 5f 4d 65 73 73 61 67 65 28 24 6d 65 74 68 2c .function.XML_RPC_Message($meth,
4f00 20 24 70 61 72 73 3d 30 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6d .$pars=0).....{.........$this->m
4f20 65 74 68 6f 64 6e 61 6d 65 3d 24 6d 65 74 68 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f ethodname=$meth;.........if.(is_
4f40 61 72 72 61 79 28 24 70 61 72 73 29 20 26 26 20 73 69 7a 65 6f 66 28 24 70 61 72 73 29 3e 30 29 array($pars).&&.sizeof($pars)>0)
4f60 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 28 24 69 3d 30 3b 20 24 69 3c 73 69 7a 65 .{.............for($i=0;.$i<size
4f80 6f 66 28 24 70 61 72 73 29 3b 20 24 69 2b 2b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 of($pars);.$i++)................
4fa0 20 24 74 68 69 73 2d 3e 61 64 64 50 61 72 61 6d 28 24 70 61 72 73 5b 24 69 5d 29 3b 0a 20 20 20 .$this->addParam($pars[$i]);....
4fc0 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 78 6d 6c 5f 68 .....}.....}......function.xml_h
4fe0 65 61 64 65 72 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 22 3c 3f 78 6d 6c 20 eader().....{.....return."<?xml.
5000 76 65 72 73 69 6f 6e 3d 5c 22 31 2e 30 5c 22 3f 3e 5c 6e 3c 6d 65 74 68 6f 64 43 61 6c 6c 3e 5c version=\"1.0\"?>\n<methodCall>\
5020 6e 22 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 78 6d 6c 5f 66 6f 6f 74 n";.....}......function.xml_foot
5040 65 72 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 22 3c 2f 6d 65 74 68 6f 64 43 er().....{.....return."</methodC
5060 61 6c 6c 3e 5c 6e 22 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 all>\n";.....}......function.cre
5080 61 74 65 50 61 79 6c 6f 61 64 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 atePayload().....{.........$this
50a0 2d 3e 70 61 79 6c 6f 61 64 3d 24 74 68 69 73 2d 3e 78 6d 6c 5f 68 65 61 64 65 72 28 29 3b 0a 20 ->payload=$this->xml_header();..
50c0 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 61 79 6c 6f 61 64 2e 3d 22 3c 6d 65 74 68 6f 64 4e .......$this->payload.="<methodN
50e0 61 6d 65 3e 22 20 2e 20 24 74 68 69 73 2d 3e 6d 65 74 68 6f 64 6e 61 6d 65 20 2e 20 22 3c 2f 6d ame>"...$this->methodname..."</m
5100 65 74 68 6f 64 4e 61 6d 65 3e 5c 6e 22 3b 0a 20 20 20 20 20 20 20 20 2f 2f 20 20 69 66 20 28 73 ethodName>\n";.........//..if.(s
5120 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 70 61 72 61 6d 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 izeof($this->params)).{.........
5140 20 20 20 20 24 74 68 69 73 2d 3e 70 61 79 6c 6f 61 64 2e 3d 22 3c 70 61 72 61 6d 73 3e 5c 6e 22 ....$this->payload.="<params>\n"
5160 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 28 24 69 3d 30 3b 20 24 69 3c 73 69 7a 65 6f ;.............for($i=0;.$i<sizeo
5180 66 28 24 74 68 69 73 2d 3e 70 61 72 61 6d 73 29 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 f($this->params);.$i++).{.......
51a0 20 20 20 20 20 20 20 20 20 20 24 70 3d 24 74 68 69 73 2d 3e 70 61 72 61 6d 73 5b 24 69 5d 3b 0a ..........$p=$this->params[$i];.
51c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 61 79 6c 6f 61 64 2e 3d ................$this->payload.=
51e0 22 3c 70 61 72 61 6d 3e 5c 6e 22 20 2e 20 24 70 2d 3e 73 65 72 69 61 6c 69 7a 65 28 29 20 2e 0a "<param>\n"...$p->serialize()...
5200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 3c 2f 70 61 72 61 6d 3e 5c 6e 22 ...................."</param>\n"
5220 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 ;.............}.............$thi
5240 73 2d 3e 70 61 79 6c 6f 61 64 2e 3d 22 3c 2f 70 61 72 61 6d 73 3e 5c 6e 22 3b 0a 20 20 20 20 20 s->payload.="</params>\n";......
5260 20 20 20 2f 2f 20 7d 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 61 79 6c 6f 61 64 2e 3d ...//.}.........$this->payload.=
5280 24 74 68 69 73 2d 3e 78 6d 6c 5f 66 6f 6f 74 65 72 28 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 $this->xml_footer();.........$th
52a0 69 73 2d 3e 70 61 79 6c 6f 61 64 3d 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 22 5c is->payload=str_replace("\n",."\
52c0 72 5c 6e 22 2c 20 24 74 68 69 73 2d 3e 70 61 79 6c 6f 61 64 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 r\n",.$this->payload);.....}....
52e0 20 20 66 75 6e 63 74 69 6f 6e 20 6d 65 74 68 6f 64 28 24 6d 65 74 68 3d 22 22 29 0a 20 20 20 20 ..function.method($meth="").....
5300 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 6d 65 74 68 21 3d 22 22 29 20 7b 0a 20 20 20 20 20 {.........if.($meth!="").{......
5320 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6d 65 74 68 6f 64 6e 61 6d 65 3d 24 6d 65 74 68 3b 0a .......$this->methodname=$meth;.
5340 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ........}.........return.$this->
5360 6d 65 74 68 6f 64 6e 61 6d 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 methodname;.....}......function.
5380 73 65 72 69 61 6c 69 7a 65 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d serialize().....{.........$this-
53a0 3e 63 72 65 61 74 65 50 61 79 6c 6f 61 64 28 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e >createPayload();.........return
53c0 20 24 74 68 69 73 2d 3e 70 61 79 6c 6f 61 64 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 .$this->payload;.....}......func
53e0 74 69 6f 6e 20 61 64 64 50 61 72 61 6d 28 24 70 61 72 29 20 7b 20 24 74 68 69 73 2d 3e 70 61 72 tion.addParam($par).{.$this->par
5400 61 6d 73 5b 5d 3d 24 70 61 72 3b 20 7d 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 ams[]=$par;.}.....function.getPa
5420 72 61 6d 28 24 69 29 20 7b 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 72 61 6d 73 5b 24 ram($i).{.return.$this->params[$
5440 69 5d 3b 20 7d 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 75 6d 50 61 72 61 6d 73 28 i];.}.....function.getNumParams(
5460 29 20 7b 20 72 65 74 75 72 6e 20 73 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 70 61 72 61 6d 73 29 ).{.return.sizeof($this->params)
5480 3b 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 52 65 73 70 6f 6e 73 65 46 ;.}......function.parseResponseF
54a0 69 6c 65 28 24 66 70 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 69 70 64 3d 22 22 3b 0a ile($fp).....{.........$ipd="";.
54c0 0a 20 20 20 20 20 20 20 20 77 68 69 6c 65 28 24 64 61 74 61 3d 66 72 65 61 64 28 24 66 70 2c 20 .........while($data=fread($fp,.
54e0 33 32 37 36 38 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 69 70 64 2e 3d 24 64 61 74 32768)).{.............$ipd.=$dat
5500 61 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 a;.........}.........return.$thi
5520 73 2d 3e 70 61 72 73 65 52 65 73 70 6f 6e 73 65 28 24 69 70 64 29 3b 0a 20 20 20 20 7d 0a 0a 20 s->parseResponse($ipd);.....}...
5540 20 20 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 52 65 73 70 6f 6e 73 65 28 24 64 61 74 61 3d ...function.parseResponse($data=
5560 22 22 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 "").....{.........global.$XML_RP
5580 43 5f 78 68 2c 24 58 4d 4c 5f 52 50 43 5f 65 72 72 2c 24 58 4d 4c 5f 52 50 43 5f 73 74 72 3b 0a C_xh,$XML_RPC_err,$XML_RPC_str;.
55a0 20 20 20 20 20 20 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 64 65 66 65 6e 63 6f 64 ........global.$XML_RPC_defencod
55c0 69 6e 67 3b 0a 0a 20 20 20 20 20 20 20 20 24 70 61 72 73 65 72 20 3d 20 78 6d 6c 5f 70 61 72 73 ing;..........$parser.=.xml_pars
55e0 65 72 5f 63 72 65 61 74 65 28 24 58 4d 4c 5f 52 50 43 5f 64 65 66 65 6e 63 6f 64 69 6e 67 29 3b er_create($XML_RPC_defencoding);
5600 0a 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 3d 61 ..........$XML_RPC_xh[$parser]=a
5620 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 rray();..........$XML_RPC_xh[$pa
5640 72 73 65 72 5d 5b 27 73 74 27 5d 3d 22 22 3b 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 rser]['st']="";.........$XML_RPC
5660 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 63 6d 27 5d 3d 30 3b 0a 20 20 20 20 20 20 20 20 24 58 _xh[$parser]['cm']=0;.........$X
5680 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 69 73 66 27 5d 3d 30 3b 0a 20 20 20 ML_RPC_xh[$parser]['isf']=0;....
56a0 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 61 63 27 5d 3d .....$XML_RPC_xh[$parser]['ac']=
56c0 22 22 3b 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d "";.........$XML_RPC_xh[$parser]
56e0 5b 27 71 74 27 5d 3d 22 22 3b 0a 0a 20 20 20 20 20 20 20 20 78 6d 6c 5f 70 61 72 73 65 72 5f 73 ['qt']="";..........xml_parser_s
5700 65 74 5f 6f 70 74 69 6f 6e 28 24 70 61 72 73 65 72 2c 20 58 4d 4c 5f 4f 50 54 49 4f 4e 5f 43 41 et_option($parser,.XML_OPTION_CA
5720 53 45 5f 46 4f 4c 44 49 4e 47 2c 20 74 72 75 65 29 3b 0a 20 20 20 20 20 20 20 20 78 6d 6c 5f 73 SE_FOLDING,.true);.........xml_s
5740 65 74 5f 65 6c 65 6d 65 6e 74 5f 68 61 6e 64 6c 65 72 28 24 70 61 72 73 65 72 2c 20 22 58 4d 4c et_element_handler($parser,."XML
5760 5f 52 50 43 5f 73 65 22 2c 20 22 58 4d 4c 5f 52 50 43 5f 65 65 22 29 3b 0a 20 20 20 20 20 20 20 _RPC_se",."XML_RPC_ee");........
5780 20 78 6d 6c 5f 73 65 74 5f 63 68 61 72 61 63 74 65 72 5f 64 61 74 61 5f 68 61 6e 64 6c 65 72 28 .xml_set_character_data_handler(
57a0 24 70 61 72 73 65 72 2c 20 22 58 4d 4c 5f 52 50 43 5f 63 64 22 29 3b 0a 20 20 20 20 20 20 20 20 $parser,."XML_RPC_cd");.........
57c0 78 6d 6c 5f 73 65 74 5f 64 65 66 61 75 6c 74 5f 68 61 6e 64 6c 65 72 28 24 70 61 72 73 65 72 2c xml_set_default_handler($parser,
57e0 20 22 58 4d 4c 5f 52 50 43 5f 64 68 22 29 3b 0a 20 20 20 20 20 20 20 20 24 78 6d 6c 72 70 63 5f ."XML_RPC_dh");.........$xmlrpc_
5800 76 61 6c 75 65 20 3d 20 6e 65 77 20 58 4d 4c 5f 52 50 43 5f 56 61 6c 75 65 3b 0a 0a 20 20 20 20 value.=.new.XML_RPC_Value;......
5820 20 20 20 20 24 68 64 72 66 6e 64 3d 30 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 ....$hdrfnd=0;.........if.($this
5840 2d 3e 64 65 62 75 67 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 20 22 3c 50 ->debug).{.............print."<P
5860 52 45 3e 2d 2d 2d 47 4f 54 2d 2d 2d 5c 6e 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 RE>---GOT---\n";.............pri
5880 6e 74 20 69 73 73 65 74 28 24 5f 53 45 52 56 45 52 5b 27 53 45 52 56 45 52 5f 50 52 4f 54 4f 43 nt.isset($_SERVER['SERVER_PROTOC
58a0 4f 4c 27 5d 29 20 3f 20 68 74 6d 6c 73 70 65 63 69 61 6c 63 68 61 72 73 28 24 64 61 74 61 29 20 OL']).?.htmlspecialchars($data).
58c0 3a 20 24 64 61 74 61 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 20 22 5c 6e 2d 2d :.$data;.............print."\n--
58e0 2d 45 4e 44 2d 2d 2d 5c 6e 3c 2f 50 52 45 3e 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 -END---\n</PRE>";.........}.....
5900 20 20 20 20 2f 2f 20 73 65 65 20 69 66 20 77 65 20 67 6f 74 20 61 6e 20 48 54 54 50 20 32 30 30 ....//.see.if.we.got.an.HTTP.200
5920 20 4f 4b 2c 20 65 6c 73 65 20 62 6f 6d 62 0a 20 20 20 20 20 20 20 20 2f 2f 20 62 75 74 20 6f 6e .OK,.else.bomb.........//.but.on
5940 6c 79 20 64 6f 20 74 68 69 73 20 69 66 20 77 65 27 72 65 20 75 73 69 6e 67 20 74 68 65 20 48 54 ly.do.this.if.we're.using.the.HT
5960 54 50 20 70 72 6f 74 6f 63 6f 6c 2e 0a 20 20 20 20 20 20 20 20 69 66 20 28 65 72 65 67 28 22 5e TP.protocol..........if.(ereg("^
5980 48 54 54 50 22 2c 24 64 61 74 61 29 20 26 26 0a 20 20 20 20 20 20 20 20 20 20 20 20 21 65 72 65 HTTP",$data).&&.............!ere
59a0 67 28 22 5e 48 54 54 50 2f 5b 30 2d 39 5c 2e 5d 2b 20 32 30 30 20 22 2c 20 24 64 61 74 61 29 29 g("^HTTP/[0-9\.]+.200.",.$data))
59c0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 65 72 72 73 74 72 3d 20 73 75 62 73 .{.................$errstr=.subs
59e0 74 72 28 24 64 61 74 61 2c 20 30 2c 20 73 74 72 70 6f 73 28 24 64 61 74 61 2c 20 22 5c 6e 22 29 tr($data,.0,.strpos($data,."\n")
5a00 2d 31 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 5f 6c 6f 67 28 22 -1);.................error_log("
5a20 48 54 54 50 20 65 72 72 6f 72 2c 20 67 6f 74 20 72 65 73 70 6f 6e 73 65 3a 20 22 20 2e 24 65 72 HTTP.error,.got.response:."..$er
5a40 72 73 74 72 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 3d 6e 65 77 20 58 4d rstr);.................$r=new.XM
5a60 4c 5f 52 50 43 5f 52 65 73 70 6f 6e 73 65 28 30 2c 20 24 58 4d 4c 5f 52 50 43 5f 65 72 72 5b 22 L_RPC_Response(0,.$XML_RPC_err["
5a80 68 74 74 70 5f 65 72 72 6f 72 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 http_error"],...................
5aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 73 ......................$XML_RPC_s
5ac0 74 72 5b 22 68 74 74 70 5f 65 72 72 6f 72 22 5d 2e 20 22 20 28 22 20 2e 0a 20 20 20 20 20 20 20 tr["http_error"]..".("..........
5ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5b00 20 24 65 72 72 73 74 72 20 2e 20 22 29 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .$errstr...")");................
5b20 20 78 6d 6c 5f 70 61 72 73 65 72 5f 66 72 65 65 28 24 70 61 72 73 65 72 29 3b 0a 20 20 20 20 20 .xml_parser_free($parser);......
5b40 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a ...........return.$r;.........}.
5b60 20 20 20 20 20 20 20 20 2f 2f 20 67 6f 74 74 61 20 67 65 74 20 72 69 64 20 6f 66 20 68 65 61 64 ........//.gotta.get.rid.of.head
5b80 65 72 73 20 68 65 72 65 0a 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 0a 20 20 20 ers.here........................
5ba0 20 20 20 20 20 69 66 20 28 28 21 24 68 64 72 66 6e 64 29 20 26 26 20 28 24 62 72 70 6f 73 20 3d .....if.((!$hdrfnd).&&.($brpos.=
5bc0 20 73 74 72 70 6f 73 28 24 64 61 74 61 2c 22 5c 72 5c 6e 5c 72 5c 6e 22 29 29 29 20 7b 0a 20 20 .strpos($data,"\r\n\r\n"))).{...
5be0 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 ..........$XML_RPC_xh[$parser]['
5c00 68 61 27 5d 20 3d 20 73 75 62 73 74 72 28 24 64 61 74 61 2c 30 2c 24 62 72 70 6f 73 29 3b 0a 20 ha'].=.substr($data,0,$brpos);..
5c20 20 20 20 20 20 20 20 20 20 20 20 24 64 61 74 61 3d 20 73 75 62 73 74 72 28 24 64 61 74 61 2c 24 ...........$data=.substr($data,$
5c40 62 72 70 6f 73 2b 34 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 68 64 72 66 6e 64 3d 31 3b brpos+4);.............$hdrfnd=1;
5c60 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 78 6d 6c 5f 70 61 72 .........}..........if.(!xml_par
5c80 73 65 28 24 70 61 72 73 65 72 2c 20 24 64 61 74 61 2c 20 73 69 7a 65 6f 66 28 24 64 61 74 61 29 se($parser,.$data,.sizeof($data)
5ca0 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 74 68 61 6e 6b 73 20 74 6f 20 50 65 )).{.............//.thanks.to.Pe
5cc0 74 65 72 20 4b 6f 63 6b 73 20 3c 70 65 74 65 72 2e 6b 6f 63 6b 73 40 62 61 79 67 61 74 65 2e 63 ter.Kocks.<peter.kocks@baygate.c
5ce0 6f 6d 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 28 28 78 6d 6c 5f 67 65 74 5f 63 75 72 72 om>.............if((xml_get_curr
5d00 65 6e 74 5f 6c 69 6e 65 5f 6e 75 6d 62 65 72 28 24 70 61 72 73 65 72 29 29 20 3d 3d 20 31 29 0a ent_line_number($parser)).==.1).
5d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 65 72 72 73 74 72 20 3d 20 22 58 4d 4c 20 65 ................$errstr.=."XML.e
5d40 72 72 6f 72 20 61 74 20 6c 69 6e 65 20 31 2c 20 63 68 65 63 6b 20 55 52 4c 22 3b 0a 20 20 20 20 rror.at.line.1,.check.URL";.....
5d60 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 65 72 ........else.................$er
5d80 72 73 74 72 20 3d 20 73 70 72 69 6e 74 66 28 22 58 4d 4c 20 65 72 72 6f 72 3a 20 25 73 20 61 74 rstr.=.sprintf("XML.error:.%s.at
5da0 20 6c 69 6e 65 20 25 64 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .line.%d",......................
5dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 78 6d 6c 5f 65 72 72 6f 72 5f 73 74 72 69 6e 67 28 78 6d .............xml_error_string(xm
5de0 6c 5f 67 65 74 5f 65 72 72 6f 72 5f 63 6f 64 65 28 24 70 61 72 73 65 72 29 29 2c 0a 20 20 20 20 l_get_error_code($parser)),.....
5e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 78 6d ..............................xm
5e20 6c 5f 67 65 74 5f 63 75 72 72 65 6e 74 5f 6c 69 6e 65 5f 6e 75 6d 62 65 72 28 24 70 61 72 73 65 l_get_current_line_number($parse
5e40 72 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 5f 6c 6f 67 28 24 65 72 72 73 r));.............error_log($errs
5e60 74 72 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 3d 6e 65 77 20 58 4d 4c 5f 52 50 43 5f tr);.............$r=new.XML_RPC_
5e80 52 65 73 70 6f 6e 73 65 28 30 2c 20 24 58 4d 4c 5f 52 50 43 5f 65 72 72 5b 22 69 6e 76 61 6c 69 Response(0,.$XML_RPC_err["invali
5ea0 64 5f 72 65 74 75 72 6e 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d_return"],.....................
5ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 73 74 72 5b 22 69 6e ................$XML_RPC_str["in
5ee0 76 61 6c 69 64 5f 72 65 74 75 72 6e 22 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 78 6d 6c valid_return"]);.............xml
5f00 5f 70 61 72 73 65 72 5f 66 72 65 65 28 24 70 61 72 73 65 72 29 3b 0a 20 20 20 20 20 20 20 20 20 _parser_free($parser);..........
5f20 20 20 20 72 65 74 75 72 6e 20 24 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 ...return.$r;.........}.........
5f40 78 6d 6c 5f 70 61 72 73 65 72 5f 66 72 65 65 28 24 70 61 72 73 65 72 29 3b 0a 20 20 20 20 20 20 xml_parser_free($parser);.......
5f60 20 20 69 66 20 28 24 74 68 69 73 2d 3e 64 65 62 75 67 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ..if.($this->debug).{...........
5f80 20 20 70 72 69 6e 74 20 22 3c 50 52 45 3e 2d 2d 2d 45 56 41 4c 49 4e 47 2d 2d 2d 5b 22 20 2e 0a ..print."<PRE>---EVALING---["...
5fa0 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 6c 65 6e 28 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 ............strlen($XML_RPC_xh[$
5fc0 70 61 72 73 65 72 5d 5b 27 73 74 27 5d 29 20 2e 20 22 20 63 68 61 72 73 5d 2d 2d 2d 5c 6e 22 20 parser]['st'])...".chars]---\n".
5fe0 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 68 74 6d 6c 73 70 65 63 69 61 6c 63 68 61 72 73 28 24 ..............htmlspecialchars($
6000 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 73 74 27 5d 29 20 2e 20 22 3b 5c XML_RPC_xh[$parser]['st'])...";\
6020 6e 2d 2d 2d 45 4e 44 2d 2d 2d 3c 2f 50 52 45 3e 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 n---END---</PRE>";.........}....
6040 20 20 20 20 20 69 66 20 28 73 74 72 6c 65 6e 28 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 .....if.(strlen($XML_RPC_xh[$par
6060 73 65 72 5d 5b 27 73 74 27 5d 29 3d 3d 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f ser]['st'])==0).{.............//
6080 20 74 68 65 6e 20 73 6f 6d 65 74 68 69 6e 67 20 6f 64 64 20 68 61 73 20 68 61 70 70 65 6e 65 64 .then.something.odd.has.happened
60a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 61 6e 64 20 69 74 27 73 20 74 69 6d 65 20 74 6f .............//.and.it's.time.to
60c0 20 67 65 6e 65 72 61 74 65 20 61 20 63 6c 69 65 6e 74 20 73 69 64 65 20 65 72 72 6f 72 0a 20 20 .generate.a.client.side.error...
60e0 20 20 20 20 20 20 20 20 20 20 2f 2f 20 69 6e 64 69 63 61 74 69 6e 67 20 73 6f 6d 65 74 68 69 6e ..........//.indicating.somethin
6100 67 20 6f 64 64 20 77 65 6e 74 20 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 3d 6e 65 77 g.odd.went.on.............$r=new
6120 20 58 4d 4c 5f 52 50 43 5f 52 65 73 70 6f 6e 73 65 28 30 2c 20 24 58 4d 4c 5f 52 50 43 5f 65 72 .XML_RPC_Response(0,.$XML_RPC_er
6140 72 5b 22 69 6e 76 61 6c 69 64 5f 72 65 74 75 72 6e 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 r["invalid_return"],............
6160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c ............................$XML
6180 5f 52 50 43 5f 73 74 72 5b 22 69 6e 76 61 6c 69 64 5f 72 65 74 75 72 6e 22 5d 29 3b 0a 20 20 20 _RPC_str["invalid_return"]);....
61a0 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 76 61 6c 28 27 .....}.else.{.............eval('
61c0 24 76 3d 27 20 2e 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 73 74 27 $v='...$XML_RPC_xh[$parser]['st'
61e0 5d 20 2e 20 27 3b 20 24 61 6c 6c 4f 4b 3d 31 3b 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ]...';.$allOK=1;');.............
6200 69 66 20 28 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 69 73 66 27 5d 29 if.($XML_RPC_xh[$parser]['isf'])
6220 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 66 3d 24 76 2d 3e 73 74 72 75 63 74 .{.................$f=$v->struct
6240 6d 65 6d 28 22 66 61 75 6c 74 43 6f 64 65 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mem("faultCode");...............
6260 20 20 24 66 73 3d 24 76 2d 3e 73 74 72 75 63 74 6d 65 6d 28 22 66 61 75 6c 74 53 74 72 69 6e 67 ..$fs=$v->structmem("faultString
6280 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 3d 6e 65 77 20 58 4d 4c 5f 52 ");.................$r=new.XML_R
62a0 50 43 5f 52 65 73 70 6f 6e 73 65 28 24 76 2c 20 24 66 2d 3e 73 63 61 6c 61 72 76 61 6c 28 29 2c PC_Response($v,.$f->scalarval(),
62c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
62e0 20 20 20 20 20 20 20 20 20 20 20 20 20 24 66 73 2d 3e 73 63 61 6c 61 72 76 61 6c 28 29 29 3b 0a .............$fs->scalarval());.
6300 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 ............}.else.{............
6320 20 20 20 20 20 24 72 3d 6e 65 77 20 58 4d 4c 5f 52 50 43 5f 52 65 73 70 6f 6e 73 65 28 24 76 29 .....$r=new.XML_RPC_Response($v)
6340 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 ;.............}.........}.......
6360 20 20 24 72 2d 3e 68 64 72 73 3d 73 70 6c 69 74 28 22 5c 72 3f 5c 6e 22 2c 20 24 58 4d 4c 5f 52 ..$r->hdrs=split("\r?\n",.$XML_R
6380 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 68 61 27 5d 5b 31 5d 29 3b 0a 20 20 20 20 20 20 PC_xh[$parser]['ha'][1]);.......
63a0 20 20 72 65 74 75 72 6e 20 24 72 3b 0a 20 20 20 20 7d 0a 0a 7d 0a 0a 0a 63 6c 61 73 73 20 58 4d ..return.$r;.....}..}...class.XM
63c0 4c 5f 52 50 43 5f 56 61 6c 75 65 0a 7b 0a 20 20 20 20 76 61 72 20 24 6d 65 3d 61 72 72 61 79 28 L_RPC_Value.{.....var.$me=array(
63e0 29 3b 0a 20 20 20 20 76 61 72 20 24 6d 79 74 79 70 65 3d 30 3b 0a 0a 20 20 20 20 66 75 6e 63 74 );.....var.$mytype=0;......funct
6400 69 6f 6e 20 58 4d 4c 5f 52 50 43 5f 56 61 6c 75 65 28 24 76 61 6c 3d 2d 31 2c 20 24 74 79 70 65 ion.XML_RPC_Value($val=-1,.$type
6420 3d 22 22 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 ="").....{.........global.$XML_R
6440 50 43 5f 54 79 70 65 73 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6d 65 3d 61 72 72 61 PC_Types;.........$this->me=arra
6460 79 28 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6d 79 74 79 70 65 3d 30 3b 0a 20 20 y();.........$this->mytype=0;...
6480 20 20 20 20 20 20 69 66 20 28 24 76 61 6c 21 3d 2d 31 20 7c 7c 20 24 74 79 70 65 21 3d 22 22 29 ......if.($val!=-1.||.$type!="")
64a0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 74 79 70 65 3d 3d 22 22 29 20 24 74 .{.............if.($type=="").$t
64c0 79 70 65 3d 22 73 74 72 69 6e 67 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 58 ype="string";.............if.($X
64e0 4d 4c 5f 52 50 43 5f 54 79 70 65 73 5b 24 74 79 70 65 5d 3d 3d 31 29 20 7b 0a 20 20 20 20 20 20 ML_RPC_Types[$type]==1).{.......
6500 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 64 64 53 63 61 6c 61 72 28 24 76 61 6c 2c ..........$this->addScalar($val,
6520 24 74 79 70 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 $type);.............}...........
6540 20 20 65 6c 73 65 20 69 66 20 28 24 58 4d 4c 5f 52 50 43 5f 54 79 70 65 73 5b 24 74 79 70 65 5d ..else.if.($XML_RPC_Types[$type]
6560 3d 3d 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 64 64 41 ==2).................$this->addA
6580 72 72 61 79 28 24 76 61 6c 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 rray($val);.............else.if.
65a0 28 24 58 4d 4c 5f 52 50 43 5f 54 79 70 65 73 5b 24 74 79 70 65 5d 3d 3d 33 29 0a 20 20 20 20 20 ($XML_RPC_Types[$type]==3)......
65c0 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 64 64 53 74 72 75 63 74 28 24 76 61 6c ...........$this->addStruct($val
65e0 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e );.........}.....}......function
6600 20 61 64 64 53 63 61 6c 61 72 28 24 76 61 6c 2c 20 24 74 79 70 65 3d 22 73 74 72 69 6e 67 22 29 .addScalar($val,.$type="string")
6620 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 54 .....{.........global.$XML_RPC_T
6640 79 70 65 73 2c 20 24 58 4d 4c 5f 52 50 43 5f 42 6f 6f 6c 65 61 6e 3b 0a 0a 20 20 20 20 20 20 20 ypes,.$XML_RPC_Boolean;.........
6660 20 69 66 20 28 24 74 68 69 73 2d 3e 6d 79 74 79 70 65 3d 3d 31 29 20 7b 0a 20 20 20 20 20 20 20 .if.($this->mytype==1).{........
6680 20 20 20 20 20 65 63 68 6f 20 22 3c 42 3e 58 4d 4c 5f 52 50 43 5f 56 61 6c 75 65 3c 2f 42 3e 3a .....echo."<B>XML_RPC_Value</B>:
66a0 20 73 63 61 6c 61 72 20 63 61 6e 20 68 61 76 65 20 6f 6e 6c 79 20 6f 6e 65 20 76 61 6c 75 65 3c .scalar.can.have.only.one.value<
66c0 42 52 3e 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 20 20 20 20 BR>";.............return.0;.....
66e0 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 74 79 70 65 6f 66 3d 24 58 4d 4c 5f 52 50 43 5f 54 ....}.........$typeof=$XML_RPC_T
6700 79 70 65 73 5b 24 74 79 70 65 5d 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 79 70 65 6f 66 ypes[$type];.........if.($typeof
6720 21 3d 31 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 63 68 6f 20 22 3c 42 3e 58 4d 4c 5f !=1).{.............echo."<B>XML_
6740 52 50 43 5f 56 61 6c 75 65 3c 2f 42 3e 3a 20 6e 6f 74 20 61 20 73 63 61 6c 61 72 20 74 79 70 65 RPC_Value</B>:.not.a.scalar.type
6760 20 28 24 7b 74 79 70 65 6f 66 7d 29 3c 42 52 3e 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 .(${typeof})<BR>";.............r
6780 65 74 75 72 6e 20 30 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 eturn.0;.........}..........if.(
67a0 24 74 79 70 65 3d 3d 24 58 4d 4c 5f 52 50 43 5f 42 6f 6f 6c 65 61 6e 29 20 7b 0a 20 20 20 20 20 $type==$XML_RPC_Boolean).{......
67c0 20 20 20 20 20 20 20 69 66 20 28 73 74 72 63 61 73 65 63 6d 70 28 24 76 61 6c 2c 22 74 72 75 65 .......if.(strcasecmp($val,"true
67e0 22 29 3d 3d 30 20 7c 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 76 61 6c 3d 3d 31 ")==0.||.................$val==1
6800 20 7c 7c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 24 76 61 6c 3d 3d 74 72 75 65 20 .||.................($val==true.
6820 26 26 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 63 61 73 65 63 6d &&.....................strcasecm
6840 70 28 24 76 61 6c 2c 22 66 61 6c 73 65 22 29 29 29 20 7b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 p($val,"false"))).{.............
6860 20 20 20 20 20 24 76 61 6c 3d 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 .....$val=1;.............}.else.
6880 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 76 61 6c 3d 30 3b 0a 20 20 20 20 20 20 {.................$val=0;.......
68a0 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 ......}.........}..........if.($
68c0 74 68 69 73 2d 3e 6d 79 74 79 70 65 3d 3d 32 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f this->mytype==2).{............./
68e0 2f 20 77 65 27 72 65 20 61 64 64 69 6e 67 20 74 6f 20 61 6e 20 61 72 72 61 79 20 68 65 72 65 0a /.we're.adding.to.an.array.here.
6900 20 20 20 20 20 20 20 20 20 20 20 20 24 61 72 3d 24 74 68 69 73 2d 3e 6d 65 5b 22 61 72 72 61 79 ............$ar=$this->me["array
6920 22 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 61 72 5b 5d 3d 6e 65 77 20 58 4d 4c 5f 52 50 "];.............$ar[]=new.XML_RP
6940 43 5f 56 61 6c 75 65 28 24 76 61 6c 2c 20 24 74 79 70 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20 C_Value($val,.$type);...........
6960 20 20 24 74 68 69 73 2d 3e 6d 65 5b 22 61 72 72 61 79 22 5d 3d 24 61 72 3b 0a 20 20 20 20 20 20 ..$this->me["array"]=$ar;.......
6980 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 61 20 73 63 61 6c ..}.else.{.............//.a.scal
69a0 61 72 2c 20 73 6f 20 73 65 74 20 74 68 65 20 76 61 6c 75 65 20 61 6e 64 20 72 65 6d 65 6d 62 65 ar,.so.set.the.value.and.remembe
69c0 72 20 77 65 27 72 65 20 73 63 61 6c 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 r.we're.scalar.............$this
69e0 2d 3e 6d 65 5b 24 74 79 70 65 5d 3d 24 76 61 6c 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 ->me[$type]=$val;.............$t
6a00 68 69 73 2d 3e 6d 79 74 79 70 65 3d 24 74 79 70 65 6f 66 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 his->mytype=$typeof;.........}..
6a20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 31 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 .......return.1;.....}......func
6a40 74 69 6f 6e 20 61 64 64 41 72 72 61 79 28 24 76 61 6c 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 tion.addArray($vals).....{......
6a60 20 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 54 79 70 65 73 3b 0a 20 20 20 20 20 20 ...global.$XML_RPC_Types;.......
6a80 20 20 69 66 20 28 24 74 68 69 73 2d 3e 6d 79 74 79 70 65 21 3d 30 29 20 7b 0a 20 20 20 20 20 20 ..if.($this->mytype!=0).{.......
6aa0 20 20 20 20 20 20 65 63 68 6f 20 22 3c 42 3e 58 4d 4c 5f 52 50 43 5f 56 61 6c 75 65 3c 2f 42 3e ......echo."<B>XML_RPC_Value</B>
6ac0 3a 20 61 6c 72 65 61 64 79 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 61 73 20 61 20 5b 22 20 2e 0a :.already.initialized.as.a.["...
6ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6b 69 6e 64 4f 66 28 29 20 ................$this->kindOf().
6b00 2e 20 22 5d 3c 42 52 3e 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 30 3b .."]<BR>";.............return.0;
6b20 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6d 79 74 79 70 65 .........}.........$this->mytype
6b40 3d 24 58 4d 4c 5f 52 50 43 5f 54 79 70 65 73 5b 22 61 72 72 61 79 22 5d 3b 0a 20 20 20 20 20 20 =$XML_RPC_Types["array"];.......
6b60 20 20 24 74 68 69 73 2d 3e 6d 65 5b 22 61 72 72 61 79 22 5d 3d 24 76 61 6c 73 3b 0a 20 20 20 20 ..$this->me["array"]=$vals;.....
6b80 20 20 20 20 72 65 74 75 72 6e 20 31 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f ....return.1;.....}......functio
6ba0 6e 20 61 64 64 53 74 72 75 63 74 28 24 76 61 6c 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 n.addStruct($vals).....{........
6bc0 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 54 79 70 65 73 3b 0a 20 20 20 20 20 20 20 20 .global.$XML_RPC_Types;.........
6be0 69 66 20 28 24 74 68 69 73 2d 3e 6d 79 74 79 70 65 21 3d 30 29 20 7b 0a 20 20 20 20 20 20 20 20 if.($this->mytype!=0).{.........
6c00 20 20 20 20 65 63 68 6f 20 22 3c 42 3e 58 4d 4c 5f 52 50 43 5f 56 61 6c 75 65 3c 2f 42 3e 3a 20 ....echo."<B>XML_RPC_Value</B>:.
6c20 61 6c 72 65 61 64 79 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 61 73 20 61 20 5b 22 20 2e 0a 20 20 already.initialized.as.a.[".....
6c40 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6b 69 6e 64 4f 66 28 29 20 2e 20 22 5d 3c 42 ..........$this->kindOf()..."]<B
6c60 52 3e 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 20 20 20 20 20 R>";.............return.0;......
6c80 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6d 79 74 79 70 65 3d 24 58 4d 4c 5f ...}.........$this->mytype=$XML_
6ca0 52 50 43 5f 54 79 70 65 73 5b 22 73 74 72 75 63 74 22 5d 3b 0a 20 20 20 20 20 20 20 20 24 74 68 RPC_Types["struct"];.........$th
6cc0 69 73 2d 3e 6d 65 5b 22 73 74 72 75 63 74 22 5d 3d 24 76 61 6c 73 3b 0a 20 20 20 20 20 20 20 20 is->me["struct"]=$vals;.........
6ce0 72 65 74 75 72 6e 20 31 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 64 75 return.1;.....}......function.du
6d00 6d 70 28 24 61 72 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 73 65 74 28 24 61 72 29 mp($ar).....{.........reset($ar)
6d20 3b 0a 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 20 6c 69 73 74 28 20 24 6b 65 79 2c 20 24 76 ;.........while.(.list(.$key,.$v
6d40 61 6c 20 29 20 3d 20 65 61 63 68 28 20 24 61 72 20 29 20 29 20 7b 0a 20 20 20 20 20 20 20 20 20 al.).=.each(.$ar.).).{..........
6d60 20 20 20 65 63 68 6f 20 22 24 6b 65 79 20 3d 3e 20 24 76 61 6c 3c 62 72 3e 22 3b 0a 20 20 20 20 ...echo."$key.=>.$val<br>";.....
6d80 20 20 20 20 20 20 20 20 69 66 20 28 24 6b 65 79 20 3d 3d 20 27 61 72 72 61 79 27 29 0a 20 20 20 ........if.($key.==.'array')....
6da0 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 20 6c 69 73 74 28 20 24 6b 65 79 32 .............while.(.list(.$key2
6dc0 2c 20 24 76 61 6c 32 20 29 20 3d 20 65 61 63 68 28 20 24 76 61 6c 20 29 20 29 20 7b 0a 20 20 20 ,.$val2.).=.each(.$val.).).{....
6de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 63 68 6f 20 22 2d 2d 20 24 6b 65 79 32 20 .................echo."--.$key2.
6e00 3d 3e 20 24 76 61 6c 32 3c 62 72 3e 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d =>.$val2<br>";.................}
6e20 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6b .........}.....}......function.k
6e40 69 6e 64 4f 66 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 73 77 69 74 63 68 28 24 74 68 indOf().....{.........switch($th
6e60 69 73 2d 3e 6d 79 74 79 70 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 is->mytype).{.................ca
6e80 73 65 20 33 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e se.3:.....................return
6ea0 20 22 73 74 72 75 63 74 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 ."struct";.....................b
6ec0 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 32 3a 0a 20 20 reak;.................case.2:...
6ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 61 72 72 61 79 22 ..................return."array"
6f00 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 ;.....................break;....
6f20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 31 3a 0a 20 20 20 20 20 20 20 20 20 20 20 .............case.1:............
6f40 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 73 63 61 6c 61 72 22 3b 0a 20 20 20 20 20 20 .........return."scalar";.......
6f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 ..............break;............
6f80 20 20 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....default:...................
6fa0 20 20 72 65 74 75 72 6e 20 22 75 6e 64 65 66 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 ..return."undef";.........}.....
6fc0 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 65 72 69 61 6c 69 7a 65 64 61 74 61 28 24 74 }......function.serializedata($t
6fe0 79 70 2c 20 24 76 61 6c 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 72 73 3d 22 22 3b 0a yp,.$val).....{.........$rs="";.
7000 20 20 20 20 20 20 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 54 79 70 65 73 2c 20 24 ........global.$XML_RPC_Types,.$
7020 58 4d 4c 5f 52 50 43 5f 42 61 73 65 36 34 2c 20 24 58 4d 4c 5f 52 50 43 5f 53 74 72 69 6e 67 2c XML_RPC_Base64,.$XML_RPC_String,
7040 20 24 58 4d 4c 5f 52 50 43 5f 42 6f 6f 6c 65 61 6e 3b 0a 20 20 20 20 20 20 20 20 73 77 69 74 63 .$XML_RPC_Boolean;.........switc
7060 68 28 24 58 4d 4c 5f 52 50 43 5f 54 79 70 65 73 5b 24 74 79 70 5d 29 20 7b 0a 20 20 20 20 20 20 h($XML_RPC_Types[$typ]).{.......
7080 20 20 20 20 20 20 63 61 73 65 20 33 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f ......case.3:.................//
70a0 20 73 74 72 75 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 73 2e 3d 22 3c 73 .struct.................$rs.="<s
70c0 74 72 75 63 74 3e 5c 6e 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 65 74 truct>\n";.................reset
70e0 28 24 76 61 6c 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 28 6c 69 ($val);.................while(li
7100 73 74 28 24 6b 65 79 32 2c 20 24 76 61 6c 32 29 3d 65 61 63 68 28 24 76 61 6c 29 29 20 7b 0a 20 st($key2,.$val2)=each($val)).{..
7120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 73 2e 3d 22 3c 6d 65 6d 62 65 72 ...................$rs.="<member
7140 3e 3c 6e 61 6d 65 3e 24 7b 6b 65 79 32 7d 3c 2f 6e 61 6d 65 3e 5c 6e 22 3b 0a 20 20 20 20 20 20 ><name>${key2}</name>\n";.......
7160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 73 2e 3d 24 74 68 69 73 2d 3e 73 65 72 69 61 6c ..............$rs.=$this->serial
7180 69 7a 65 76 61 6c 28 24 76 61 6c 32 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 izeval($val2);..................
71a0 20 20 20 24 72 73 2e 3d 22 3c 2f 6d 65 6d 62 65 72 3e 5c 6e 22 3b 0a 20 20 20 20 20 20 20 20 20 ...$rs.="</member>\n";..........
71c0 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 73 2e 3d 22 3c .......}.................$rs.="<
71e0 2f 73 74 72 75 63 74 3e 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b /struct>";.................break
7200 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 32 3a 0a 20 20 20 20 20 20 20 20 20 20 ;.............case.2:...........
7220 20 20 20 20 20 20 2f 2f 20 61 72 72 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 ......//.array.................$
7240 72 73 2e 3d 22 3c 61 72 72 61 79 3e 5c 6e 3c 64 61 74 61 3e 5c 6e 22 3b 0a 20 20 20 20 20 20 20 rs.="<array>\n<data>\n";........
7260 20 20 20 20 20 20 20 20 20 66 6f 72 28 24 69 3d 30 3b 20 24 69 3c 73 69 7a 65 6f 66 28 24 76 61 .........for($i=0;.$i<sizeof($va
7280 6c 29 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 l);.$i++).{.....................
72a0 24 72 73 2e 3d 24 74 68 69 73 2d 3e 73 65 72 69 61 6c 69 7a 65 76 61 6c 28 24 76 61 6c 5b 24 69 $rs.=$this->serializeval($val[$i
72c0 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 ]);.................}...........
72e0 20 20 20 20 20 20 24 72 73 2e 3d 22 3c 2f 64 61 74 61 3e 5c 6e 3c 2f 61 72 72 61 79 3e 22 3b 0a ......$rs.="</data>\n</array>";.
7300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 ................break;..........
7320 20 20 20 63 61 73 65 20 31 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 77 69 74 63 ...case.1:.................switc
7340 68 20 28 24 74 79 70 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 h.($typ).{.....................c
7360 61 73 65 20 24 58 4d 4c 5f 52 50 43 5f 42 61 73 65 36 34 3a 0a 20 20 20 20 20 20 20 20 20 20 20 ase.$XML_RPC_Base64:............
7380 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 73 2e 3d 22 3c 24 7b 74 79 70 7d 3e 22 20 2e 20 62 .............$rs.="<${typ}>"...b
73a0 61 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 76 61 6c 29 20 2e 20 22 3c 2f 24 7b 74 79 70 7d 3e 22 ase64_encode($val)..."</${typ}>"
73c0 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b ;.........................break;
73e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 24 58 4d 4c 5f 52 .....................case.$XML_R
7400 50 43 5f 42 6f 6f 6c 65 61 6e 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 PC_Boolean:.....................
7420 20 20 20 20 24 72 73 2e 3d 22 3c 24 7b 74 79 70 7d 3e 22 20 2e 20 28 24 76 61 6c 20 3f 20 22 31 ....$rs.="<${typ}>"...($val.?."1
7440 22 20 3a 20 22 30 22 29 20 2e 20 22 3c 2f 24 7b 74 79 70 7d 3e 22 3b 0a 20 20 20 20 20 20 20 20 ".:."0")..."</${typ}>";.........
7460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 ................break;..........
7480 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 24 58 4d 4c 5f 52 50 43 5f 53 74 72 69 6e 67 3a ...........case.$XML_RPC_String:
74a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 73 2e 3d 22 3c .........................$rs.="<
74c0 24 7b 74 79 70 7d 3e 22 20 2e 20 68 74 6d 6c 73 70 65 63 69 61 6c 63 68 61 72 73 28 24 76 61 6c ${typ}>"...htmlspecialchars($val
74e0 29 2e 20 22 3c 2f 24 7b 74 79 70 7d 3e 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).."</${typ}>";.................
7500 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........break;..................
7520 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...default:.....................
7540 20 20 20 20 24 72 73 2e 3d 22 3c 24 7b 74 79 70 7d 3e 24 7b 76 61 6c 7d 3c 2f 24 7b 74 79 70 7d ....$rs.="<${typ}>${val}</${typ}
7560 3e 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 >";.................}...........
7580 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 ......break;.............default
75a0 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 :.................break;........
75c0 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 .}.........return.$rs;.....}....
75e0 20 20 66 75 6e 63 74 69 6f 6e 20 73 65 72 69 61 6c 69 7a 65 28 29 0a 20 20 20 20 7b 0a 20 20 20 ..function.serialize().....{....
7600 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 65 72 69 61 6c 69 7a 65 76 61 6c 28 .....return.$this->serializeval(
7620 24 74 68 69 73 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 65 72 69 $this);.....}......function.seri
7640 61 6c 69 7a 65 76 61 6c 28 24 6f 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 67 6c 6f 62 61 alizeval($o).....{.........globa
7660 6c 20 24 58 4d 4c 5f 52 50 43 5f 54 79 70 65 73 3b 0a 20 20 20 20 20 20 20 20 24 72 73 3d 22 22 l.$XML_RPC_Types;.........$rs=""
7680 3b 0a 20 20 20 20 20 20 20 20 24 61 72 3d 24 6f 2d 3e 6d 65 3b 0a 20 20 20 20 20 20 20 20 72 65 ;.........$ar=$o->me;.........re
76a0 73 65 74 28 24 61 72 29 3b 0a 20 20 20 20 20 20 20 20 6c 69 73 74 28 24 74 79 70 2c 20 24 76 61 set($ar);.........list($typ,.$va
76c0 6c 29 20 3d 20 65 61 63 68 28 24 61 72 29 3b 0a 20 20 20 20 20 20 20 20 24 72 73 2e 3d 22 3c 76 l).=.each($ar);.........$rs.="<v
76e0 61 6c 75 65 3e 22 3b 0a 20 20 20 20 20 20 20 20 24 72 73 2e 3d 24 74 68 69 73 2d 3e 73 65 72 69 alue>";.........$rs.=$this->seri
7700 61 6c 69 7a 65 64 61 74 61 28 24 74 79 70 2c 20 24 76 61 6c 29 3b 0a 20 20 20 20 20 20 20 20 24 alizedata($typ,.$val);.........$
7720 72 73 2e 3d 22 3c 2f 76 61 6c 75 65 3e 5c 6e 22 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e rs.="</value>\n";.........return
7740 20 24 72 73 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 74 72 75 63 74 .$rs;.....}......function.struct
7760 6d 65 6d 28 24 6d 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 6e 76 3d 24 74 68 69 73 2d mem($m).....{.........$nv=$this-
7780 3e 6d 65 5b 22 73 74 72 75 63 74 22 5d 5b 24 6d 5d 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 >me["struct"][$m];.........retur
77a0 6e 20 24 6e 76 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 74 72 75 63 n.$nv;.....}......function.struc
77c0 74 72 65 73 65 74 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 73 65 74 28 24 74 68 treset().....{.........reset($th
77e0 69 73 2d 3e 6d 65 5b 22 73 74 72 75 63 74 22 5d 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 is->me["struct"]);.....}......fu
7800 6e 63 74 69 6f 6e 20 73 74 72 75 63 74 65 61 63 68 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 nction.structeach().....{.......
7820 20 20 72 65 74 75 72 6e 20 65 61 63 68 28 24 74 68 69 73 2d 3e 6d 65 5b 22 73 74 72 75 63 74 22 ..return.each($this->me["struct"
7840 5d 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 76 61 6c 28 29 ]);.....}......function.getval()
7860 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 55 4e 53 54 41 42 4c 45 0a 20 20 20 20 20 20 20 20 67 .{.........//.UNSTABLE.........g
7880 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 42 4f 4f 4c 45 41 4e 2c 20 24 58 4d 4c 5f 52 50 43 lobal.$XML_RPC_BOOLEAN,.$XML_RPC
78a0 5f 42 61 73 65 36 34 3b 0a 0a 20 20 20 20 20 20 20 20 72 65 73 65 74 28 24 74 68 69 73 2d 3e 6d _Base64;..........reset($this->m
78c0 65 29 3b 0a 20 20 20 20 20 20 20 20 6c 69 73 74 28 24 61 2c 24 62 29 3d 65 61 63 68 28 24 74 68 e);.........list($a,$b)=each($th
78e0 69 73 2d 3e 6d 65 29 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 63 6f 6e 74 72 69 62 75 74 65 64 is->me);..........//.contributed
7900 20 62 79 20 49 20 53 6f 66 65 72 2c 20 32 30 30 31 2d 30 33 2d 32 34 0a 20 20 20 20 20 20 20 20 .by.I.Sofer,.2001-03-24.........
7920 2f 2f 20 61 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 6e 65 73 74 65 64 20 61 72 72 61 79 73 //.add.support.for.nested.arrays
7940 20 74 6f 20 73 63 61 6c 61 72 76 61 6c 0a 20 20 20 20 20 20 20 20 2f 2f 20 69 27 76 65 20 63 72 .to.scalarval.........//.i've.cr
7960 65 61 74 65 64 20 61 20 6e 65 77 20 6d 65 74 68 6f 64 20 68 65 72 65 2c 20 73 6f 20 61 73 20 74 eated.a.new.method.here,.so.as.t
7980 6f 0a 20 20 20 20 20 20 20 20 2f 2f 20 70 72 65 73 65 72 76 65 20 62 61 63 6b 20 63 6f 6d 70 61 o.........//.preserve.back.compa
79a0 74 69 62 69 6c 69 74 79 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 tibility..........if.(is_array($
79c0 62 29 29 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 62 b))....{.............foreach.($b
79e0 20 61 73 20 24 69 64 20 3d 3e 20 24 63 6f 6e 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 .as.$id.=>.$cont).{.............
7a00 20 20 20 20 24 62 5b 24 69 64 5d 20 3d 20 24 63 6f 6e 74 2d 3e 73 63 61 6c 61 72 76 61 6c 28 29 ....$b[$id].=.$cont->scalarval()
7a20 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 ;.............}.........}.......
7a40 20 20 20 2f 2f 20 61 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 73 74 72 75 63 74 75 72 65 73 ...//.add.support.for.structures
7a60 20 64 69 72 65 63 74 6c 79 20 65 6e 63 6f 64 69 6e 67 20 70 68 70 20 6f 62 6a 65 63 74 73 0a 20 .directly.encoding.php.objects..
7a80 20 20 20 20 20 20 20 69 66 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 62 29 29 20 20 7b 0a 20 20 20 .......if.(is_object($b))..{....
7aa0 20 20 20 20 20 20 20 20 20 24 74 20 3d 20 67 65 74 5f 6f 62 6a 65 63 74 5f 76 61 72 73 28 24 62 .........$t.=.get_object_vars($b
7ac0 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 74 20 61 73 20 24 69 );.............foreach.($t.as.$i
7ae0 64 20 3d 3e 20 24 63 6f 6e 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 d.=>.$cont).{.................$t
7b00 5b 24 69 64 5d 20 3d 20 24 63 6f 6e 74 2d 3e 73 63 61 6c 61 72 76 61 6c 28 29 3b 0a 20 20 20 20 [$id].=.$cont->scalarval();.....
7b20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 ........}.............foreach.($
7b40 74 20 61 73 20 24 69 64 20 3d 3e 20 24 63 6f 6e 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 t.as.$id.=>.$cont).{............
7b60 20 20 20 20 20 65 76 61 6c 28 27 24 62 2d 3e 27 2e 24 69 64 2e 27 20 3d 20 24 63 6f 6e 74 3b 27 .....eval('$b->'.$id.'.=.$cont;'
7b80 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 );.............}.........}......
7ba0 20 20 20 20 2f 2f 20 65 6e 64 20 63 6f 6e 74 72 69 62 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 ....//.end.contrib.........retur
7bc0 6e 20 24 62 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 63 61 6c 61 72 n.$b;.....}......function.scalar
7be0 76 61 6c 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f val().....{.........global.$XML_
7c00 52 50 43 5f 42 6f 6f 6c 65 61 6e 2c 20 24 58 4d 4c 5f 52 50 43 5f 42 61 73 65 36 34 3b 0a 20 20 RPC_Boolean,.$XML_RPC_Base64;...
7c20 20 20 20 20 20 20 72 65 73 65 74 28 24 74 68 69 73 2d 3e 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 ......reset($this->me);.........
7c40 6c 69 73 74 28 24 61 2c 24 62 29 3d 65 61 63 68 28 24 74 68 69 73 2d 3e 6d 65 29 3b 0a 20 20 20 list($a,$b)=each($this->me);....
7c60 20 20 20 20 20 72 65 74 75 72 6e 20 24 62 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 .....return.$b;.....}......funct
7c80 69 6f 6e 20 73 63 61 6c 61 72 74 79 70 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 67 6c ion.scalartyp().....{.........gl
7ca0 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 49 34 2c 20 24 58 4d 4c 5f 52 50 43 5f 49 6e 74 3b 0a obal.$XML_RPC_I4,.$XML_RPC_Int;.
7cc0 20 20 20 20 20 20 20 20 72 65 73 65 74 28 24 74 68 69 73 2d 3e 6d 65 29 3b 0a 20 20 20 20 20 20 ........reset($this->me);.......
7ce0 20 20 6c 69 73 74 28 24 61 2c 24 62 29 3d 65 61 63 68 28 24 74 68 69 73 2d 3e 6d 65 29 3b 0a 20 ..list($a,$b)=each($this->me);..
7d00 20 20 20 20 20 20 20 69 66 20 28 24 61 3d 3d 24 58 4d 4c 5f 52 50 43 5f 49 34 29 0a 20 20 20 20 .......if.($a==$XML_RPC_I4).....
7d20 20 20 20 20 20 20 20 20 24 61 3d 24 58 4d 4c 5f 52 50 43 5f 49 6e 74 3b 0a 20 20 20 20 20 20 20 ........$a=$XML_RPC_Int;........
7d40 20 72 65 74 75 72 6e 20 24 61 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 .return.$a;.....}......function.
7d60 61 72 72 61 79 6d 65 6d 28 24 6d 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 6e 76 3d 24 arraymem($m).....{.........$nv=$
7d80 74 68 69 73 2d 3e 6d 65 5b 22 61 72 72 61 79 22 5d 5b 24 6d 5d 3b 0a 20 20 20 20 20 20 20 20 72 this->me["array"][$m];.........r
7da0 65 74 75 72 6e 20 24 6e 76 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 61 eturn.$nv;.....}......function.a
7dc0 72 72 61 79 73 69 7a 65 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 73 65 74 28 24 rraysize().....{.........reset($
7de0 74 68 69 73 2d 3e 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 6c 69 73 74 28 24 61 2c 24 62 29 3d 65 this->me);.........list($a,$b)=e
7e00 61 63 68 28 24 74 68 69 73 2d 3e 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 ach($this->me);.........return.s
7e20 69 7a 65 6f 66 28 24 62 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 0a 2f 2a 2a 0a 20 2a 20 64 61 74 65 izeof($b);.....}.}.../**..*.date
7e40 20 68 65 6c 70 65 72 73 0a 20 2a 2f 0a 66 75 6e 63 74 69 6f 6e 20 58 4d 4c 5f 52 50 43 5f 69 73 .helpers..*/.function.XML_RPC_is
7e60 6f 38 36 30 31 5f 65 6e 63 6f 64 65 28 24 74 69 6d 65 74 2c 20 24 75 74 63 3d 30 29 20 7b 0a 20 o8601_encode($timet,.$utc=0).{..
7e80 20 20 20 2f 2f 20 72 65 74 75 72 6e 20 61 6e 20 49 53 4f 38 36 30 31 20 65 6e 63 6f 64 65 64 20 ...//.return.an.ISO8601.encoded.
7ea0 73 74 72 69 6e 67 0a 20 20 20 20 2f 2f 20 72 65 61 6c 6c 79 2c 20 74 69 6d 65 7a 6f 6e 65 73 20 string.....//.really,.timezones.
7ec0 6f 75 67 68 74 20 74 6f 20 62 65 20 73 75 70 70 6f 72 74 65 64 0a 20 20 20 20 2f 2f 20 62 75 74 ought.to.be.supported.....//.but
7ee0 20 74 68 65 20 58 4d 4c 2d 52 50 43 20 73 70 65 63 20 73 61 79 73 3a 0a 20 20 20 20 2f 2f 0a 20 .the.XML-RPC.spec.says:.....//..
7f00 20 20 20 2f 2f 20 22 44 6f 6e 27 74 20 61 73 73 75 6d 65 20 61 20 74 69 6d 65 7a 6f 6e 65 2e 20 ...//."Don't.assume.a.timezone..
7f20 49 74 20 73 68 6f 75 6c 64 20 62 65 20 73 70 65 63 69 66 69 65 64 20 62 79 20 74 68 65 20 73 65 It.should.be.specified.by.the.se
7f40 72 76 65 72 20 69 6e 20 69 74 73 0a 20 20 20 20 2f 2f 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e rver.in.its.....//.documentation
7f60 20 77 68 61 74 20 61 73 73 75 6d 70 74 69 6f 6e 73 20 69 74 20 6d 61 6b 65 73 20 61 62 6f 75 74 .what.assumptions.it.makes.about
7f80 20 74 69 6d 65 7a 6f 6e 65 73 2e 22 0a 20 20 20 20 2f 2f 0a 20 20 20 20 2f 2f 20 74 68 65 73 65 .timezones.".....//.....//.these
7fa0 20 72 6f 75 74 69 6e 65 73 20 61 6c 77 61 79 73 20 61 73 73 75 6d 65 20 6c 6f 63 61 6c 74 69 6d .routines.always.assume.localtim
7fc0 65 20 75 6e 6c 65 73 73 0a 20 20 20 20 2f 2f 20 24 75 74 63 20 69 73 20 73 65 74 20 74 6f 20 31 e.unless.....//.$utc.is.set.to.1
7fe0 2c 20 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 55 54 43 20 69 73 20 61 73 73 75 6d 65 64 0a 20 ,.in.which.case.UTC.is.assumed..
8000 20 20 20 2f 2f 20 61 6e 64 20 61 6e 20 61 64 6a 75 73 74 6d 65 6e 74 20 66 6f 72 20 6c 6f 63 61 ...//.and.an.adjustment.for.loca
8020 6c 65 20 69 73 20 6d 61 64 65 20 77 68 65 6e 20 65 6e 63 6f 64 69 6e 67 0a 20 20 20 20 69 66 20 le.is.made.when.encoding.....if.
8040 28 21 24 75 74 63 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 3d 73 74 72 66 74 69 6d 65 28 22 25 (!$utc).{.........$t=strftime("%
8060 59 25 6d 25 64 54 25 48 3a 25 4d 3a 25 53 22 2c 20 24 74 69 6d 65 74 29 3b 0a 20 20 20 20 7d 20 Y%m%dT%H:%M:%S",.$timet);.....}.
8080 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 else.{.........if.(function_exis
80a0 74 73 28 22 67 6d 73 74 72 66 74 69 6d 65 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f ts("gmstrftime")).............//
80c0 20 67 6d 73 74 72 66 74 69 6d 65 20 64 6f 65 73 6e 27 74 20 65 78 69 73 74 20 69 6e 20 73 6f 6d .gmstrftime.doesn't.exist.in.som
80e0 65 20 76 65 72 73 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6f 66 20 50 48 50 e.versions.............//.of.PHP
8100 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 3d 67 6d 73 74 72 66 74 69 6d 65 28 22 25 59 25 6d .............$t=gmstrftime("%Y%m
8120 25 64 54 25 48 3a 25 4d 3a 25 53 22 2c 20 24 74 69 6d 65 74 29 3b 0a 20 20 20 20 20 20 20 20 65 %dT%H:%M:%S",.$timet);.........e
8140 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 3d 73 74 72 66 74 69 6d 65 28 22 25 lse.{.............$t=strftime("%
8160 59 25 6d 25 64 54 25 48 3a 25 4d 3a 25 53 22 2c 20 24 74 69 6d 65 74 2d 64 61 74 65 28 22 5a 22 Y%m%dT%H:%M:%S",.$timet-date("Z"
8180 29 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 ));.........}.....}......return.
81a0 24 74 3b 0a 7d 0a 0a 66 75 6e 63 74 69 6f 6e 20 58 4d 4c 5f 52 50 43 5f 69 73 6f 38 36 30 31 5f $t;.}..function.XML_RPC_iso8601_
81c0 64 65 63 6f 64 65 28 24 69 64 61 74 65 2c 20 24 75 74 63 3d 30 29 20 7b 0a 20 20 20 20 2f 2f 20 decode($idate,.$utc=0).{.....//.
81e0 72 65 74 75 72 6e 20 61 20 74 69 6d 65 74 20 69 6e 20 74 68 65 20 6c 6f 63 61 6c 74 69 6d 65 2c return.a.timet.in.the.localtime,
8200 20 6f 72 20 55 54 43 0a 20 20 20 20 24 74 3d 30 3b 0a 20 20 20 20 69 66 20 28 65 72 65 67 28 22 .or.UTC.....$t=0;.....if.(ereg("
8220 28 5b 30 2d 39 5d 7b 34 7d 29 28 5b 30 2d 39 5d 7b 32 7d 29 28 5b 30 2d 39 5d 7b 32 7d 29 54 28 ([0-9]{4})([0-9]{2})([0-9]{2})T(
8240 5b 30 2d 39 5d 7b 32 7d 29 3a 28 5b 30 2d 39 5d 7b 32 7d 29 3a 28 5b 30 2d 39 5d 7b 32 7d 29 22 [0-9]{2}):([0-9]{2}):([0-9]{2})"
8260 2c 24 69 64 61 74 65 2c 20 24 72 65 67 73 29 29 20 7b 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 ,$idate,.$regs)).{..........if.(
8280 24 75 74 63 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 3d 67 6d 6d 6b 74 69 6d 65 28 $utc).{.............$t=gmmktime(
82a0 24 72 65 67 73 5b 34 5d 2c 20 24 72 65 67 73 5b 35 5d 2c 20 24 72 65 67 73 5b 36 5d 2c 20 24 72 $regs[4],.$regs[5],.$regs[6],.$r
82c0 65 67 73 5b 32 5d 2c 20 24 72 65 67 73 5b 33 5d 2c 20 24 72 65 67 73 5b 31 5d 29 3b 0a 20 20 20 egs[2],.$regs[3],.$regs[1]);....
82e0 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 3d 6d 6b 74 .....}.else.{.............$t=mkt
8300 69 6d 65 28 24 72 65 67 73 5b 34 5d 2c 20 24 72 65 67 73 5b 35 5d 2c 20 24 72 65 67 73 5b 36 5d ime($regs[4],.$regs[5],.$regs[6]
8320 2c 20 24 72 65 67 73 5b 32 5d 2c 20 24 72 65 67 73 5b 33 5d 2c 20 24 72 65 67 73 5b 31 5d 29 3b ,.$regs[2],.$regs[3],.$regs[1]);
8340 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 3b .........}.....}......return.$t;
8360 0a 7d 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a .}../***************************
8380 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ********************************
83a0 2a 2a 2a 2a 2a 2a 2a 0a 2a 20 58 4d 4c 5f 52 50 43 5f 64 65 63 6f 64 65 20 74 61 6b 65 73 20 61 *******.*.XML_RPC_decode.takes.a
83c0 20 6d 65 73 73 61 67 65 20 69 6e 20 50 48 50 20 58 4d 4c 5f 52 50 43 20 6f 62 6a 65 63 74 20 66 .message.in.PHP.XML_RPC.object.f
83e0 6f 72 6d 61 74 20 61 6e 64 20 2a 0a 2a 20 74 72 61 6e 6c 61 74 65 73 20 69 74 20 69 6e 74 6f 20 ormat.and.*.*.tranlates.it.into.
8400 6e 61 74 69 76 65 20 50 48 50 20 74 79 70 65 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 native.PHP.types................
8420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............*.*...............
8440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 61 75 74 68 6f 72 3a 20 44 61 ..................*.*.author:.Da
8480 6e 20 4c 69 62 62 79 20 28 64 61 6e 40 6c 69 62 62 79 2e 63 6f 6d 29 20 20 20 20 20 20 20 20 20 n.Libby.(dan@libby.com).........
84a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 2a 2a 2a 2a 2a 2a 2a ......................*.********
84c0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ********************************
84e0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 66 75 6e 63 **************************/.func
8500 74 69 6f 6e 20 58 4d 4c 5f 52 50 43 5f 64 65 63 6f 64 65 28 24 58 4d 4c 5f 52 50 43 5f 76 61 6c tion.XML_RPC_decode($XML_RPC_val
8520 29 20 7b 0a 20 20 20 20 24 6b 69 6e 64 20 3d 20 24 58 4d 4c 5f 52 50 43 5f 76 61 6c 2d 3e 6b 69 ).{.....$kind.=.$XML_RPC_val->ki
8540 6e 64 4f 66 28 29 3b 0a 0a 20 20 20 69 66 28 24 6b 69 6e 64 20 3d 3d 20 22 73 63 61 6c 61 72 22 ndOf();.....if($kind.==."scalar"
8560 29 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 58 4d 4c 5f 52 50 43 5f 76 61 6c 2d 3e 73 ).{.......return.$XML_RPC_val->s
8580 63 61 6c 61 72 76 61 6c 28 29 3b 0a 20 20 20 7d 0a 20 20 20 65 6c 73 65 20 69 66 28 24 6b 69 6e calarval();....}....else.if($kin
85a0 64 20 3d 3d 20 22 61 72 72 61 79 22 29 20 7b 0a 20 20 20 20 20 20 24 73 69 7a 65 20 3d 20 24 58 d.==."array").{.......$size.=.$X
85c0 4d 4c 5f 52 50 43 5f 76 61 6c 2d 3e 61 72 72 61 79 73 69 7a 65 28 29 3b 0a 20 20 20 20 20 20 24 ML_RPC_val->arraysize();.......$
85e0 61 72 72 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 20 20 66 6f 72 28 24 69 20 3d 20 30 arr.=.array();........for($i.=.0
8600 3b 20 24 69 20 3c 20 24 73 69 7a 65 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 24 ;.$i.<.$size;.$i++).{..........$
8620 61 72 72 5b 5d 3d 58 4d 4c 5f 52 50 43 5f 64 65 63 6f 64 65 28 24 58 4d 4c 5f 52 50 43 5f 76 61 arr[]=XML_RPC_decode($XML_RPC_va
8640 6c 2d 3e 61 72 72 61 79 6d 65 6d 28 24 69 29 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 l->arraymem($i));.......}.......
8660 72 65 74 75 72 6e 20 24 61 72 72 3b 0a 20 20 20 7d 0a 20 20 20 65 6c 73 65 20 69 66 28 24 6b 69 return.$arr;....}....else.if($ki
8680 6e 64 20 3d 3d 20 22 73 74 72 75 63 74 22 29 20 7b 0a 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 nd.==."struct").{.......$XML_RPC
86a0 5f 76 61 6c 2d 3e 73 74 72 75 63 74 72 65 73 65 74 28 29 3b 0a 20 20 20 20 20 20 24 61 72 72 20 _val->structreset();.......$arr.
86c0 3d 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 20 20 77 68 69 6c 65 28 6c 69 73 74 28 24 6b 65 =.array();........while(list($ke
86e0 79 2c 24 76 61 6c 75 65 29 3d 24 58 4d 4c 5f 52 50 43 5f 76 61 6c 2d 3e 73 74 72 75 63 74 65 61 y,$value)=$XML_RPC_val->structea
8700 63 68 28 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 24 61 72 72 5b 24 6b 65 79 5d 20 3d 20 58 4d ch()).{..........$arr[$key].=.XM
8720 4c 5f 52 50 43 5f 64 65 63 6f 64 65 28 24 76 61 6c 75 65 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 L_RPC_decode($value);.......}...
8740 20 20 20 20 72 65 74 75 72 6e 20 24 61 72 72 3b 0a 20 20 20 7d 0a 7d 0a 0a 2f 2a 2a 2a 2a 2a 2a ....return.$arr;....}.}../******
8760 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ********************************
8780 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 2a 20 58 4d ***************************.*.XM
87a0 4c 5f 52 50 43 5f 65 6e 63 6f 64 65 20 74 61 6b 65 73 20 6e 61 74 69 76 65 20 70 68 70 20 74 79 L_RPC_encode.takes.native.php.ty
87c0 70 65 73 20 61 6e 64 20 65 6e 63 6f 64 65 73 20 74 68 65 6d 20 69 6e 74 6f 20 20 20 20 2a 0a 2a pes.and.encodes.them.into....*.*
87e0 20 58 4d 4c 5f 52 50 43 20 50 48 50 20 6f 62 6a 65 63 74 20 66 6f 72 6d 61 74 2e 20 20 20 20 20 .XML_RPC.PHP.object.format......
8800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8820 2a 0a 2a 20 42 55 47 3a 20 41 6c 6c 20 73 65 71 75 65 6e 74 69 61 6c 20 61 72 72 61 79 73 20 61 *.*.BUG:.All.sequential.arrays.a
8840 72 65 20 74 75 72 6e 65 64 20 69 6e 74 6f 20 73 74 72 75 63 74 73 2e 20 20 49 20 64 6f 6e 27 74 re.turned.into.structs...I.don't
8860 20 20 20 2a 0a 2a 20 6b 6e 6f 77 20 6f 66 20 61 20 67 6f 6f 64 20 77 61 79 20 74 6f 20 64 65 74 ...*.*.know.of.a.good.way.to.det
8880 65 72 6d 69 6e 65 20 69 66 20 61 6e 20 61 72 72 61 79 20 69 73 20 73 65 71 75 65 6e 74 69 61 6c ermine.if.an.array.is.sequential
88a0 20 20 20 20 20 20 2a 0a 2a 20 6f 6e 6c 79 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......*.*.only..................
88c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
88e0 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........*.*....................
8900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8920 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 66 65 61 74 75 72 65 20 63 72 65 65 70 20 2d 2d ............*.*.feature.creep.--
8940 20 63 6f 75 6c 64 20 73 75 70 70 6f 72 74 20 6d 6f 72 65 20 74 79 70 65 73 20 76 69 61 20 6f 70 .could.support.more.types.via.op
8960 74 69 6f 6e 61 6c 20 74 79 70 65 20 20 20 20 2a 0a 2a 20 61 72 67 75 6d 65 6e 74 2e 20 20 20 20 tional.type....*.*.argument.....
8980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
89a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20 ..................*.*...........
89c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
89e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 61 75 74 68 6f 72 3a .....................*.*.author:
8a00 20 44 61 6e 20 4c 69 62 62 79 20 28 64 61 6e 40 6c 69 62 62 79 2e 63 6f 6d 29 20 20 20 20 20 20 .Dan.Libby.(dan@libby.com)......
8a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 2a 2a 2a 2a 2a ........................*.******
8a40 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ********************************
8a60 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 66 75 6e ***************************/.fun
8a80 63 74 69 6f 6e 20 58 4d 4c 5f 52 50 43 5f 65 6e 63 6f 64 65 28 24 70 68 70 5f 76 61 6c 29 20 7b ction.XML_RPC_encode($php_val).{
8aa0 0a 20 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 42 6f 6f 6c 65 61 6e 3b 0a 20 20 20 ....global.$XML_RPC_Boolean;....
8ac0 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 49 6e 74 3b 0a 20 20 20 67 6c 6f 62 61 6c 20 24 global.$XML_RPC_Int;....global.$
8ae0 58 4d 4c 5f 52 50 43 5f 44 6f 75 62 6c 65 3b 0a 20 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 XML_RPC_Double;....global.$XML_R
8b00 50 43 5f 53 74 72 69 6e 67 3b 0a 20 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 41 72 PC_String;....global.$XML_RPC_Ar
8b20 72 61 79 3b 0a 20 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 53 74 72 75 63 74 3b 0a ray;....global.$XML_RPC_Struct;.
8b40 0a 20 20 20 24 74 79 70 65 20 3d 20 67 65 74 74 79 70 65 28 24 70 68 70 5f 76 61 6c 29 3b 0a 20 ....$type.=.gettype($php_val);..
8b60 20 20 24 58 4d 4c 5f 52 50 43 5f 76 61 6c 20 3d 20 6e 65 77 20 58 4d 4c 5f 52 50 43 5f 76 61 6c ..$XML_RPC_val.=.new.XML_RPC_val
8b80 75 65 3b 0a 0a 20 20 20 73 77 69 74 63 68 28 24 74 79 70 65 29 20 7b 0a 20 20 20 20 20 20 63 61 ue;.....switch($type).{.......ca
8ba0 73 65 20 22 61 72 72 61 79 22 3a 0a 20 20 20 20 20 20 63 61 73 65 20 22 6f 62 6a 65 63 74 22 3a se."array":.......case."object":
8bc0 0a 20 20 20 20 20 20 20 20 20 24 61 72 72 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 20 20 ..........$arr.=.array();.......
8be0 20 20 20 77 68 69 6c 65 20 28 6c 69 73 74 28 24 6b 2c 24 76 29 20 3d 20 65 61 63 68 28 24 70 68 ...while.(list($k,$v).=.each($ph
8c00 70 5f 76 61 6c 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 61 72 72 5b 24 6b 5d 20 3d p_val)).{.............$arr[$k].=
8c20 20 58 4d 4c 5f 52 50 43 5f 65 6e 63 6f 64 65 28 24 76 29 3b 0a 20 20 20 20 20 20 20 20 20 7d 0a .XML_RPC_encode($v);..........}.
8c40 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 76 61 6c 2d 3e 61 64 64 53 74 72 75 63 74 .........$XML_RPC_val->addStruct
8c60 28 24 61 72 72 29 3b 0a 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 63 61 ($arr);..........break;.......ca
8c80 73 65 20 22 69 6e 74 65 67 65 72 22 3a 0a 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f se."integer":..........$XML_RPC_
8ca0 76 61 6c 2d 3e 61 64 64 53 63 61 6c 61 72 28 24 70 68 70 5f 76 61 6c 2c 20 24 58 4d 4c 5f 52 50 val->addScalar($php_val,.$XML_RP
8cc0 43 5f 49 6e 74 29 3b 0a 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 63 61 C_Int);..........break;.......ca
8ce0 73 65 20 22 64 6f 75 62 6c 65 22 3a 0a 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 76 se."double":..........$XML_RPC_v
8d00 61 6c 2d 3e 61 64 64 53 63 61 6c 61 72 28 24 70 68 70 5f 76 61 6c 2c 20 24 58 4d 4c 5f 52 50 43 al->addScalar($php_val,.$XML_RPC
8d20 5f 44 6f 75 62 6c 65 29 3b 0a 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 _Double);..........break;.......
8d40 63 61 73 65 20 22 73 74 72 69 6e 67 22 3a 0a 20 20 20 20 20 20 63 61 73 65 20 22 4e 55 4c 4c 22 case."string":.......case."NULL"
8d60 3a 0a 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 76 61 6c 2d 3e 61 64 64 53 63 61 6c :..........$XML_RPC_val->addScal
8d80 61 72 28 24 70 68 70 5f 76 61 6c 2c 20 24 58 4d 4c 5f 52 50 43 5f 53 74 72 69 6e 67 29 3b 0a 20 ar($php_val,.$XML_RPC_String);..
8da0 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 2f 2f 20 3c 47 5f 47 69 75 6e 74 61 5f 32 30 30 31 ........break;.//.<G_Giunta_2001
8dc0 2d 30 32 2d 32 39 3e 0a 2f 2f 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 65 6e 63 6f 64 -02-29>.//.Add.support.for.encod
8de0 69 6e 67 2f 64 65 63 6f 64 69 6e 67 20 6f 66 20 62 6f 6f 6c 65 61 6e 73 2c 20 73 69 6e 63 65 20 ing/decoding.of.booleans,.since.
8e00 74 68 65 79 20 61 72 65 20 73 75 70 70 6f 72 74 65 64 20 69 6e 20 50 48 50 0a 20 20 20 20 20 20 they.are.supported.in.PHP.......
8e20 63 61 73 65 20 22 62 6f 6f 6c 65 61 6e 22 3a 0a 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 case."boolean":..........$XML_RP
8e40 43 5f 76 61 6c 2d 3e 61 64 64 53 63 61 6c 61 72 28 24 70 68 70 5f 76 61 6c 2c 20 24 58 4d 4c 5f C_val->addScalar($php_val,.$XML_
8e60 52 50 43 5f 42 6f 6f 6c 65 61 6e 29 3b 0a 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 2f 2f RPC_Boolean);..........break;.//
8e80 20 3c 2f 47 5f 47 69 75 6e 74 61 5f 32 30 30 31 2d 30 32 2d 32 39 3e 0a 20 20 20 20 20 20 63 61 .</G_Giunta_2001-02-29>.......ca
8ea0 73 65 20 22 75 6e 6b 6e 6f 77 6e 20 74 79 70 65 22 3a 0a 20 20 20 20 20 20 64 65 66 61 75 6c 74 se."unknown.type":.......default
8ec0 3a 0a 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 76 61 6c 20 3d 20 66 61 6c 73 65 3b :..........$XML_RPC_val.=.false;
8ee0 0a 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 7d 0a 20 20 20 72 65 74 75 72 6e 20 ..........break;....}....return.
8f00 24 58 4d 4c 5f 52 50 43 5f 76 61 6c 3b 0a 7d 0a 0a 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 $XML_RPC_val;.}..?>.............
8f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9000 58 4d 4c 5f 52 50 43 2d 31 2e 30 2e 34 2f 53 65 72 76 65 72 2e 70 68 70 00 00 00 00 00 00 00 00 XML_RPC-1.0.4/Server.php........
9020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9060 00 00 00 00 31 30 30 36 34 34 20 00 20 20 32 30 31 30 20 00 20 20 20 37 36 34 20 00 20 20 20 20 ....100644....2010.....764......
9080 20 20 32 36 36 34 33 20 20 37 34 34 33 31 31 36 31 34 33 20 20 31 30 30 35 31 20 00 00 00 00 00 ..26643..7443116143..10051......
90a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9200 3c 3f 70 68 70 0a 2f 2f 20 62 79 20 45 64 64 20 44 75 6d 62 69 6c 6c 20 28 43 29 20 31 39 39 39 <?php.//.by.Edd.Dumbill.(C).1999
9220 2c 32 30 30 30 0a 2f 2f 20 3c 65 64 64 40 75 73 65 66 75 6c 69 6e 63 2e 63 6f 6d 3e 0a 2f 2f 20 ,2000.//.<edd@usefulinc.com>.//.
9240 24 49 64 3a 20 53 65 72 76 65 72 2e 70 68 70 2c 76 20 31 2e 32 20 32 30 30 32 2f 30 32 2f 32 38 $Id:.Server.php,v.1.2.2002/02/28
9260 20 31 30 3a 35 39 3a 33 30 20 73 73 62 20 45 78 70 20 24 0a 0a 2f 2f 20 4c 69 63 65 6e 73 65 20 .10:59:30.ssb.Exp.$..//.License.
9280 69 73 20 67 72 61 6e 74 65 64 20 74 6f 20 75 73 65 20 6f 72 20 6d 6f 64 69 66 79 20 74 68 69 73 is.granted.to.use.or.modify.this
92a0 20 73 6f 66 74 77 61 72 65 20 28 22 58 4d 4c 2d 52 50 43 20 66 6f 72 20 50 48 50 22 29 0a 2f 2f .software.("XML-RPC.for.PHP").//
92c0 20 66 6f 72 20 63 6f 6d 6d 65 72 63 69 61 6c 20 6f 72 20 6e 6f 6e 2d 63 6f 6d 6d 65 72 63 69 61 .for.commercial.or.non-commercia
92e0 6c 20 75 73 65 20 70 72 6f 76 69 64 65 64 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 6f 66 20 l.use.provided.the.copyright.of.
9300 74 68 65 20 61 75 74 68 6f 72 0a 2f 2f 20 69 73 20 70 72 65 73 65 72 76 65 64 20 69 6e 20 61 6e the.author.//.is.preserved.in.an
9320 79 20 64 69 73 74 72 69 62 75 74 65 64 20 6f 72 20 64 65 72 69 76 61 74 69 76 65 20 77 6f 72 6b y.distributed.or.derivative.work
9340 2e 0a 0a 2f 2f 20 54 48 49 53 20 53 4f 46 54 57 41 52 45 20 49 53 20 50 52 4f 56 49 44 45 44 20 ...//.THIS.SOFTWARE.IS.PROVIDED.
9360 42 59 20 54 48 45 20 41 55 54 48 4f 52 20 60 60 41 53 20 49 53 27 27 20 41 4e 44 20 41 4e 59 20 BY.THE.AUTHOR.``AS.IS''.AND.ANY.
9380 45 58 50 52 45 53 53 45 44 20 4f 52 0a 2f 2f 20 49 4d 50 4c 49 45 44 20 57 41 52 52 41 4e 54 49 EXPRESSED.OR.//.IMPLIED.WARRANTI
93a0 45 53 2c 20 49 4e 43 4c 55 44 49 4e 47 2c 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 ES,.INCLUDING,.BUT.NOT.LIMITED.T
93c0 4f 2c 20 54 48 45 20 49 4d 50 4c 49 45 44 20 57 41 52 52 41 4e 54 49 45 53 0a 2f 2f 20 4f 46 20 O,.THE.IMPLIED.WARRANTIES.//.OF.
93e0 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 41 4e 44 20 46 49 54 4e 45 53 53 20 46 4f 52 20 MERCHANTABILITY.AND.FITNESS.FOR.
9400 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 20 41 52 45 20 44 49 53 43 4c 41 49 A.PARTICULAR.PURPOSE.ARE.DISCLAI
9420 4d 45 44 2e 0a 2f 2f 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 53 48 41 4c 4c 20 54 48 45 20 41 55 MED..//.IN.NO.EVENT.SHALL.THE.AU
9440 54 48 4f 52 20 42 45 20 4c 49 41 42 4c 45 20 46 4f 52 20 41 4e 59 20 44 49 52 45 43 54 2c 20 49 THOR.BE.LIABLE.FOR.ANY.DIRECT,.I
9460 4e 44 49 52 45 43 54 2c 0a 2f 2f 20 49 4e 43 49 44 45 4e 54 41 4c 2c 20 53 50 45 43 49 41 4c 2c NDIRECT,.//.INCIDENTAL,.SPECIAL,
9480 20 45 58 45 4d 50 4c 41 52 59 2c 20 4f 52 20 43 4f 4e 53 45 51 55 45 4e 54 49 41 4c 20 44 41 4d .EXEMPLARY,.OR.CONSEQUENTIAL.DAM
94a0 41 47 45 53 20 28 49 4e 43 4c 55 44 49 4e 47 2c 20 42 55 54 0a 2f 2f 20 4e 4f 54 20 4c 49 4d 49 AGES.(INCLUDING,.BUT.//.NOT.LIMI
94c0 54 45 44 20 54 4f 2c 20 50 52 4f 43 55 52 45 4d 45 4e 54 20 4f 46 20 53 55 42 53 54 49 54 55 54 TED.TO,.PROCUREMENT.OF.SUBSTITUT
94e0 45 20 47 4f 4f 44 53 20 4f 52 20 53 45 52 56 49 43 45 53 3b 20 4c 4f 53 53 20 4f 46 20 55 53 45 E.GOODS.OR.SERVICES;.LOSS.OF.USE
9500 2c 20 0a 2f 2f 20 44 41 54 41 2c 20 4f 52 20 50 52 4f 46 49 54 53 3b 20 4f 52 20 42 55 53 49 4e ,..//.DATA,.OR.PROFITS;.OR.BUSIN
9520 45 53 53 20 49 4e 54 45 52 52 55 50 54 49 4f 4e 29 20 48 4f 57 45 56 45 52 20 43 41 55 53 45 44 ESS.INTERRUPTION).HOWEVER.CAUSED
9540 20 41 4e 44 20 4f 4e 20 41 4e 59 0a 2f 2f 20 54 48 45 4f 52 59 20 4f 46 20 4c 49 41 42 49 4c 49 .AND.ON.ANY.//.THEORY.OF.LIABILI
9560 54 59 2c 20 57 48 45 54 48 45 52 20 49 4e 20 43 4f 4e 54 52 41 43 54 2c 20 53 54 52 49 43 54 20 TY,.WHETHER.IN.CONTRACT,.STRICT.
9580 4c 49 41 42 49 4c 49 54 59 2c 20 4f 52 20 54 4f 52 54 0a 2f 2f 20 28 49 4e 43 4c 55 44 49 4e 47 LIABILITY,.OR.TORT.//.(INCLUDING
95a0 20 4e 45 47 4c 49 47 45 4e 43 45 20 4f 52 20 4f 54 48 45 52 57 49 53 45 29 20 41 52 49 53 49 4e .NEGLIGENCE.OR.OTHERWISE).ARISIN
95c0 47 20 49 4e 20 41 4e 59 20 57 41 59 20 4f 55 54 20 4f 46 20 54 48 45 20 55 53 45 20 4f 46 0a 2f G.IN.ANY.WAY.OUT.OF.THE.USE.OF./
95e0 2f 20 54 48 49 53 20 53 4f 46 54 57 41 52 45 2c 20 45 56 45 4e 20 49 46 20 41 44 56 49 53 45 44 /.THIS.SOFTWARE,.EVEN.IF.ADVISED
9600 20 4f 46 20 54 48 45 20 50 4f 53 53 49 42 49 4c 49 54 59 20 4f 46 20 53 55 43 48 20 44 41 4d 41 .OF.THE.POSSIBILITY.OF.SUCH.DAMA
9620 47 45 2e 0a 0a 2f 2f 20 41 64 61 70 74 65 64 20 74 6f 20 50 45 41 52 20 73 74 61 6e 64 61 72 64 GE...//.Adapted.to.PEAR.standard
9640 73 20 62 79 20 53 74 69 67 20 53 e6 74 68 65 72 20 42 61 6b 6b 65 6e 20 3c 73 74 69 67 40 70 68 s.by.Stig.S.ther.Bakken.<stig@ph
9660 70 2e 6e 65 74 3e 0a 0a 2f 2f 20 58 4d 4c 20 52 50 43 20 53 65 72 76 65 72 20 63 6c 61 73 73 0a p.net>..//.XML.RPC.Server.class.
9680 2f 2f 20 72 65 71 75 69 72 65 73 3a 20 78 6d 6c 72 70 63 2e 69 6e 63 0a 0a 72 65 71 75 69 72 65 //.requires:.xmlrpc.inc..require
96a0 5f 6f 6e 63 65 20 22 58 4d 4c 2f 52 50 43 2e 70 68 70 22 3b 0a 0a 2f 2f 20 6c 69 73 74 4d 65 74 _once."XML/RPC.php";..//.listMet
96c0 68 6f 64 73 3a 20 65 69 74 68 65 72 20 61 20 73 74 72 69 6e 67 2c 20 6f 72 20 6e 6f 74 68 69 6e hods:.either.a.string,.or.nothin
96e0 67 0a 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 5f 6c 69 73 74 4d g.$GLOBALS['XML_RPC_Server_listM
9700 65 74 68 6f 64 73 5f 73 69 67 27 5d 3d 0a 20 20 20 20 61 72 72 61 79 28 61 72 72 61 79 28 24 47 ethods_sig']=.....array(array($G
9720 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 41 72 72 61 79 27 5d 2c 20 24 47 4c 4f 42 41 4c LOBALS['XML_RPC_Array'],.$GLOBAL
9740 53 5b 27 58 4d 4c 5f 52 50 43 5f 53 74 72 69 6e 67 27 5d 29 2c 20 0a 20 20 20 20 20 20 20 20 20 S['XML_RPC_String']),...........
9760 20 61 72 72 61 79 28 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 41 72 72 61 79 27 5d .array($GLOBALS['XML_RPC_Array']
9780 29 29 3b 0a 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 5f 6c 69 73 ));.$GLOBALS['XML_RPC_Server_lis
97a0 74 4d 65 74 68 6f 64 73 5f 64 6f 63 27 5d 3d 0a 20 20 20 20 27 54 68 69 73 20 6d 65 74 68 6f 64 tMethods_doc']=.....'This.method
97c0 20 6c 69 73 74 73 20 61 6c 6c 20 74 68 65 20 6d 65 74 68 6f 64 73 20 74 68 61 74 20 74 68 65 20 .lists.all.the.methods.that.the.
97e0 58 4d 4c 2d 52 50 43 20 73 65 72 76 65 72 20 6b 6e 6f 77 73 20 68 6f 77 20 74 6f 20 64 69 73 70 XML-RPC.server.knows.how.to.disp
9800 61 74 63 68 27 3b 0a 0a 66 75 6e 63 74 69 6f 6e 20 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 5f atch';..function.XML_RPC_Server_
9820 6c 69 73 74 4d 65 74 68 6f 64 73 28 24 73 65 72 76 65 72 2c 20 24 6d 29 0a 7b 0a 20 20 20 20 67 listMethods($server,.$m).{.....g
9840 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 65 72 72 2c 20 24 58 4d 4c 5f 52 50 43 5f 73 74 72 lobal.$XML_RPC_err,.$XML_RPC_str
9860 2c 20 24 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 5f 64 6d 61 70 3b 0a 20 20 20 20 24 76 3d 6e ,.$XML_RPC_Server_dmap;.....$v=n
9880 65 77 20 58 4d 4c 5f 52 50 43 5f 56 61 6c 75 65 28 29 3b 0a 20 20 20 20 24 64 6d 61 70 3d 24 73 ew.XML_RPC_Value();.....$dmap=$s
98a0 65 72 76 65 72 2d 3e 64 6d 61 70 3b 0a 20 20 20 20 24 6f 75 74 41 72 3d 61 72 72 61 79 28 29 3b erver->dmap;.....$outAr=array();
98c0 0a 20 20 20 20 66 6f 72 28 72 65 73 65 74 28 24 64 6d 61 70 29 3b 20 6c 69 73 74 28 24 6b 65 79 .....for(reset($dmap);.list($key
98e0 2c 20 24 76 61 6c 29 3d 65 61 63 68 28 24 64 6d 61 70 29 3b 20 29 20 7b 0a 20 20 20 20 20 20 20 ,.$val)=each($dmap);.).{........
9900 20 24 6f 75 74 41 72 5b 5d 3d 6e 65 77 20 58 4d 4c 5f 52 50 43 5f 56 61 6c 75 65 28 24 6b 65 79 .$outAr[]=new.XML_RPC_Value($key
9920 2c 20 22 73 74 72 69 6e 67 22 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 24 64 6d 61 70 3d 24 58 4d ,."string");.....}.....$dmap=$XM
9940 4c 5f 52 50 43 5f 53 65 72 76 65 72 5f 64 6d 61 70 3b 0a 20 20 20 20 66 6f 72 28 72 65 73 65 74 L_RPC_Server_dmap;.....for(reset
9960 28 24 64 6d 61 70 29 3b 20 6c 69 73 74 28 24 6b 65 79 2c 20 24 76 61 6c 29 3d 65 61 63 68 28 24 ($dmap);.list($key,.$val)=each($
9980 64 6d 61 70 29 3b 20 29 20 7b 0a 20 20 20 20 20 20 20 20 24 6f 75 74 41 72 5b 5d 3d 6e 65 77 20 dmap);.).{.........$outAr[]=new.
99a0 58 4d 4c 5f 52 50 43 5f 56 61 6c 75 65 28 24 6b 65 79 2c 20 22 73 74 72 69 6e 67 22 29 3b 0a 20 XML_RPC_Value($key,."string");..
99c0 20 20 20 7d 0a 20 20 20 20 24 76 2d 3e 61 64 64 41 72 72 61 79 28 24 6f 75 74 41 72 29 3b 0a 20 ...}.....$v->addArray($outAr);..
99e0 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 58 4d 4c 5f 52 50 43 5f 52 65 73 70 6f 6e 73 65 28 24 ...return.new.XML_RPC_Response($
9a00 76 29 3b 0a 7d 0a 0a 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 5f v);.}..$GLOBALS['XML_RPC_Server_
9a20 6d 65 74 68 6f 64 53 69 67 6e 61 74 75 72 65 5f 73 69 67 27 5d 3d 0a 20 20 20 20 61 72 72 61 79 methodSignature_sig']=.....array
9a40 28 61 72 72 61 79 28 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 41 72 72 61 79 27 5d (array($GLOBALS['XML_RPC_Array']
9a60 2c 20 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 53 74 72 69 6e 67 27 5d 29 29 3b 0a ,.$GLOBALS['XML_RPC_String']));.
9a80 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 5f 6d 65 74 68 6f 64 53 $GLOBALS['XML_RPC_Server_methodS
9aa0 69 67 6e 61 74 75 72 65 5f 64 6f 63 27 5d 3d 0a 20 20 20 20 27 52 65 74 75 72 6e 73 20 61 6e 20 ignature_doc']=.....'Returns.an.
9ac0 61 72 72 61 79 20 6f 66 20 6b 6e 6f 77 6e 20 73 69 67 6e 61 74 75 72 65 73 20 28 61 6e 20 61 72 array.of.known.signatures.(an.ar
9ae0 72 61 79 20 6f 66 20 61 72 72 61 79 73 29 20 66 6f 72 20 74 68 65 20 6d 65 74 68 6f 64 20 6e 61 ray.of.arrays).for.the.method.na
9b00 6d 65 20 70 61 73 73 65 64 2e 20 49 66 20 6e 6f 20 73 69 67 6e 61 74 75 72 65 73 20 61 72 65 20 me.passed..If.no.signatures.are.
9b20 6b 6e 6f 77 6e 2c 20 72 65 74 75 72 6e 73 20 61 20 6e 6f 6e 65 2d 61 72 72 61 79 20 28 74 65 73 known,.returns.a.none-array.(tes
9b40 74 20 66 6f 72 20 74 79 70 65 20 21 3d 20 61 72 72 61 79 20 74 6f 20 64 65 74 65 63 74 20 6d 69 t.for.type.!=.array.to.detect.mi
9b60 73 73 69 6e 67 20 73 69 67 6e 61 74 75 72 65 29 27 3b 0a 0a 66 75 6e 63 74 69 6f 6e 20 58 4d 4c ssing.signature)';..function.XML
9b80 5f 52 50 43 5f 53 65 72 76 65 72 5f 6d 65 74 68 6f 64 53 69 67 6e 61 74 75 72 65 28 24 73 65 72 _RPC_Server_methodSignature($ser
9ba0 76 65 72 2c 20 24 6d 29 0a 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 65 ver,.$m).{.....global.$XML_RPC_e
9bc0 72 72 2c 20 24 58 4d 4c 5f 52 50 43 5f 73 74 72 2c 20 24 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 rr,.$XML_RPC_str,.$XML_RPC_Serve
9be0 72 5f 64 6d 61 70 3b 0a 20 20 20 20 0a 20 20 20 20 24 6d 65 74 68 4e 61 6d 65 3d 24 6d 2d 3e 67 r_dmap;..........$methName=$m->g
9c00 65 74 50 61 72 61 6d 28 30 29 3b 0a 20 20 20 20 24 6d 65 74 68 4e 61 6d 65 3d 24 6d 65 74 68 4e etParam(0);.....$methName=$methN
9c20 61 6d 65 2d 3e 73 63 61 6c 61 72 76 61 6c 28 29 3b 0a 20 20 20 20 69 66 20 28 65 72 65 67 28 22 ame->scalarval();.....if.(ereg("
9c40 5e 73 79 73 74 65 6d 5c 2e 22 2c 20 24 6d 65 74 68 4e 61 6d 65 29 29 20 7b 0a 20 20 20 20 20 20 ^system\.",.$methName)).{.......
9c60 20 20 24 64 6d 61 70 3d 24 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 5f 64 6d 61 70 3b 20 24 73 ..$dmap=$XML_RPC_Server_dmap;.$s
9c80 79 73 43 61 6c 6c 3d 31 3b 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 24 ysCall=1;.....}.else.{.........$
9ca0 64 6d 61 70 3d 24 73 65 72 76 65 72 2d 3e 64 6d 61 70 3b 20 24 73 79 73 43 61 6c 6c 3d 30 3b 0a dmap=$server->dmap;.$sysCall=0;.
9cc0 20 20 20 20 7d 0a 20 20 20 20 2f 2f 20 20 70 72 69 6e 74 20 22 3c 21 2d 2d 20 24 7b 6d 65 74 68 ....}.....//..print."<!--.${meth
9ce0 4e 61 6d 65 7d 20 2d 2d 3e 5c 6e 22 3b 0a 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 64 6d 61 Name}.-->\n";.....if.(isset($dma
9d00 70 5b 24 6d 65 74 68 4e 61 6d 65 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 64 6d p[$methName])).{.........if.($dm
9d20 61 70 5b 24 6d 65 74 68 4e 61 6d 65 5d 5b 22 73 69 67 6e 61 74 75 72 65 22 5d 29 20 7b 0a 20 20 ap[$methName]["signature"]).{...
9d40 20 20 20 20 20 20 20 20 20 20 24 73 69 67 73 3d 61 72 72 61 79 28 29 3b 0a 20 20 20 20 20 20 20 ..........$sigs=array();........
9d60 20 20 20 20 20 24 74 68 65 73 69 67 73 3d 24 64 6d 61 70 5b 24 6d 65 74 68 4e 61 6d 65 5d 5b 22 .....$thesigs=$dmap[$methName]["
9d80 73 69 67 6e 61 74 75 72 65 22 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 28 24 69 3d signature"];.............for($i=
9da0 30 3b 20 24 69 3c 73 69 7a 65 6f 66 28 24 74 68 65 73 69 67 73 29 3b 20 24 69 2b 2b 29 20 7b 0a 0;.$i<sizeof($thesigs);.$i++).{.
9dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 63 75 72 73 69 67 3d 61 72 72 61 79 28 29 3b ................$cursig=array();
9de0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 69 6e 53 69 67 3d 24 74 68 65 73 69 67 73 .................$inSig=$thesigs
9e00 5b 24 69 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 28 24 6a 3d 30 3b 20 [$i];.................for($j=0;.
9e20 24 6a 3c 73 69 7a 65 6f 66 28 24 69 6e 53 69 67 29 3b 20 24 6a 2b 2b 29 20 7b 0a 20 20 20 20 20 $j<sizeof($inSig);.$j++).{......
9e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 63 75 72 73 69 67 5b 5d 3d 6e 65 77 20 58 4d 4c ...............$cursig[]=new.XML
9e60 5f 52 50 43 5f 56 61 6c 75 65 28 24 69 6e 53 69 67 5b 24 6a 5d 2c 20 22 73 74 72 69 6e 67 22 29 _RPC_Value($inSig[$j],."string")
9e80 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ;.................}.............
9ea0 20 20 20 20 24 73 69 67 73 5b 5d 3d 6e 65 77 20 58 4d 4c 5f 52 50 43 5f 56 61 6c 75 65 28 24 63 ....$sigs[]=new.XML_RPC_Value($c
9ec0 75 72 73 69 67 2c 20 22 61 72 72 61 79 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 ursig,."array");.............}..
9ee0 20 20 20 20 20 20 20 20 20 20 20 24 72 3d 6e 65 77 20 58 4d 4c 5f 52 50 43 5f 52 65 73 70 6f 6e ...........$r=new.XML_RPC_Respon
9f00 73 65 28 6e 65 77 20 58 4d 4c 5f 52 50 43 5f 56 61 6c 75 65 28 24 73 69 67 73 2c 20 22 61 72 72 se(new.XML_RPC_Value($sigs,."arr
9f20 61 79 22 29 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 ay"));.........}.else.{.........
9f40 20 20 20 20 24 72 3d 6e 65 77 20 58 4d 4c 5f 52 50 43 5f 52 65 73 70 6f 6e 73 65 28 6e 65 77 20 ....$r=new.XML_RPC_Response(new.
9f60 58 4d 4c 5f 52 50 43 5f 56 61 6c 75 65 28 22 75 6e 64 65 66 22 2c 20 22 73 74 72 69 6e 67 22 29 XML_RPC_Value("undef",."string")
9f80 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 );.........}.....}.else.{.......
9fa0 20 20 24 72 3d 6e 65 77 20 58 4d 4c 5f 52 50 43 5f 52 65 73 70 6f 6e 73 65 28 30 2c 0a 20 20 20 ..$r=new.XML_RPC_Response(0,....
9fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f .......................$XML_RPC_
9fe0 65 72 72 5b 22 69 6e 74 72 6f 73 70 65 63 74 5f 75 6e 6b 6e 6f 77 6e 22 5d 2c 0a 20 20 20 20 20 err["introspect_unknown"],......
a000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 73 74 .....................$XML_RPC_st
a020 72 5b 22 69 6e 74 72 6f 73 70 65 63 74 5f 75 6e 6b 6e 6f 77 6e 22 5d 29 3b 0a 20 20 20 20 7d 0a r["introspect_unknown"]);.....}.
a040 20 20 20 20 72 65 74 75 72 6e 20 24 72 3b 0a 7d 0a 0a 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f ....return.$r;.}..$GLOBALS['XML_
a060 52 50 43 5f 53 65 72 76 65 72 5f 6d 65 74 68 6f 64 48 65 6c 70 5f 73 69 67 27 5d 3d 0a 20 20 20 RPC_Server_methodHelp_sig']=....
a080 20 61 72 72 61 79 28 61 72 72 61 79 28 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 53 .array(array($GLOBALS['XML_RPC_S
a0a0 74 72 69 6e 67 27 5d 2c 20 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 53 74 72 69 6e tring'],.$GLOBALS['XML_RPC_Strin
a0c0 67 27 5d 29 29 3b 0a 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 5f g']));.$GLOBALS['XML_RPC_Server_
a0e0 6d 65 74 68 6f 64 48 65 6c 70 5f 64 6f 63 27 5d 3d 0a 20 20 20 20 27 52 65 74 75 72 6e 73 20 68 methodHelp_doc']=.....'Returns.h
a100 65 6c 70 20 74 65 78 74 20 69 66 20 64 65 66 69 6e 65 64 20 66 6f 72 20 74 68 65 20 6d 65 74 68 elp.text.if.defined.for.the.meth
a120 6f 64 20 70 61 73 73 65 64 2c 20 6f 74 68 65 72 77 69 73 65 20 72 65 74 75 72 6e 73 20 61 6e 20 od.passed,.otherwise.returns.an.
a140 65 6d 70 74 79 20 73 74 72 69 6e 67 27 3b 0a 0a 66 75 6e 63 74 69 6f 6e 20 58 4d 4c 5f 52 50 43 empty.string';..function.XML_RPC
a160 5f 53 65 72 76 65 72 5f 6d 65 74 68 6f 64 48 65 6c 70 28 24 73 65 72 76 65 72 2c 20 24 6d 29 0a _Server_methodHelp($server,.$m).
a180 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 65 72 72 2c 20 24 58 4d 4c 5f {.....global.$XML_RPC_err,.$XML_
a1a0 52 50 43 5f 73 74 72 2c 20 24 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 5f 64 6d 61 70 3b 0a 20 RPC_str,.$XML_RPC_Server_dmap;..
a1c0 20 20 20 0a 20 20 20 20 24 6d 65 74 68 4e 61 6d 65 3d 24 6d 2d 3e 67 65 74 50 61 72 61 6d 28 30 ........$methName=$m->getParam(0
a1e0 29 3b 0a 20 20 20 20 24 6d 65 74 68 4e 61 6d 65 3d 24 6d 65 74 68 4e 61 6d 65 2d 3e 73 63 61 6c );.....$methName=$methName->scal
a200 61 72 76 61 6c 28 29 3b 0a 20 20 20 20 69 66 20 28 65 72 65 67 28 22 5e 73 79 73 74 65 6d 5c 2e arval();.....if.(ereg("^system\.
a220 22 2c 20 24 6d 65 74 68 4e 61 6d 65 29 29 20 7b 0a 20 20 20 20 20 20 20 20 24 64 6d 61 70 3d 24 ",.$methName)).{.........$dmap=$
a240 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 5f 64 6d 61 70 3b 20 24 73 79 73 43 61 6c 6c 3d 31 3b XML_RPC_Server_dmap;.$sysCall=1;
a260 0a 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 24 64 6d 61 70 3d 24 73 65 72 .....}.else.{.........$dmap=$ser
a280 76 65 72 2d 3e 64 6d 61 70 3b 20 24 73 79 73 43 61 6c 6c 3d 30 3b 0a 20 20 20 20 7d 0a 20 20 20 ver->dmap;.$sysCall=0;.....}....
a2a0 20 2f 2f 20 20 70 72 69 6e 74 20 22 3c 21 2d 2d 20 24 7b 6d 65 74 68 4e 61 6d 65 7d 20 2d 2d 3e .//..print."<!--.${methName}.-->
a2c0 5c 6e 22 3b 0a 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 64 6d 61 70 5b 24 6d 65 74 68 4e 61 \n";.....if.(isset($dmap[$methNa
a2e0 6d 65 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 64 6d 61 70 5b 24 6d 65 74 68 4e me])).{.........if.($dmap[$methN
a300 61 6d 65 5d 5b 22 64 6f 63 73 74 72 69 6e 67 22 5d 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 ame]["docstring"]).{............
a320 20 24 72 3d 6e 65 77 20 58 4d 4c 5f 52 50 43 5f 52 65 73 70 6f 6e 73 65 28 6e 65 77 20 58 4d 4c .$r=new.XML_RPC_Response(new.XML
a340 5f 52 50 43 5f 56 61 6c 75 65 28 24 64 6d 61 70 5b 24 6d 65 74 68 4e 61 6d 65 5d 5b 22 64 6f 63 _RPC_Value($dmap[$methName]["doc
a360 73 74 72 69 6e 67 22 5d 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 string"]),......................
a380 20 20 20 20 20 20 20 20 20 22 73 74 72 69 6e 67 22 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c ........."string");.........}.el
a3a0 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 3d 6e 65 77 20 58 4d 4c 5f 52 50 43 5f se.{.............$r=new.XML_RPC_
a3c0 52 65 73 70 6f 6e 73 65 28 6e 65 77 20 58 4d 4c 5f 52 50 43 5f 56 61 6c 75 65 28 22 22 2c 20 22 Response(new.XML_RPC_Value("",."
a3e0 73 74 72 69 6e 67 22 29 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 20 65 6c 73 65 20 string"));.........}.....}.else.
a400 7b 0a 20 20 20 20 20 20 20 20 24 72 3d 6e 65 77 20 58 4d 4c 5f 52 50 43 5f 52 65 73 70 6f 6e 73 {.........$r=new.XML_RPC_Respons
a420 65 28 30 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 e(0,...........................$
a440 58 4d 4c 5f 52 50 43 5f 65 72 72 5b 22 69 6e 74 72 6f 73 70 65 63 74 5f 75 6e 6b 6e 6f 77 6e 22 XML_RPC_err["introspect_unknown"
a460 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d ],...........................$XM
a480 4c 5f 52 50 43 5f 73 74 72 5b 22 69 6e 74 72 6f 73 70 65 63 74 5f 75 6e 6b 6e 6f 77 6e 22 5d 29 L_RPC_str["introspect_unknown"])
a4a0 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 24 72 3b 0a 7d 0a 0a 24 47 4c 4f 42 41 ;.....}.....return.$r;.}..$GLOBA
a4c0 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 5f 64 6d 61 70 27 5d 3d 61 72 72 61 79 28 LS['XML_RPC_Server_dmap']=array(
a4e0 0a 20 20 20 20 22 73 79 73 74 65 6d 2e 6c 69 73 74 4d 65 74 68 6f 64 73 22 20 3d 3e 0a 20 20 20 ....."system.listMethods".=>....
a500 20 61 72 72 61 79 28 22 66 75 6e 63 74 69 6f 6e 22 20 3d 3e 20 22 58 4d 4c 5f 52 50 43 5f 53 65 .array("function".=>."XML_RPC_Se
a520 72 76 65 72 5f 6c 69 73 74 4d 65 74 68 6f 64 73 22 2c 0a 20 20 20 20 20 20 20 20 20 20 22 73 69 rver_listMethods",..........."si
a540 67 6e 61 74 75 72 65 22 20 3d 3e 20 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 53 65 gnature".=>.$GLOBALS['XML_RPC_Se
a560 72 76 65 72 5f 6c 69 73 74 4d 65 74 68 6f 64 73 5f 73 69 67 27 5d 2c 0a 20 20 20 20 20 20 20 20 rver_listMethods_sig'],.........
a580 20 20 22 64 6f 63 73 74 72 69 6e 67 22 20 3d 3e 20 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 .."docstring".=>.$GLOBALS['XML_R
a5a0 50 43 5f 53 65 72 76 65 72 5f 6c 69 73 74 4d 65 74 68 6f 64 73 5f 64 6f 63 27 5d 29 2c 0a 0a 20 PC_Server_listMethods_doc']),...
a5c0 20 20 20 22 73 79 73 74 65 6d 2e 6d 65 74 68 6f 64 48 65 6c 70 22 20 3d 3e 0a 20 20 20 20 61 72 ..."system.methodHelp".=>.....ar
a5e0 72 61 79 28 22 66 75 6e 63 74 69 6f 6e 22 20 3d 3e 20 22 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 ray("function".=>."XML_RPC_Serve
a600 72 5f 6d 65 74 68 6f 64 48 65 6c 70 22 2c 0a 20 20 20 20 20 20 20 20 20 20 22 73 69 67 6e 61 74 r_methodHelp",..........."signat
a620 75 72 65 22 20 3d 3e 20 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 ure".=>.$GLOBALS['XML_RPC_Server
a640 5f 6d 65 74 68 6f 64 48 65 6c 70 5f 73 69 67 27 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 22 64 6f _methodHelp_sig'],..........."do
a660 63 73 74 72 69 6e 67 22 20 3d 3e 20 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 53 65 cstring".=>.$GLOBALS['XML_RPC_Se
a680 72 76 65 72 5f 6d 65 74 68 6f 64 48 65 6c 70 5f 64 6f 63 27 5d 29 2c 0a 0a 20 20 20 20 22 73 79 rver_methodHelp_doc']),......"sy
a6a0 73 74 65 6d 2e 6d 65 74 68 6f 64 53 69 67 6e 61 74 75 72 65 22 20 3d 3e 0a 20 20 20 20 61 72 72 stem.methodSignature".=>.....arr
a6c0 61 79 28 22 66 75 6e 63 74 69 6f 6e 22 20 3d 3e 20 22 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 ay("function".=>."XML_RPC_Server
a6e0 5f 6d 65 74 68 6f 64 53 69 67 6e 61 74 75 72 65 22 2c 0a 20 20 20 20 20 20 20 20 20 20 22 73 69 _methodSignature",..........."si
a700 67 6e 61 74 75 72 65 22 20 3d 3e 20 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 53 65 gnature".=>.$GLOBALS['XML_RPC_Se
a720 72 76 65 72 5f 6d 65 74 68 6f 64 53 69 67 6e 61 74 75 72 65 5f 73 69 67 27 5d 2c 0a 20 20 20 20 rver_methodSignature_sig'],.....
a740 20 20 20 20 20 20 22 64 6f 63 73 74 72 69 6e 67 22 20 3d 3e 20 24 47 4c 4f 42 41 4c 53 5b 27 58 ......"docstring".=>.$GLOBALS['X
a760 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 5f 6d 65 74 68 6f 64 53 69 67 6e 61 74 75 72 65 5f 64 6f ML_RPC_Server_methodSignature_do
a780 63 27 5d 29 0a 29 3b 0a 0a 24 47 4c 4f 42 41 4c 53 5b 27 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 c']).);..$GLOBALS['XML_RPC_Serve
a7a0 72 5f 64 65 62 75 67 69 6e 66 6f 27 5d 3d 22 22 3b 0a 0a 66 75 6e 63 74 69 6f 6e 20 58 4d 4c 5f r_debuginfo']="";..function.XML_
a7c0 52 50 43 5f 53 65 72 76 65 72 5f 64 65 62 75 67 6d 73 67 28 24 6d 29 0a 7b 0a 20 20 20 20 67 6c RPC_Server_debugmsg($m).{.....gl
a7e0 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 5f 64 65 62 75 67 69 6e 66 6f 3b 0a obal.$XML_RPC_Server_debuginfo;.
a800 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 5f 64 65 62 75 67 69 6e 66 6f 3d 24 58 ....$XML_RPC_Server_debuginfo=$X
a820 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 5f 64 65 62 75 67 69 6e 66 6f 20 2e 20 24 6d 20 2e 20 22 ML_RPC_Server_debuginfo...$m..."
a840 5c 6e 22 3b 0a 7d 0a 0a 63 6c 61 73 73 20 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 0a 7b 0a 20 \n";.}..class.XML_RPC_Server.{..
a860 20 20 20 76 61 72 20 24 64 6d 61 70 3d 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 66 75 6e 63 74 ...var.$dmap=array();......funct
a880 69 6f 6e 20 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 28 24 64 69 73 70 4d 61 70 2c 20 24 73 65 ion.XML_RPC_Server($dispMap,.$se
a8a0 72 76 69 63 65 4e 6f 77 3d 31 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 67 6c 6f 62 61 6c rviceNow=1).....{.........global
a8c0 20 24 48 54 54 50 5f 52 41 57 5f 50 4f 53 54 5f 44 41 54 41 3b 0a 20 20 20 20 20 20 20 20 2f 2f .$HTTP_RAW_POST_DATA;.........//
a8e0 20 64 69 73 70 4d 61 70 20 69 73 20 61 20 64 65 73 70 61 74 63 68 20 61 72 72 61 79 20 6f 66 20 .dispMap.is.a.despatch.array.of.
a900 6d 65 74 68 6f 64 73 0a 20 20 20 20 20 20 20 20 2f 2f 20 6d 61 70 70 65 64 20 74 6f 20 66 75 6e methods.........//.mapped.to.fun
a920 63 74 69 6f 6e 20 6e 61 6d 65 73 20 61 6e 64 20 73 69 67 6e 61 74 75 72 65 73 0a 20 20 20 20 20 ction.names.and.signatures......
a940 20 20 20 2f 2f 20 69 66 20 61 20 6d 65 74 68 6f 64 0a 20 20 20 20 20 20 20 20 2f 2f 20 64 6f 65 ...//.if.a.method.........//.doe
a960 73 6e 27 74 20 61 70 70 65 61 72 20 69 6e 20 74 68 65 20 6d 61 70 20 74 68 65 6e 20 61 6e 20 75 sn't.appear.in.the.map.then.an.u
a980 6e 6b 6e 6f 77 6e 0a 20 20 20 20 20 20 20 20 2f 2f 20 6d 65 74 68 6f 64 20 65 72 72 6f 72 20 69 nknown.........//.method.error.i
a9a0 73 20 67 65 6e 65 72 61 74 65 64 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 64 6d 61 70 3d s.generated.........$this->dmap=
a9c0 24 64 69 73 70 4d 61 70 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 73 65 72 76 69 63 65 4e 6f $dispMap;.........if.($serviceNo
a9e0 77 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 73 65 72 76 69 63 65 28 w).{.............$this->service(
aa00 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e );.........}.....}......function
aa20 20 73 65 72 69 61 6c 69 7a 65 44 65 62 75 67 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 .serializeDebug().....{.........
aa40 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 5f 64 65 62 75 67 69 6e 66 6f global.$XML_RPC_Server_debuginfo
aa60 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 5f 64 65 ;.........if.($XML_RPC_Server_de
aa80 62 75 67 69 6e 66 6f 21 3d 22 22 29 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e buginfo!="")..............return
aaa0 20 22 3c 21 2d 2d 20 44 45 42 55 47 20 49 4e 46 4f 3a 5c 6e 5c 6e 22 20 2e 0a 20 20 20 20 20 20 ."<!--.DEBUG.INFO:\n\n".........
aac0 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 5f 64 65 62 75 67 69 ..........$XML_RPC_Server_debugi
aae0 6e 66 6f 20 2e 20 22 5c 6e 2d 2d 3e 5c 6e 22 3b 0a 20 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 nfo..."\n-->\n";.........else...
ab00 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 22 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 ..........return."";.....}......
ab20 66 75 6e 63 74 69 6f 6e 20 73 65 72 76 69 63 65 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 function.service().....{........
ab40 20 24 72 3d 24 74 68 69 73 2d 3e 70 61 72 73 65 52 65 71 75 65 73 74 28 29 3b 0a 20 20 20 20 20 .$r=$this->parseRequest();......
ab60 20 20 20 24 70 61 79 6c 6f 61 64 3d 22 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 5c 22 31 2e 30 ...$payload="<?xml.version=\"1.0
ab80 5c 22 3f 3e 5c 6e 22 20 2e 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 73 65 \"?>\n"................$this->se
aba0 72 69 61 6c 69 7a 65 44 65 62 75 67 28 29 20 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 2d rializeDebug()...............$r-
abc0 3e 73 65 72 69 61 6c 69 7a 65 28 29 3b 0a 20 20 20 20 20 20 20 20 48 65 61 64 65 72 28 22 43 6f >serialize();.........Header("Co
abe0 6e 74 65 6e 74 2d 74 79 70 65 3a 20 74 65 78 74 2f 78 6d 6c 5c 6e 43 6f 6e 74 65 6e 74 2d 6c 65 ntent-type:.text/xml\nContent-le
ac00 6e 67 74 68 3a 20 22 20 2e 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 6c 65 6e ngth:."...................strlen
ac20 28 24 70 61 79 6c 6f 61 64 29 29 3b 0a 20 20 20 20 20 20 20 20 70 72 69 6e 74 20 24 70 61 79 6c ($payload));.........print.$payl
ac40 6f 61 64 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 76 65 72 69 66 79 53 oad;.....}......function.verifyS
ac60 69 67 6e 61 74 75 72 65 28 24 69 6e 2c 20 24 73 69 67 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 ignature($in,.$sig).....{.......
ac80 20 20 66 6f 72 28 24 69 3d 30 3b 20 24 69 3c 73 69 7a 65 6f 66 28 24 73 69 67 29 3b 20 24 69 2b ..for($i=0;.$i<sizeof($sig);.$i+
aca0 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 63 68 65 63 6b 20 65 61 63 68 20 70 +).{.............//.check.each.p
acc0 6f 73 73 69 62 6c 65 20 73 69 67 6e 61 74 75 72 65 20 69 6e 20 74 75 72 6e 0a 20 20 20 20 20 20 ossible.signature.in.turn.......
ace0 20 20 20 20 20 20 24 63 75 72 73 69 67 3d 24 73 69 67 5b 24 69 5d 3b 0a 20 20 20 20 20 20 20 20 ......$cursig=$sig[$i];.........
ad00 20 20 20 20 69 66 20 28 73 69 7a 65 6f 66 28 24 63 75 72 73 69 67 29 3d 3d 24 69 6e 2d 3e 67 65 ....if.(sizeof($cursig)==$in->ge
ad20 74 4e 75 6d 50 61 72 61 6d 73 28 29 2b 31 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tNumParams()+1).{...............
ad40 20 20 24 69 74 73 4f 4b 3d 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 28 ..$itsOK=1;.................for(
ad60 24 6e 3d 30 3b 20 24 6e 3c 24 69 6e 2d 3e 67 65 74 4e 75 6d 50 61 72 61 6d 73 28 29 3b 20 24 6e $n=0;.$n<$in->getNumParams();.$n
ad80 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 3d 24 69 6e ++).{.....................$p=$in
ada0 2d 3e 67 65 74 50 61 72 61 6d 28 24 6e 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ->getParam($n);.................
adc0 20 20 20 20 2f 2f 20 70 72 69 6e 74 20 22 3c 21 2d 2d 20 24 70 20 2d 2d 3e 5c 6e 22 3b 0a 20 20 ....//.print."<!--.$p.-->\n";...
ade0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 70 2d 3e 6b 69 6e 64 4f 66 ..................if.($p->kindOf
ae00 28 29 20 3d 3d 20 22 73 63 61 6c 61 72 22 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ().==."scalar").{...............
ae20 20 20 20 20 20 20 20 20 20 20 24 70 74 3d 24 70 2d 3e 73 63 61 6c 61 72 74 79 70 28 29 3b 0a 20 ..........$pt=$p->scalartyp();..
ae40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 ...................}.else.{.....
ae60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 70 74 3d 24 70 2d 3e 6b 69 6e 64 ....................$pt=$p->kind
ae80 4f 66 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 Of();.....................}.....
aea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 24 6e 2b 31 20 61 73 20 66 69 72 73 74 ................//.$n+1.as.first
aec0 20 74 79 70 65 20 6f 66 20 73 69 67 20 69 73 20 72 65 74 75 72 6e 20 74 79 70 65 0a 20 20 20 20 .type.of.sig.is.return.type.....
aee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 70 74 20 21 3d 20 24 63 75 72 73 ................if.($pt.!=.$curs
af00 69 67 5b 24 6e 2b 31 5d 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ig[$n+1]).{.....................
af20 20 20 20 20 24 69 74 73 4f 4b 3d 30 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....$itsOK=0;...................
af40 20 20 20 20 20 20 24 70 6e 6f 3d 24 6e 2b 31 3b 20 24 77 61 6e 74 65 64 3d 24 63 75 72 73 69 67 ......$pno=$n+1;.$wanted=$cursig
af60 5b 24 6e 2b 31 5d 3b 20 24 67 6f 74 3d 24 70 74 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 [$n+1];.$got=$pt;...............
af80 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........break;................
afa0 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 .....}.................}........
afc0 20 20 20 20 20 20 20 20 20 69 66 20 28 24 69 74 73 4f 4b 29 20 0a 20 20 20 20 20 20 20 20 20 20 .........if.($itsOK)............
afe0 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 61 72 72 61 79 28 31 29 3b 0a 20 20 20 20 20 ..........return.array(1);......
b000 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 .......}.........}.........retur
b020 6e 20 61 72 72 61 79 28 30 2c 20 22 57 61 6e 74 65 64 20 24 7b 77 61 6e 74 65 64 7d 2c 20 67 6f n.array(0,."Wanted.${wanted},.go
b040 74 20 24 7b 67 6f 74 7d 20 61 74 20 70 61 72 61 6d 20 24 7b 70 6e 6f 7d 29 22 29 3b 0a 20 20 20 t.${got}.at.param.${pno})");....
b060 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 52 65 71 75 65 73 74 28 24 64 .}......function.parseRequest($d
b080 61 74 61 3d 22 22 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 67 6c 6f 62 61 6c 20 24 58 4d ata="").....{.........global.$XM
b0a0 4c 5f 52 50 43 5f 78 68 2c 24 48 54 54 50 5f 52 41 57 5f 50 4f 53 54 5f 44 41 54 41 3b 0a 20 20 L_RPC_xh,$HTTP_RAW_POST_DATA;...
b0c0 20 20 20 20 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 65 72 72 2c 20 24 58 4d 4c 5f ......global.$XML_RPC_err,.$XML_
b0e0 52 50 43 5f 73 74 72 2c 20 24 58 4d 4c 5f 52 50 43 5f 65 72 72 78 6d 6c 2c 0a 20 20 20 20 20 20 RPC_str,.$XML_RPC_errxml,.......
b100 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 64 65 66 65 6e 63 6f 64 69 6e 67 2c 20 24 58 4d 4c ......$XML_RPC_defencoding,.$XML
b120 5f 52 50 43 5f 53 65 72 76 65 72 5f 64 6d 61 70 3b 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 _RPC_Server_dmap;...............
b140 20 20 20 69 66 20 28 24 64 61 74 61 3d 3d 22 22 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ...if.($data=="").{.............
b160 24 64 61 74 61 3d 24 48 54 54 50 5f 52 41 57 5f 50 4f 53 54 5f 44 41 54 41 3b 0a 20 20 20 20 20 $data=$HTTP_RAW_POST_DATA;......
b180 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 70 61 72 73 65 72 20 3d 20 78 6d 6c 5f 70 61 72 73 65 ...}.........$parser.=.xml_parse
b1a0 72 5f 63 72 65 61 74 65 28 24 58 4d 4c 5f 52 50 43 5f 64 65 66 65 6e 63 6f 64 69 6e 67 29 3b 0a r_create($XML_RPC_defencoding);.
b1c0 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 .................$XML_RPC_xh[$pa
b1e0 72 73 65 72 5d 3d 61 72 72 61 79 28 29 3b 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f rser]=array();.........$XML_RPC_
b200 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 73 74 27 5d 3d 22 22 3b 0a 20 20 20 20 20 20 20 20 24 58 xh[$parser]['st']="";.........$X
b220 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 63 6d 27 5d 3d 30 3b 20 0a 20 20 20 ML_RPC_xh[$parser]['cm']=0;.....
b240 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 69 73 66 27 5d .....$XML_RPC_xh[$parser]['isf']
b260 3d 30 3b 20 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 =0;..........$XML_RPC_xh[$parser
b280 5d 5b 27 70 61 72 61 6d 73 27 5d 3d 61 72 72 61 79 28 29 3b 0a 20 20 20 20 20 20 20 20 24 58 4d ]['params']=array();.........$XM
b2a0 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 6d 65 74 68 6f 64 27 5d 3d 22 22 3b 0a L_RPC_xh[$parser]['method']="";.
b2c0 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 24 70 6c 69 73 74 20 3d 20 27 27 3b 0a 0a 20 .................$plist.=.'';...
b2e0 20 20 20 20 20 20 20 2f 2f 20 64 65 63 6f 6d 70 6f 73 65 20 69 6e 63 6f 6d 69 6e 67 20 58 4d 4c .......//.decompose.incoming.XML
b300 20 69 6e 74 6f 20 72 65 71 75 65 73 74 20 73 74 72 75 63 74 75 72 65 0a 20 20 20 20 20 20 20 20 .into.request.structure.........
b320 0a 20 20 20 20 20 20 20 20 78 6d 6c 5f 70 61 72 73 65 72 5f 73 65 74 5f 6f 70 74 69 6f 6e 28 24 .........xml_parser_set_option($
b340 70 61 72 73 65 72 2c 20 58 4d 4c 5f 4f 50 54 49 4f 4e 5f 43 41 53 45 5f 46 4f 4c 44 49 4e 47 2c parser,.XML_OPTION_CASE_FOLDING,
b360 20 74 72 75 65 29 3b 0a 20 20 20 20 20 20 20 20 78 6d 6c 5f 73 65 74 5f 65 6c 65 6d 65 6e 74 5f .true);.........xml_set_element_
b380 68 61 6e 64 6c 65 72 28 24 70 61 72 73 65 72 2c 20 22 58 4d 4c 5f 52 50 43 5f 73 65 22 2c 20 22 handler($parser,."XML_RPC_se",."
b3a0 58 4d 4c 5f 52 50 43 5f 65 65 22 29 3b 0a 20 20 20 20 20 20 20 20 78 6d 6c 5f 73 65 74 5f 63 68 XML_RPC_ee");.........xml_set_ch
b3c0 61 72 61 63 74 65 72 5f 64 61 74 61 5f 68 61 6e 64 6c 65 72 28 24 70 61 72 73 65 72 2c 20 22 58 aracter_data_handler($parser,."X
b3e0 4d 4c 5f 52 50 43 5f 63 64 22 29 3b 0a 20 20 20 20 20 20 20 20 78 6d 6c 5f 73 65 74 5f 64 65 66 ML_RPC_cd");.........xml_set_def
b400 61 75 6c 74 5f 68 61 6e 64 6c 65 72 28 24 70 61 72 73 65 72 2c 20 22 58 4d 4c 5f 52 50 43 5f 64 ault_handler($parser,."XML_RPC_d
b420 68 22 29 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 78 6d 6c 5f 70 61 72 73 65 28 24 70 61 72 h");.........if.(!xml_parse($par
b440 73 65 72 2c 20 24 64 61 74 61 2c 20 31 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f ser,.$data,.1)).{.............//
b460 20 72 65 74 75 72 6e 20 58 4d 4c 20 65 72 72 6f 72 20 61 73 20 61 20 66 61 75 6c 74 43 6f 64 65 .return.XML.error.as.a.faultCode
b480 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 72 3d 6e 65 77 20 58 4d 4c 5f 52 50 43 5f 52 65 73 70 .............$r=new.XML_RPC_Resp
b4a0 6f 6e 73 65 28 30 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 onse(0,.........................
b4c0 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 65 72 72 78 6d 6c 2b 78 6d 6c 5f ............$XML_RPC_errxml+xml_
b4e0 67 65 74 5f 65 72 72 6f 72 5f 63 6f 64 65 28 24 70 61 72 73 65 72 29 2c 0a 20 20 20 20 20 20 20 get_error_code($parser),........
b500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 70 72 .............................spr
b520 69 6e 74 66 28 22 58 4d 4c 20 65 72 72 6f 72 3a 20 25 73 20 61 74 20 6c 69 6e 65 20 25 64 22 2c intf("XML.error:.%s.at.line.%d",
b540 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
b560 20 20 20 20 20 20 20 20 20 20 20 20 20 78 6d 6c 5f 65 72 72 6f 72 5f 73 74 72 69 6e 67 28 78 6d .............xml_error_string(xm
b580 6c 5f 67 65 74 5f 65 72 72 6f 72 5f 63 6f 64 65 28 24 70 61 72 73 65 72 29 29 2c 0a 20 20 20 20 l_get_error_code($parser)),.....
b5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
b5c0 20 20 20 20 20 20 20 20 78 6d 6c 5f 67 65 74 5f 63 75 72 72 65 6e 74 5f 6c 69 6e 65 5f 6e 75 6d ........xml_get_current_line_num
b5e0 62 65 72 28 24 70 61 72 73 65 72 29 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 78 6d 6c 5f ber($parser)));.............xml_
b600 70 61 72 73 65 72 5f 66 72 65 65 28 24 70 61 72 73 65 72 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 parser_free($parser);.........}.
b620 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 78 6d 6c 5f 70 61 72 73 65 72 5f 66 72 else.{.............xml_parser_fr
b640 65 65 28 24 70 61 72 73 65 72 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6d 3d 6e 65 77 20 ee($parser);.............$m=new.
b660 58 4d 4c 5f 52 50 43 5f 4d 65 73 73 61 67 65 28 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 XML_RPC_Message($XML_RPC_xh[$par
b680 73 65 72 5d 5b 27 6d 65 74 68 6f 64 27 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 ser]['method']);.............//.
b6a0 6e 6f 77 20 61 64 64 20 70 61 72 61 6d 65 74 65 72 73 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 now.add.parameters.in...........
b6c0 20 20 66 6f 72 28 24 69 3d 30 3b 20 24 69 3c 73 69 7a 65 6f 66 28 24 58 4d 4c 5f 52 50 43 5f 78 ..for($i=0;.$i<sizeof($XML_RPC_x
b6e0 68 5b 24 70 61 72 73 65 72 5d 5b 27 70 61 72 61 6d 73 27 5d 29 3b 20 24 69 2b 2b 29 20 7b 0a 20 h[$parser]['params']);.$i++).{..
b700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 70 72 69 6e 74 20 22 3c 21 2d 2d 20 22 20 ...............//.print."<!--.".
b720 2e 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 70 61 72 61 6d 73 27 5d ..$XML_RPC_xh[$parser]['params']
b740 5b 24 69 5d 2e 20 22 2d 2d 3e 5c 6e 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 [$i].."-->\n";.................$
b760 70 6c 69 73 74 2e 3d 22 24 69 20 2d 20 22 20 2e 20 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 plist.="$i.-."....$XML_RPC_xh[$p
b780 61 72 73 65 72 5d 5b 27 70 61 72 61 6d 73 27 5d 5b 24 69 5d 2e 20 22 20 5c 6e 22 3b 0a 20 20 20 arser]['params'][$i]..".\n";....
b7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 65 76 61 6c 28 27 24 6d 2d 3e 61 64 64 50 61 72 61 6d 28 .............eval('$m->addParam(
b7c0 27 20 2e 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 70 61 72 61 6d 73 '...$XML_RPC_xh[$parser]['params
b7e0 27 5d 5b 24 69 5d 2e 20 22 29 3b 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 '][$i]..");");.............}....
b800 20 20 20 20 20 20 20 20 20 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 5f 64 65 62 75 67 6d 73 67 .........XML_RPC_Server_debugmsg
b820 28 24 70 6c 69 73 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6e 6f 77 20 74 6f 20 ($plist);.............//.now.to.
b840 64 65 61 6c 20 77 69 74 68 20 74 68 65 20 6d 65 74 68 6f 64 0a 20 20 20 20 20 20 20 20 20 20 20 deal.with.the.method............
b860 20 24 6d 65 74 68 4e 61 6d 65 3d 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b .$methName=$XML_RPC_xh[$parser][
b880 27 6d 65 74 68 6f 64 27 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 65 72 65 67 28 'method'];.............if.(ereg(
b8a0 22 5e 73 79 73 74 65 6d 5c 2e 22 2c 20 24 6d 65 74 68 4e 61 6d 65 29 29 20 7b 0a 20 20 20 20 20 "^system\.",.$methName)).{......
b8c0 20 20 20 20 20 20 20 20 20 20 20 24 64 6d 61 70 3d 24 58 4d 4c 5f 52 50 43 5f 53 65 72 76 65 72 ...........$dmap=$XML_RPC_Server
b8e0 5f 64 6d 61 70 3b 20 24 73 79 73 43 61 6c 6c 3d 31 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d _dmap;.$sysCall=1;.............}
b900 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 64 6d 61 70 3d 24 74 .else.{.................$dmap=$t
b920 68 69 73 2d 3e 64 6d 61 70 3b 20 24 73 79 73 43 61 6c 6c 3d 30 3b 0a 20 20 20 20 20 20 20 20 20 his->dmap;.$sysCall=0;..........
b940 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 64 6d 61 70 ...}.............if.(isset($dmap
b960 5b 24 6d 65 74 68 4e 61 6d 65 5d 5b 27 66 75 6e 63 74 69 6f 6e 27 5d 29 29 20 7b 0a 20 20 20 20 [$methName]['function'])).{.....
b980 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 64 69 73 70 61 74 63 68 20 69 66 20 65 78 69 73 74 ............//.dispatch.if.exist
b9a0 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 64 6d 61 s.................if.(isset($dma
b9c0 70 5b 24 6d 65 74 68 4e 61 6d 65 5d 5b 27 73 69 67 6e 61 74 75 72 65 27 5d 29 29 20 7b 0a 20 20 p[$methName]['signature'])).{...
b9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 73 72 3d 24 74 68 69 73 2d 3e 76 65 72 ..................$sr=$this->ver
ba00 69 66 79 53 69 67 6e 61 74 75 72 65 28 24 6d 2c 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ifySignature($m,................
ba20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
ba40 20 24 64 6d 61 70 5b 24 6d 65 74 68 4e 61 6d 65 5d 5b 27 73 69 67 6e 61 74 75 72 65 27 5d 20 29 .$dmap[$methName]['signature'].)
ba60 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ;.................}.............
ba80 20 20 20 20 69 66 20 28 20 28 21 69 73 73 65 74 28 24 64 6d 61 70 5b 24 6d 65 74 68 4e 61 6d 65 ....if.(.(!isset($dmap[$methName
baa0 5d 5b 27 73 69 67 6e 61 74 75 72 65 27 5d 29 29 20 7c 7c 20 24 73 72 5b 30 5d 29 20 7b 0a 20 20 ]['signature'])).||.$sr[0]).{...
bac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 69 66 20 6e 6f 20 73 69 67 6e 61 ..................//.if.no.signa
bae0 74 75 72 65 20 6f 72 20 63 6f 72 72 65 63 74 20 73 69 67 6e 61 74 75 72 65 0a 20 20 20 20 20 20 ture.or.correct.signature.......
bb00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 73 79 73 43 61 6c 6c 29 20 7b 20 0a 20 ..............if.($sysCall).{...
bb20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 76 61 6c 28 27 24 72 3d .......................eval('$r=
bb40 27 20 2e 20 24 64 6d 61 70 5b 24 6d 65 74 68 4e 61 6d 65 5d 5b 27 66 75 6e 63 74 69 6f 6e 27 5d '...$dmap[$methName]['function']
bb60 20 2e 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
bb80 20 27 28 24 74 68 69 73 2c 20 24 6d 29 3b 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .'($this,.$m);');...............
bba0 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......}.else.{..................
bbc0 20 20 20 20 20 20 20 65 76 61 6c 28 27 24 72 3d 27 20 2e 20 24 64 6d 61 70 5b 24 6d 65 74 68 4e .......eval('$r='...$dmap[$methN
bbe0 61 6d 65 5d 5b 27 66 75 6e 63 74 69 6f 6e 27 5d 20 2e 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 ame]['function']................
bc00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 24 6d 29 3b 27 29 3b 0a 20 20 20 20 20 .................'($m);');......
bc20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...............}................
bc40 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 72 .}.else.{.....................$r
bc60 3d 6e 65 77 20 58 4d 4c 5f 52 50 43 5f 52 65 73 70 6f 6e 73 65 28 30 2c 0a 20 20 20 20 20 20 20 =new.XML_RPC_Response(0,........
bc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
bca0 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 65 72 72 5b 22 69 6e 63 6f 72 72 65 63 74 5f 70 61 72 .....$XML_RPC_err["incorrect_par
bcc0 61 6d 73 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ams"],..........................
bce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 73 74 72 5b ...................$XML_RPC_str[
bd00 22 69 6e 63 6f 72 72 65 63 74 5f 70 61 72 61 6d 73 22 5d 2e 22 3a 20 22 2e 20 24 73 72 5b 31 5d "incorrect_params"].":."..$sr[1]
bd20 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 );.................}............
bd40 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 65 6c 73 .}.else.{.................//.els
bd60 65 20 70 72 65 70 61 72 65 20 65 72 72 6f 72 20 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 e.prepare.error.response........
bd80 20 20 20 20 20 20 20 20 20 24 72 3d 6e 65 77 20 58 4d 4c 5f 52 50 43 5f 52 65 73 70 6f 6e 73 65 .........$r=new.XML_RPC_Response
bda0 28 30 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (0,.............................
bdc0 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 65 72 72 5b 22 75 6e 6b 6e 6f 77 ............$XML_RPC_err["unknow
bde0 6e 5f 6d 65 74 68 6f 64 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n_method"],.....................
be00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 73 74 72 ....................$XML_RPC_str
be20 5b 22 75 6e 6b 6e 6f 77 6e 5f 6d 65 74 68 6f 64 22 5d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 ["unknown_method"]);............
be40 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 3b 0a .}.........}.........return.$r;.
be60 20 20 20 20 7d 0a 0a 20 20 66 75 6e 63 74 69 6f 6e 20 65 63 68 6f 49 6e 70 75 74 28 29 20 7b 0a ....}....function.echoInput().{.
be80 20 20 20 20 20 20 20 20 67 6c 6f 62 61 6c 20 24 48 54 54 50 5f 52 41 57 5f 50 4f 53 54 5f 44 41 ........global.$HTTP_RAW_POST_DA
bea0 54 41 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 61 20 64 65 62 75 67 67 69 6e 67 20 72 6f 75 74 TA;..........//.a.debugging.rout
bec0 69 6e 65 3a 20 6a 75 73 74 20 65 63 68 6f 73 20 62 61 63 6b 20 74 68 65 20 69 6e 70 75 74 0a 20 ine:.just.echos.back.the.input..
bee0 20 20 20 20 20 20 20 2f 2f 20 70 61 63 6b 65 74 20 61 73 20 61 20 73 74 72 69 6e 67 20 76 61 6c .......//.packet.as.a.string.val
bf00 75 65 0a 0a 20 20 20 20 20 20 20 20 24 72 3d 6e 65 77 20 58 4d 4c 5f 52 50 43 5f 52 65 73 70 6f ue..........$r=new.XML_RPC_Respo
bf20 6e 73 65 3b 0a 20 20 20 20 20 20 20 20 24 72 2d 3e 78 76 3d 6e 65 77 20 58 4d 4c 5f 52 50 43 5f nse;.........$r->xv=new.XML_RPC_
bf40 56 61 6c 75 65 28 20 22 27 41 68 61 20 73 61 69 64 20 49 3a 20 27 22 20 2e 20 24 48 54 54 50 5f Value(."'Aha.said.I:.'"...$HTTP_
bf60 52 41 57 5f 50 4f 53 54 5f 44 41 54 41 2c 20 22 73 74 72 69 6e 67 22 29 3b 0a 20 20 20 20 20 20 RAW_POST_DATA,."string");.......
bf80 20 20 70 72 69 6e 74 20 24 72 2d 3e 73 65 72 69 61 6c 69 7a 65 28 29 3b 0a 20 20 7d 0a 7d 0a 0a ..print.$r->serialize();...}.}..
bfa0 3f 3e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ?>..............................
bfc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bfe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................