summaryrefslogtreecommitdiff
path: root/pear/packages/XML_RPC-1.0.3.tar
blob: 5e35e1cf1c971987cb724556f3f62e78d99e8363 (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 32 36 37 36 20 20 37 34 37 32 31 35 37 35 35 33 20 20 20 36 34 30 31 20 00 00 00 00 00 ...2676..7472157553...6401......
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 33 3c 2f 76 65 72 73 69 6f 6e 3e 0a 20 20 20 20 3c ..<version>1.0.3</version>.....<
0420 64 61 74 65 3e 32 30 30 32 2d 30 35 2d 31 39 3c 2f 64 61 74 65 3e 0a 20 20 20 20 3c 6c 69 63 65 date>2002-05-19</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 66 69 78 20 62 75 67 20 77 68 65 6e 20 70 61 72 73 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 20 .fix.bug.when.parsing.responses.
04a0 77 69 74 68 20 62 6f 6f 6c 65 61 6e 20 74 79 70 65 73 3c 2f 6e 6f 74 65 73 3e 0a 20 20 20 20 3c with.boolean.types</notes>.....<
04c0 66 69 6c 65 6c 69 73 74 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c 65 3d 22 70 68 70 22 filelist>.......<file.role="php"
04e0 20 62 61 73 65 69 6e 73 74 61 6c 6c 64 69 72 3d 22 58 4d 4c 22 20 6d 64 35 73 75 6d 3d 22 61 65 .baseinstalldir="XML".md5sum="ae
0500 66 34 38 38 36 37 30 65 63 37 30 38 64 38 37 66 38 37 64 30 65 30 63 30 61 38 37 65 36 32 22 20 f488670ec708d87f87d0e0c0a87e62".
0520 6e 61 6d 65 3d 22 52 50 43 2e 70 68 70 22 2f 3e 0a 20 20 20 20 20 20 3c 66 69 6c 65 20 72 6f 6c name="RPC.php"/>.......<file.rol
0540 65 3d 22 70 68 70 22 20 62 61 73 65 69 6e 73 74 61 6c 6c 64 69 72 3d 22 58 4d 4c 2f 52 50 43 22 e="php".baseinstalldir="XML/RPC"
0560 20 6d 64 35 73 75 6d 3d 22 65 34 66 37 64 32 36 38 66 38 62 61 63 30 63 63 62 33 39 62 39 36 37 .md5sum="e4f7d268f8bac0ccb39b967
0580 62 33 33 61 38 37 62 35 64 22 20 6e 61 6d 65 3d 22 53 65 72 76 65 72 2e 70 68 70 22 2f 3e 0a 20 b33a87b5d".name="Server.php"/>..
05a0 20 20 20 3c 2f 66 69 6c 65 6c 69 73 74 3e 0a 20 20 3c 2f 72 65 6c 65 61 73 65 3e 0a 20 20 3c 63 ...</filelist>...</release>...<c
05c0 68 61 6e 67 65 6c 6f 67 3e 0a 20 20 20 20 3c 72 65 6c 65 61 73 65 3e 0a 20 20 20 20 20 20 3c 76 hangelog>.....<release>.......<v
05e0 65 72 73 69 6f 6e 3e 31 2e 30 2e 31 3c 2f 76 65 72 73 69 6f 6e 3e 0a 20 20 20 20 20 20 3c 64 61 ersion>1.0.1</version>.......<da
0600 74 65 3e 32 30 30 31 2d 30 39 2d 32 35 3c 2f 64 61 74 65 3e 0a 20 20 20 20 20 20 3c 73 74 61 74 te>2001-09-25</date>.......<stat
0620 65 3e 73 74 61 62 6c 65 3c 2f 73 74 61 74 65 3e 0a 20 20 20 20 20 20 3c 6e 6f 74 65 73 3e 54 68 e>stable</state>.......<notes>Th
0640 69 73 20 69 73 20 61 20 50 45 41 52 2d 69 66 69 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 55 73 is.is.a.PEAR-ified.version.of.Us
0660 65 66 75 6c 20 49 6e 63 27 73 20 31 2e 30 2e 31 20 72 65 6c 65 61 73 65 2e 0a 20 20 20 20 20 20 eful.Inc's.1.0.1.release........
0680 20 20 49 6e 63 6c 75 64 65 73 20 61 6e 20 75 72 67 65 6e 74 20 73 65 63 75 72 69 74 79 20 66 69 ..Includes.an.urgent.security.fi
06a0 78 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 44 61 6e 20 4c 69 62 62 79 20 26 6c 74 3b 64 61 x.identified.by.Dan.Libby.&lt;da
06c0 6e 40 6c 69 62 62 79 2e 63 6f 6d 26 67 74 3b 2e 3c 2f 6e 6f 74 65 73 3e 0a 20 20 20 20 3c 2f 72 n@libby.com&gt;.</notes>.....</r
06e0 65 6c 65 61 73 65 3e 0a 20 20 20 20 3c 72 65 6c 65 61 73 65 3e 0a 20 20 20 20 20 20 3c 76 65 72 elease>.....<release>.......<ver
0700 73 69 6f 6e 3e 31 2e 30 2e 32 3c 2f 76 65 72 73 69 6f 6e 3e 0a 20 20 20 20 20 20 3c 64 61 74 65 sion>1.0.2</version>.......<date
0720 3e 32 30 30 32 2d 30 34 2d 31 36 3c 2f 64 61 74 65 3e 0a 20 20 20 20 20 20 3c 73 74 61 74 65 3e >2002-04-16</date>.......<state>
0740 73 74 61 62 6c 65 3c 2f 73 74 61 74 65 3e 0a 20 20 20 20 20 20 3c 6e 6f 74 65 73 3e 2a 20 45 5f stable</state>.......<notes>*.E_
0760 41 4c 4c 20 66 69 78 65 73 0a 2a 20 66 69 78 20 48 54 54 50 20 72 65 73 70 6f 6e 73 65 20 68 65 ALL.fixes.*.fix.HTTP.response.he
0780 61 64 65 72 20 70 61 72 73 69 6e 67 3c 2f 6e 6f 74 65 73 3e 0a 20 20 20 20 3c 2f 72 65 6c 65 61 ader.parsing</notes>.....</relea
07a0 73 65 3e 0a 20 20 3c 2f 63 68 61 6e 67 65 6c 6f 67 3e 0a 3c 2f 70 61 63 6b 61 67 65 3e 0a 00 00 se>...</changelog>.</package>...
07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0800 58 4d 4c 5f 52 50 43 2d 31 2e 30 2e 33 2f 52 50 43 2e 70 68 70 00 00 00 00 00 00 00 00 00 00 00 XML_RPC-1.0.3/RPC.php...........
0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0860 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......
0880 20 31 30 31 33 34 34 20 20 37 34 37 32 30 31 35 31 32 36 20 20 20 37 32 33 37 20 00 00 00 00 00 .101344..7472015126...7237......
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 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
0a20 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>.//.
0a40 24 49 64 3a 20 52 50 43 2e 70 68 70 2c 76 20 31 2e 37 20 32 30 30 32 2f 30 35 2f 31 39 20 32 31 $Id:.RPC.php,v.1.7.2002/05/19.21
0a60 3a 33 34 3a 31 34 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 20 :34:14.ssb.Exp.$..//.License.is.
0a80 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 6f granted.to.use.or.modify.this.so
0aa0 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 6f ftware.("XML-RPC.for.PHP").//.fo
0ac0 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 75 r.commercial.or.non-commercial.u
0ae0 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 65 se.provided.the.copyright.of.the
0b00 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 64 .author.//.is.preserved.in.any.d
0b20 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 0a istributed.or.derivative.work...
0b40 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 20 //.THIS.SOFTWARE.IS.PROVIDED.BY.
0b60 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 50 THE.AUTHOR.``AS.IS''.AND.ANY.EXP
0b80 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 2c RESSED.OR.//.IMPLIED.WARRANTIES,
0ba0 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 20 .INCLUDING,.BUT.NOT.LIMITED.TO,.
0bc0 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 52 THE.IMPLIED.WARRANTIES.//.OF.MER
0be0 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 50 CHANTABILITY.AND.FITNESS.FOR.A.P
0c00 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 44 ARTICULAR.PURPOSE.ARE.DISCLAIMED
0c20 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 4f ..//.IN.NO.EVENT.SHALL.THE.AUTHO
0c40 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 49 R.BE.LIABLE.FOR.ANY.DIRECT,.INDI
0c60 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 58 RECT,.//.INCIDENTAL,.SPECIAL,.EX
0c80 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 45 EMPLARY,.OR.CONSEQUENTIAL.DAMAGE
0ca0 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 44 S.(INCLUDING,.BUT.//.NOT.LIMITED
0cc0 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 47 .TO,.PROCUREMENT.OF.SUBSTITUTE.G
0ce0 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 20 0a OODS.OR.SERVICES;.LOSS.OF.USE,..
0d00 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
0d20 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
0d40 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,
0d60 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
0d80 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
0da0 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
0dc0 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
0de0 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
0e00 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.
0e20 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
0e40 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
0e60 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
0e80 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";.
0ea0 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
0ec0 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
0ee0 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
0f00 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("
0f20 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.{....
0f40 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
0f60 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
0f80 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
0fa0 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";.$
0fc0 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
0fe0 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']="
1000 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
1020 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
1040 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";.$
1060 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"
1080 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
10a0 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'
10c0 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'].=
10e0 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,............................
1100 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'].=>.
1120 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,..............................
1140 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'].=
1160 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,............................
1180 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'].
11a0 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,...........................
11c0 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']
11e0 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,..........................
1200 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
1220 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,.......................
1240 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
1260 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,......................
1280 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
12a0 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,......................
12c0 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
12e0 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_
1300 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".=>.'"',.
1320 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 ................................
1340 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".=>."&",................
1360 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".=>."<",
1380 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 ................................
13a0 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".=>.">",................
13c0 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".=>."'
13e0 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
1400 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_
1420 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
1440 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_
1460 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
1480 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
14a0 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
14c0 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
14e0 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
1500 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
1520 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
1540 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.
1560 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
1580 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"]
15a0 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
15c0 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
15e0 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['
1600 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;.$
1620 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
1640 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
1660 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
1680 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";..//.
16a0 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
16c0 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 20 0a 2f OBALS['XML_RPC_erruser']=800;../
16e0 2f 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 /.let.XML.parse.errors.start.at.
1700 31 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 100.$GLOBALS['XML_RPC_errxml']=1
1720 30 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 00;..//.formulate.backslashes.fo
1740 72 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 r.escaping.regexp.$GLOBALS['XML_
1760 52 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 RPC_backslash']=chr(92).chr(92);
1780 0a 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 ..$GLOBALS['XML_RPC_twoslash']=$
17a0 47 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 GLOBALS['XML_RPC_backslash']...$
17c0 47 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 GLOBALS['XML_RPC_backslash'];.$G
17e0 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 22 32 53 4c 53 LOBALS['XML_RPC_twoslash']="2SLS
1800 22 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 ";.//.used.to.store.state.during
1820 20 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 .parsing.//.quick.explanation.of
1840 20 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 .components:.//...st.-.used.to.b
1860 75 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 uild.up.a.string.for.evaluation.
1880 2f 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 //...ac.-.used.to.accumulate.val
18a0 75 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 ues.//...qt.-.used.to.decide.if.
18c0 71 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 quotes.are.needed.for.evaluation
18e0 0a 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 .//...cm.-.used.to.denote.struct
1900 20 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 .or.array.(comma.needed).//...is
1920 66 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 f.-.used.to.indicate.a.fault.//.
1940 20 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 ..lv.-.used.to.indicate."looking
1960 20 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 .for.a.value":.implements.//....
1980 20 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 ....the.logic.to.allow.values.wi
19a0 74 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 th.no.types.to.be.strings.//...p
19c0 61 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 arams.-.used.to.store.parameters
19e0 20 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 .in.method.calls.//...method.-.u
1a00 73 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 sed.to.store.method.name..$GLOBA
1a20 4c 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 LS['XML_RPC_xh']=array();..funct
1a40 69 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 ion.XML_RPC_entity_decode($strin
1a60 67 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 g).{.....$top=split("&",.$string
1a80 29 3b 0a 20 20 20 20 24 6f 70 3d 22 22 3b 0a 20 20 20 20 24 69 3d 30 3b 20 0a 20 20 20 20 77 68 );.....$op="";.....$i=0;......wh
1aa0 69 6c 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 ile($i<sizeof($top)).{.........i
1ac0 66 20 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 f.(ereg("^([#a-zA-Z0-9]+);",.$to
1ae0 70 5b 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 p[$i],.$regs)).{.............$op
1b00 2e 3d 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 .=ereg_replace("^[#a-zA-Z0-9]+;"
1b20 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 20 ,...............................
1b40 58 4d 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 XML_RPC_lookup_entity($regs[1]),
1b60 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 24 ...............................$
1b80 74 6f 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 top[$i]);.........}.else.{......
1ba0 20 20 20 20 20 20 20 69 66 20 28 24 69 3d 3d 30 29 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .......if.($i==0)...............
1bc0 20 20 20 24 6f 70 3d 24 74 6f 70 5b 24 69 5d 3b 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6c ...$op=$top[$i];..............el
1be0 73 65 0a 20 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 se.................$op.="&"...$t
1c00 6f 70 5b 24 69 5d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 0a 20 20 20 20 20 20 20 20 24 op[$i];.........}..............$
1c20 69 2b 2b 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 24 6f 70 3b 0a 7d 0a 0a 0a 66 i++;.....}.....return.$op;.}...f
1c40 75 6e 63 74 69 6f 6e 20 58 4d 4c 5f 52 50 43 5f 6c 6f 6f 6b 75 70 5f 65 6e 74 69 74 79 28 24 65 unction.XML_RPC_lookup_entity($e
1c60 6e 74 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 6e 74 69 74 69 nt).{.....global.$XML_RPC_entiti
1c80 65 73 3b 0a 20 20 20 20 0a 20 20 20 20 69 66 20 28 24 58 4d 4c 5f 52 50 43 5f 65 6e 74 69 74 69 es;..........if.($XML_RPC_entiti
1ca0 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 65 6e 74 29 5d 29 20 0a 20 20 20 20 20 20 20 20 72 es[strtolower($ent)])..........r
1cc0 65 74 75 72 6e 20 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 eturn.$XML_RPC_entities[strtolow
1ce0 65 72 28 24 65 6e 74 29 5d 3b 0a 20 20 20 20 0a 20 20 20 20 69 66 20 28 65 72 65 67 28 22 5e 23 er($ent)];..........if.(ereg("^#
1d00 28 5b 30 2d 39 5d 2b 29 24 22 2c 20 24 65 6e 74 2c 20 24 72 65 67 73 29 29 0a 20 20 20 20 20 20 ([0-9]+)$",.$ent,.$regs)).......
1d20 20 20 72 65 74 75 72 6e 20 63 68 72 28 24 72 65 67 73 5b 31 5d 29 3b 0a 20 20 20 20 20 20 20 20 ..return.chr($regs[1]);.........
1d40 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 74 69 6f 6e 20 58 4d .....return."?";.}...function.XM
1d60 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 24 61 74 74 72 73 29 L_RPC_se($parser,.$name,.$attrs)
1d80 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 2c 20 24 58 4d 4c 5f .{.....global.$XML_RPC_xh,.$XML_
1da0 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 72 69 6e 67 3b 0a 20 RPC_DateTime,.$XML_RPC_String;..
1dc0 20 20 20 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 73 65 ........switch($name).{.....case
1de0 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 20 20 ."STRUCT":.....case."ARRAY":....
1e00 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 2e .....$XML_RPC_xh[$parser]['st'].
1e20 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 68 5b 24 ="array(";.........$XML_RPC_xh[$
1e40 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 68 69 73 parser]['cm']++;.........//.this
1e60 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 20 20 20 .last.line.turns.quoting.off....
1e80 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 61 6e 20 .....//.this.means.if.we.get.an.
1ea0 65 6d 70 74 79 20 61 72 72 61 79 20 77 65 27 6c 6c 20 0a 20 20 20 20 20 20 20 20 2f 2f 20 73 69 empty.array.we'll..........//.si
1ec0 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 6e 20 mply.get.a.bit.of.whitespace.in.
1ee0 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 70 61 the.eval.........$XML_RPC_xh[$pa
1f00 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 20 20 rser]['qt']=0;.........break;...
1f20 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 43 5f ..case."NAME":.........$XML_RPC_
1f40 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 50 43 xh[$parser]['st'].="'";.$XML_RPC
1f60 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 20 62 _xh[$parser]['ac']="";.........b
1f80 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 20 20 reak;.....case."FAULT":.........
1fa0 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 0a 20 $XML_RPC_xh[$parser]['isf']=1;..
1fc0 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 3a 0a .......break;.....case."PARAM":.
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 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 20 22 ']="";.........break;.....case."
2020 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 61 72 VALUE":.........$XML_RPC_xh[$par
2040 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 28 22 ser]['st'].="new.XML_RPC_Value("
2060 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 5d 5b ;..........$XML_RPC_xh[$parser][
2080 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 61 'lv']=1;.........$XML_RPC_xh[$pa
20a0 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 20 rser]['vt']=$XML_RPC_String;....
20c0 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']=
20e0 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]
2100 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 20 ['qt']=0;.........//.look.for.a.
2120 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 65 value:.if.this.is.still.1.by.the
2140 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 69 .........//.time.we.reach.the.fi
2160 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 69 rst.data.segment.then.the.type.i
2180 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 69 s.string.........//.by.implicati
21a0 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 65 on.and.we.need.to.add.in.a.quote
21c0 0a 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 0a 20 20 20 .........break;.................
21e0 20 63 61 73 65 20 22 49 34 22 3a 0a 20 20 20 20 63 61 73 65 20 22 49 4e 54 22 3a 0a 20 20 20 20 .case."I4":.....case."INT":.....
2200 63 61 73 65 20 22 53 54 52 49 4e 47 22 3a 0a 20 20 20 20 63 61 73 65 20 22 42 4f 4f 4c 45 41 4e case."STRING":.....case."BOOLEAN
2220 22 3a 0a 20 20 20 20 63 61 73 65 20 22 44 4f 55 42 4c 45 22 3a 0a 20 20 20 20 63 61 73 65 20 22 ":.....case."DOUBLE":.....case."
2240 44 41 54 45 54 49 4d 45 2e 49 53 4f 38 36 30 31 22 3a 0a 20 20 20 20 63 61 73 65 20 22 42 41 53 DATETIME.ISO8601":.....case."BAS
2260 45 36 34 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 E64":.........$XML_RPC_xh[$parse
2280 72 5d 5b 27 61 63 27 5d 3d 22 22 3b 20 2f 2f 20 72 65 73 65 74 20 74 68 65 20 61 63 63 75 6d 75 r]['ac']="";.//.reset.the.accumu
22a0 6c 61 74 6f 72 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 6e 61 6d 65 lator..................if.($name
22c0 3d 3d 22 44 41 54 45 54 49 4d 45 2e 49 53 4f 38 36 30 31 22 20 7c 7c 20 24 6e 61 6d 65 3d 3d 22 =="DATETIME.ISO8601".||.$name=="
22e0 53 54 52 49 4e 47 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 STRING").{.............$XML_RPC_
2300 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 71 74 27 5d 3d 31 3b 20 0a 20 20 20 20 20 20 20 20 20 20 xh[$parser]['qt']=1;............
2320 20 20 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
2340 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
2360 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
2380 43 5f 44 61 74 65 54 69 6d 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 C_DateTime;.....................
23a0 20 7d 20 65 6c 73 65 20 69 66 20 28 24 6e 61 6d 65 3d 3d 22 42 41 53 45 36 34 22 29 20 7b 0a 20 .}.else.if.($name=="BASE64").{..
23c0 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][
23e0 27 71 74 27 5d 3d 32 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 'qt']=2;.........}.else.{.......
2400 20 20 20 20 20 20 2f 2f 20 4e 6f 20 71 75 6f 74 69 6e 67 20 69 73 20 72 65 71 75 69 72 65 64 20 ......//.No.quoting.is.required.
2420 68 65 72 65 20 2d 2d 20 62 75 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 61 74 20 74 68 here.--.but.............//.at.th
2440 65 20 65 6e 64 20 6f 66 20 74 68 65 20 65 6c 65 6d 65 6e 74 20 77 65 20 6d 75 73 74 20 63 68 65 e.end.of.the.element.we.must.che
2460 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 66 6f 72 20 64 61 74 61 20 66 6f 72 6d 61 ck.............//.for.data.forma
2480 74 20 65 72 72 6f 72 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 t.errors..............$XML_RPC_x
24a0 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 7d 0a 20 20 h[$parser]['qt']=0;.........}...
24c0 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 0a 20 20 20 20 63 61 73 65 20 22 4d 45 4d 42 ......break;..........case."MEMB
24e0 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 24 70 61 72 73 65 72 ER":.........$XML_RPC_xh[$parser
2500 5d 5b 27 61 63 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 64 ]['ac']="";.........break;.....d
2520 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 7d 0a 20 20 20 efault:.........break;.....}....
2540 20 0a 20 20 20 20 69 66 20 28 24 6e 61 6d 65 21 3d 22 56 41 4c 55 45 22 29 20 24 58 4d 4c 5f 52 ......if.($name!="VALUE").$XML_R
2560 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 6c 76 27 5d 3d 30 3b 0a 7d 0a 0a 0a 66 75 6e 63 PC_xh[$parser]['lv']=0;.}...func
2580 74 69 6f 6e 20 58 4d 4c 5f 52 50 43 5f 65 65 28 24 70 61 72 73 65 72 2c 20 24 6e 61 6d 65 29 0a tion.XML_RPC_ee($parser,.$name).
25a0 7b 0a 20 20 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 78 68 2c 24 58 4d 4c 5f 52 50 {.....global.$XML_RPC_xh,$XML_RP
25c0 43 5f 54 79 70 65 73 2c 24 58 4d 4c 5f 52 50 43 5f 53 74 72 69 6e 67 3b 0a 0a 20 20 20 20 73 77 C_Types,$XML_RPC_String;......sw
25e0 69 74 63 68 28 24 6e 61 6d 65 29 20 7b 0a 20 20 20 20 63 61 73 65 20 22 53 54 52 55 43 54 22 3a itch($name).{.....case."STRUCT":
2600 0a 20 20 20 20 63 61 73 65 20 22 41 52 52 41 59 22 3a 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 .....case."ARRAY":.........if.($
2620 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 63 6d 27 5d 20 26 26 20 73 75 62 XML_RPC_xh[$parser]['cm'].&&.sub
2640 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 5d 2c 20 str($XML_RPC_xh[$parser]['st'],.
2660 2d 31 29 20 3d 3d 27 2c 27 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 -1).==',').{.............$XML_RP
2680 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 73 74 27 5d 3d 73 75 62 73 74 72 28 24 58 4d 4c 5f C_xh[$parser]['st']=substr($XML_
26a0 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 73 74 27 5d 2c 30 2c 2d 31 29 3b 0a 20 20 20 RPC_xh[$parser]['st'],0,-1);....
26c0 20 20 20 20 20 7d 0a 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 .....}..................$XML_RPC
26e0 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 73 74 27 5d 2e 3d 22 29 22 3b 20 20 20 20 0a 20 20 20 _xh[$parser]['st'].=")";........
2700 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']=
2720 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_
2740 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']--;........
2760 20 62 72 65 61 6b 3b 0a 20 20 20 20 0a 20 20 20 20 63 61 73 65 20 22 4e 41 4d 45 22 3a 0a 20 20 .break;..........case."NAME":...
2780 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 27 5d ......$XML_RPC_xh[$parser]['st']
27a0 2e 3d 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 20 2e 20 .=.$XML_RPC_xh[$parser]['ac']...
27c0 22 27 20 3d 3e 20 22 3b 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 0a 20 20 20 "'.=>.";.........break;.........
27e0 20 63 61 73 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 .case."BOOLEAN":.........//.spec
2800 69 61 6c 20 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 ial.case.here:.we.translate.bool
2820 65 61 6e 20 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 ean.1.or.0.into.PHP.........//.c
2840 6f 6e 73 74 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 onstants.true.or.false.........i
2860 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 61 63 27 5d 3d 3d 27 f.($XML_RPC_xh[$parser]['ac']=='
2880 31 27 29 20 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
28a0 72 73 65 72 5d 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 rser]['ac']="true";.........else
28c0 20 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 73 65 ..............$XML_RPC_xh[$parse
28e0 72 5d 5b 27 61 63 27 5d 3d 22 66 61 6c 73 65 22 3b 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 r]['ac']="false";...............
2900 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 73 74 ...$XML_RPC_xh[$parser]['vt']=st
2920 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 2f 2f 20 44 72 6f 70 rtolower($name);.........//.Drop
2940 20 74 68 72 6f 75 67 68 20 69 6e 74 65 6e 74 69 6f 6e 61 6c 6c 79 2e 0a 20 20 20 20 20 20 20 20 .through.intentionally..........
2960 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 49 4e 54 22 3a 0a .....case."I4":.....case."INT":.
2980 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 65 20 22 44 4f 55 ....case."STRING":.....case."DOU
29a0 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 4f 38 36 30 31 BLE":.....case."DATETIME.ISO8601
29c0 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 20 20 20 69 66 ":.....case."BASE64":.........if
29e0 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 31 29 .($XML_RPC_xh[$parser]['qt']==1)
2a00 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 6f 75 62 6c 65 20 .{.............//.we.use.double.
2a20 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 73 6f 20 62 61 63 quotes.rather.than.single.so.bac
2a40 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 20 20 20 20 20 20 kslashification.works.OK........
2a60 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 2e .....$XML_RPC_xh[$parser]['st'].
2a80 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 5d 5b 27 61 63 27 ="\""..$XML_RPC_xh[$parser]['ac'
2aa0 5d 20 2e 20 22 5c 22 22 3b 20 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 24 58 ]..."\"";..........}.else.if.($X
2ac0 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 29 20 7b 0a 20 ML_RPC_xh[$parser]['qt']==2).{..
2ae0 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][
2b00 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 58 4d 4c 5f 52 'st'].="base64_decode('"..$XML_R
2b20 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 3b 20 0a 20 20 PC_xh[$parser]['ac']..."')";....
2b40 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 4c 45 41 4e ......}.else.if.($name=="BOOLEAN
2b60 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 5b 24 70 61 ").{.............$XML_RPC_xh[$pa
2b80 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 72 73 65 72 rser]['st'].=$XML_RPC_xh[$parser
2ba0 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 20 20 20 20 ]['ac'];.........}.else.{.......
2bc0 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 6f 72 20 61 ......//.we.have.an.I4,.INT.or.a
2be0 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 73 74 20 63 .DOUBLE.............//.we.must.c
2c00 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 73 70 61 63 heck.that.only.0123456789-.<spac
2c20 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 20 20 20 20 e>.are.characters.here..........
2c40 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 39 20 5c 74 ...if.(!ereg("^\-?[0123456789.\t
2c60 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 5b 27 61 63 \.]+$",.$XML_RPC_xh[$parser]['ac
2c80 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 44 4f 3a 20 '])).{.................//.TODO:.
2ca0 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 67 20 61 6e find.a.better.way.of.throwing.an
2cc0 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 61 6e 20 74 .error.................//.than.t
2ce0 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 6f 67 28 22 his!.................error_log("
2d00 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 65 63 65 69 XML-RPC:.non.numeric.value.recei
2d20 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 20 20 20 20 ved.in.INT.or.DOUBLE");.........
2d40 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
2d60 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 22 3b 20 20 '].="ERROR_NON_NUMERIC_FOUND";..
2d80 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a .......................}.else.{.
2da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 69 74 27 73 20 6f 6b 2c 20 61 64 64 20 ................//.it's.ok,.add.
2dc0 69 74 20 6f 6e 0a 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 78 it.on.................$XML_RPC_x
2de0 68 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 h[$parser]['st'].=$XML_RPC_xh[$p
2e00 61 72 73 65 72 5d 5b 27 61 63 27 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 arser]['ac'];.............}.....
2e20 20 20 20 20 7d 0a 20 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 ....}...................$XML_RPC
2e40 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 43 5f _xh[$parser]['ac']="";.$XML_RPC_
2e60 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 24 58 4d xh[$parser]['qt']=0;.........$XM
2e80 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 6c 76 27 5d 3d 33 3b 20 2f 2f 20 69 6e L_RPC_xh[$parser]['lv']=3;.//.in
2ea0 64 69 63 61 74 65 20 77 65 27 76 65 20 66 6f 75 6e 64 20 61 20 76 61 6c 75 65 0a 20 20 20 20 20 dicate.we've.found.a.value......
2ec0 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 0a 20 20 20 20 63 61 73 65 20 22 56 41 4c 55 45 22 3a ...break;..........case."VALUE":
2ee0 0a 20 20 20 20 20 20 20 20 2f 2f 20 64 65 61 6c 20 77 69 74 68 20 61 20 73 74 72 69 6e 67 20 76 .........//.deal.with.a.string.v
2f00 61 6c 75 65 0a 20 20 20 20 20 20 20 20 69 66 20 28 73 74 72 6c 65 6e 28 24 58 4d 4c 5f 52 50 43 alue.........if.(strlen($XML_RPC
2f20 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 61 63 27 5d 29 3e 30 20 26 26 0a 20 20 20 20 20 20 20 _xh[$parser]['ac'])>0.&&........
2f40 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']=
2f60 3d 24 58 4d 4c 5f 52 50 43 5f 53 74 72 69 6e 67 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 =$XML_RPC_String).{.............
2f80 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 73 65 72 .............$XML_RPC_xh[$parser
2fa0 5d 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 ]['st'].="\""..$XML_RPC_xh[$pars
2fc0 65 72 5d 5b 27 61 63 27 5d 20 2e 20 22 5c 22 22 3b 20 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 er]['ac']..."\"";..........}....
2fe0 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 2f 2f 20 54 68 69 73 20 69 66 28 29 20 64 65 74 65 63 ..............//.This.if().detec
3000 74 73 20 69 66 20 6e 6f 20 73 63 61 6c 61 72 20 77 61 73 20 69 6e 73 69 64 65 20 3c 56 41 4c 55 ts.if.no.scalar.was.inside.<VALU
3020 45 3e 3c 2f 56 41 4c 55 45 3e 0a 20 20 20 20 20 20 20 20 2f 2f 20 61 6e 64 20 70 61 64 73 20 61 E></VALUE>.........//.and.pads.a
3040 6e 20 65 6d 70 74 79 20 22 22 2e 0a 20 20 20 20 20 20 20 20 69 66 28 24 58 4d 4c 5f 52 50 43 5f n.empty.""..........if($XML_RPC_
3060 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 73 74 27 5d 5b 73 74 72 6c 65 6e 28 24 58 4d 4c 5f 52 50 xh[$parser]['st'][strlen($XML_RP
3080 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 73 74 27 5d 29 2d 31 5d 20 3d 3d 20 27 28 27 29 20 C_xh[$parser]['st'])-1].==.'(').
30a0 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 73 65 {.............$XML_RPC_xh[$parse
30c0 72 5d 5b 27 73 74 27 5d 2e 3d 20 27 22 22 27 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 r]['st'].=.'""';.........}......
30e0 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 22 ...$XML_RPC_xh[$parser]['st'].="
3100 2c 20 27 22 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 76 74 27 ,.'"...$XML_RPC_xh[$parser]['vt'
3120 5d 20 2e 20 22 27 29 22 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 58 4d 4c 5f 52 50 43 5f 78 ]..."')";.........if.($XML_RPC_x
3140 68 5b 24 70 61 72 73 65 72 5d 5b 27 63 6d 27 5d 29 20 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 h[$parser]['cm']).$XML_RPC_xh[$p
3160 61 72 73 65 72 5d 5b 27 73 74 27 5d 2e 3d 22 2c 22 3b 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b arser]['st'].=",";.........break
3180 3b 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 63 61 73 65 20 22 4d 45 4d 42 45 52 22 3a 0a 20 20 ;..............case."MEMBER":...
31a0 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']
31c0 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 3d ="";.$XML_RPC_xh[$parser]['qt']=
31e0 30 3b 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 63 0;.........break;..............c
3200 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 50 43 5f 78 68 5b ase."DATA":.........$XML_RPC_xh[
3220 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[$
3240 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;.
3260 20 20 20 20 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 20 24 .........case."PARAM":.........$
3280 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 5d 3d XML_RPC_xh[$parser]['params'][]=
32a0 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 20 20 $XML_RPC_xh[$parser]['st'];.....
32c0 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 0a 20 20 20 20 63 61 73 65 20 22 4d 45 54 48 4f 44 ....break;..........case."METHOD
32e0 4e 41 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 NAME":.........$XML_RPC_xh[$pars
3300 65 72 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 er]['method']=ereg_replace("^[\n
3320 5c 72 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 \r\t.]+",."",.$XML_RPC_xh[$parse
3340 72 5d 5b 27 61 63 27 5d 29 3b 0a 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 0a 20 r]['ac']);.........break;.......
3360 20 20 20 63 61 73 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 ...case."BOOLEAN":.........//.sp
3380 65 63 69 61 6c 20 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 ecial.case.here:.we.translate.bo
33a0 6f 6c 65 61 6e 20 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 olean.1.or.0.into.PHP.........//
33c0 20 63 6f 6e 73 74 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 .constants.true.or.false........
33e0 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 61 63 27 5d 3d .if.($XML_RPC_xh[$parser]['ac']=
3400 3d 27 31 27 29 20 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 ='1')..............$XML_RPC_xh[$
3420 70 61 72 73 65 72 5d 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 parser]['ac']="true";.........el
3440 73 65 20 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 se..............$XML_RPC_xh[$par
3460 73 65 72 5d 5b 27 61 63 27 5d 3d 22 66 61 6c 73 65 22 3b 0a 20 20 20 20 20 20 20 20 0a 20 20 20 ser]['ac']="false";.............
3480 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']=
34a0 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 62 72 65 61 6b strtolower($name);.........break
34c0 3b 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 20 20 20 ;..............default:.........
34e0 62 72 65 61 6b 3b 0a 20 20 20 20 7d 0a 20 20 20 20 2f 2f 20 69 66 20 69 74 27 73 20 61 20 76 61 break;.....}.....//.if.it's.a.va
3500 6c 69 64 20 74 79 70 65 20 6e 61 6d 65 2c 20 73 65 74 20 74 68 65 20 74 79 70 65 0a 20 20 20 20 lid.type.name,.set.the.type.....
3520 69 66 20 28 69 73 73 65 74 28 24 58 4d 4c 5f 52 50 43 5f 54 79 70 65 73 5b 73 74 72 74 6f 6c 6f if.(isset($XML_RPC_Types[strtolo
3540 77 65 72 28 24 6e 61 6d 65 29 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 wer($name)])).{.........$XML_RPC
3560 5f 78 68 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 _xh[$parser]['vt']=strtolower($n
3580 61 6d 65 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 58 4d 4c 5f 52 50 43 ame);.....}.}...function.XML_RPC
35a0 5f 63 64 28 24 70 61 72 73 65 72 2c 20 24 64 61 74 61 29 0a 7b 20 20 20 0a 20 20 20 20 67 6c 6f _cd($parser,.$data).{........glo
35c0 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 61 63 6b 73 6c bal.$XML_RPC_xh,.$XML_RPC_backsl
35e0 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 72 20 5c 74 5d ash;......//if.(ereg("^[\n\r.\t]
3600 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 20 70 72 69 6e +$",.$data)).return;.....//.prin
3620 74 20 22 61 64 64 69 6e 67 20 5b 24 7b 64 61 74 61 7d 5d 5c 6e 22 3b 0a 20 20 20 20 0a 20 20 20 t."adding.[${data}]\n";.........
3640 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 21 .if.($XML_RPC_xh[$parser]['lv']!
3660 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 3d =3).{.........//."lookforvalue==
3680 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 74 3".means.that.we've.found.an.ent
36a0 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 20 ire.value.........//.and.should.
36c0 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 61 discard.any.further.character.da
36e0 74 61 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 58 4d 4c 5f 52 50 43 ta..................if.($XML_RPC
3700 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 6c 76 27 5d 3d 3d 31 29 20 7b 20 20 0a 20 20 20 20 20 _xh[$parser]['lv']==1).{........
3720 20 20 20 20 20 20 20 2f 2f 20 69 66 20 77 65 27 76 65 20 66 6f 75 6e 64 20 74 65 78 74 20 61 6e .......//.if.we've.found.text.an
3740 64 20 77 65 27 72 65 20 6a 75 73 74 20 69 6e 20 61 20 3c 76 61 6c 75 65 3e 20 74 68 65 6e 0a 20 d.we're.just.in.a.<value>.then..
3760 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 74 75 72 6e 20 71 75 6f 74 69 6e 67 20 6f 6e 2c 20 61 ...........//.turn.quoting.on,.a
3780 73 20 74 68 69 73 20 77 69 6c 6c 20 62 65 20 61 20 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 s.this.will.be.a.string.........
37a0 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
37c0 3b 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 61 6e 64 20 73 61 79 20 77 65 27 76 65 20 ;..............//.and.say.we've.
37e0 66 6f 75 6e 64 20 61 20 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 found.a.value.............$XML_R
3800 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 6c 76 27 5d 3d 32 3b 20 0a 20 20 20 20 20 20 20 PC_xh[$parser]['lv']=2;.........
3820 20 7d 0a 20 20 20 20 0a 20 20 20 20 20 20 20 20 2f 2f 20 72 65 70 6c 61 63 65 20 63 68 61 72 61 .}..............//.replace.chara
3840 63 74 65 72 73 20 74 68 61 74 20 65 76 61 6c 20 77 6f 75 6c 64 0a 20 20 20 20 20 20 20 20 2f 2f cters.that.eval.would.........//
3860 20 64 6f 20 73 70 65 63 69 61 6c 20 74 68 69 6e 67 73 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 .do.special.things.with.........
3880 40 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 2e 3d 73 74 72 @$XML_RPC_xh[$parser]['ac'].=str
38a0 5f 72 65 70 6c 61 63 65 28 27 24 27 2c 20 27 5c 24 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 _replace('$',.'\$',.............
38c0 73 74 72 5f 72 65 70 6c 61 63 65 28 27 22 27 2c 20 27 5c 22 27 2c 20 73 74 72 5f 72 65 70 6c 61 str_replace('"',.'\"',.str_repla
38e0 63 65 28 63 68 72 28 39 32 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c ce(chr(92),.................$XML
3900 5f 52 50 43 5f 62 61 63 6b 73 6c 61 73 68 2c 20 24 64 61 74 61 29 29 29 3b 0a 20 20 20 20 7d 0a _RPC_backslash,.$data)));.....}.
3920 7d 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 58 4d 4c 5f 52 50 43 5f 64 68 28 24 70 61 72 73 65 72 2c }...function.XML_RPC_dh($parser,
3940 20 24 64 61 74 61 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 .$data).{.....global.$XML_RPC_xh
3960 3b 0a 20 20 20 20 69 66 20 28 73 75 62 73 74 72 28 24 64 61 74 61 2c 20 30 2c 20 31 29 20 3d 3d ;.....if.(substr($data,.0,.1).==
3980 20 22 26 22 20 26 26 20 73 75 62 73 74 72 28 24 64 61 74 61 2c 20 2d 31 2c 20 31 29 20 3d 3d 20 ."&".&&.substr($data,.-1,.1).==.
39a0 22 3b 22 29 20 7b 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 ";").{.........if.($XML_RPC_xh[$
39c0 70 61 72 73 65 72 5d 5b 27 6c 76 27 5d 3d 3d 31 29 20 7b 20 20 0a 20 20 20 20 20 20 20 20 20 20 parser]['lv']==1).{.............
39e0 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 3b 20 ..$XML_RPC_xh[$parser]['qt']=1;.
3a00 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 73 65 72 .............$XML_RPC_xh[$parser
3a20 5d 5b 27 6c 76 27 5d 3d 32 3b 20 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 58 ]['lv']=2;..........}.........$X
3a40 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 5b 27 61 63 27 5d 2e 3d 73 74 72 5f 72 65 ML_RPC_xh[$parser]['ac'].=str_re
3a60 70 6c 61 63 65 28 27 24 27 2c 20 27 5c 24 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 place('$',.'\$',.............str
3a80 5f 72 65 70 6c 61 63 65 28 27 22 27 2c 20 27 5c 22 27 2c 20 73 74 72 5f 72 65 70 6c 61 63 65 28 _replace('"',.'\"',.str_replace(
3aa0 63 68 72 28 39 32 29 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 chr(92),.................$XML_RP
3ac0 43 5f 62 61 63 6b 73 6c 61 73 68 2c 20 24 64 61 74 61 29 29 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a C_backslash,.$data)));.....}.}..
3ae0 0a 63 6c 61 73 73 20 58 4d 4c 5f 52 50 43 5f 43 6c 69 65 6e 74 0a 7b 0a 20 20 20 20 76 61 72 20 .class.XML_RPC_Client.{.....var.
3b00 24 70 61 74 68 3b 0a 20 20 20 20 76 61 72 20 24 73 65 72 76 65 72 3b 0a 20 20 20 20 76 61 72 20 $path;.....var.$server;.....var.
3b20 24 70 6f 72 74 3b 0a 20 20 20 20 76 61 72 20 24 65 72 72 6e 6f 3b 0a 20 20 20 20 76 61 72 20 24 $port;.....var.$errno;.....var.$
3b40 65 72 72 73 74 72 69 6e 67 3b 0a 20 20 20 20 76 61 72 20 24 64 65 62 75 67 3d 30 3b 0a 20 20 20 errstring;.....var.$debug=0;....
3b60 20 76 61 72 20 24 75 73 65 72 6e 61 6d 65 3d 22 22 3b 0a 20 20 20 20 76 61 72 20 24 70 61 73 73 .var.$username="";.....var.$pass
3b80 77 6f 72 64 3d 22 22 3b 0a 20 20 20 20 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 58 4d 4c 5f 52 word="";..........function.XML_R
3ba0 50 43 5f 43 6c 69 65 6e 74 28 24 70 61 74 68 2c 20 24 73 65 72 76 65 72 2c 20 24 70 6f 72 74 3d PC_Client($path,.$server,.$port=
3bc0 38 30 2c 20 24 70 72 6f 78 79 3d 22 22 2c 20 24 70 72 6f 78 79 5f 70 6f 72 74 3d 38 30 38 30 29 80,.$proxy="",.$proxy_port=8080)
3be0 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 6f 72 74 3d 24 70 6f 72 74 .....{.........$this->port=$port
3c00 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 73 65 72 76 65 72 3d 24 73 65 72 76 65 72 3b ;.........$this->server=$server;
3c20 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 61 74 68 3d 24 70 61 74 68 3b 0a 20 20 20 20 .........$this->path=$path;.....
3c40 20 20 20 20 24 74 68 69 73 2d 3e 70 72 6f 78 79 20 3d 20 24 70 72 6f 78 79 3b 20 0a 20 20 20 20 ....$this->proxy.=.$proxy;......
3c60 20 20 20 20 24 74 68 69 73 2d 3e 70 72 6f 78 79 5f 70 6f 72 74 20 3d 20 24 70 72 6f 78 79 5f 70 ....$this->proxy_port.=.$proxy_p
3c80 6f 72 74 20 3b 20 20 20 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 ort.;........}......function.set
3ca0 44 65 62 75 67 28 24 69 6e 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 69 6e Debug($in).....{.........if.($in
3cc0 29 20 7b 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 64 65 62 75 67 3d 31 3b ).{..............$this->debug=1;
3ce0 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 20 20 20 20 24 74 .........}.else.{.............$t
3d00 68 69 73 2d 3e 64 65 62 75 67 3d 30 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 his->debug=0;.........}.....}...
3d20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 72 65 64 65 6e 74 69 61 6c 73 28 24 75 2c 20 24 ...function.setCredentials($u,.$
3d40 70 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 75 73 65 72 6e 61 6d 65 p).....{.........$this->username
3d60 3d 24 75 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 61 73 73 77 6f 72 64 3d 24 70 3b =$u;.........$this->password=$p;
3d80 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 65 6e 64 28 24 6d 73 67 2c 20 .....}......function.send($msg,.
3da0 24 74 69 6d 65 6f 75 74 3d 30 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 77 68 65 $timeout=0).....{.........//.whe
3dc0 72 65 20 6d 73 67 20 69 73 20 61 6e 20 78 6d 6c 72 70 63 6d 73 67 0a 20 20 20 20 20 20 20 20 24 re.msg.is.an.xmlrpcmsg.........$
3de0 6d 73 67 2d 3e 64 65 62 75 67 3d 24 74 68 69 73 2d 3e 64 65 62 75 67 3b 0a 20 20 20 20 20 20 20 msg->debug=$this->debug;........
3e00 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 65 6e 64 50 61 79 6c 6f 61 64 48 54 54 50 31 30 .return.$this->sendPayloadHTTP10
3e20 28 24 6d 73 67 2c 20 24 74 68 69 73 2d 3e 73 65 72 76 65 72 2c 20 24 74 68 69 73 2d 3e 70 6f 72 ($msg,.$this->server,.$this->por
3e40 74 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 t,..............................
3e60 20 20 20 20 20 20 20 20 20 20 20 24 74 69 6d 65 6f 75 74 2c 20 24 74 68 69 73 2d 3e 75 73 65 72 ...........$timeout,.$this->user
3e80 6e 61 6d 65 2c 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 name,...........................
3ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 61 73 73 77 6f 72 64 29 3b ...............$this->password);
3ec0 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 65 6e 64 50 61 79 6c 6f 61 64 .....}......function.sendPayload
3ee0 48 54 54 50 31 30 28 24 6d 73 67 2c 20 24 73 65 72 76 65 72 2c 20 24 70 6f 72 74 2c 20 24 74 69 HTTP10($msg,.$server,.$port,.$ti
3f00 6d 65 6f 75 74 3d 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 meout=0,........................
3f20 20 20 20 20 20 20 20 20 24 75 73 65 72 6e 61 6d 65 3d 22 22 2c 20 24 70 61 73 73 77 6f 72 64 3d ........$username="",.$password=
3f40 22 22 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 49 66 20 77 65 27 72 65 20 75 73 "").....{.........//.If.we're.us
3f60 69 6e 67 20 61 20 70 72 6f 78 79 20 6f 70 65 6e 20 61 20 73 6f 63 6b 65 74 20 74 6f 20 74 68 65 ing.a.proxy.open.a.socket.to.the
3f80 20 70 72 6f 78 79 20 73 65 72 76 65 72 20 69 6e 73 74 65 61 64 20 74 6f 20 74 68 65 20 78 6d 6c .proxy.server.instead.to.the.xml
3fa0 2d 72 70 63 20 73 65 72 76 65 72 0a 20 20 20 20 20 20 20 20 69 66 28 24 74 68 69 73 2d 3e 70 72 -rpc.server.........if($this->pr
3fc0 6f 78 79 29 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 20 oxy){.............if($timeout.>.
3fe0 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 70 0).{.................$fp=fsockop
4000 65 6e 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 en($this->proxy,.$this->proxy_po
4020 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 65 72 72 73 74 72 2c rt,.$this->errno,.$this->errstr,
4040 20 24 74 69 6d 65 6f 75 74 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 .$timeout);.............}.......
4060 20 20 20 20 20 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 66 70 ......else.{.................$fp
4080 3d 66 73 6f 63 6b 6f 70 65 6e 28 24 74 68 69 73 2d 3e 70 72 6f 78 79 2c 20 24 74 68 69 73 2d 3e =fsockopen($this->proxy,.$this->
40a0 70 72 6f 78 79 5f 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 proxy_port,.$this->errno,.$this-
40c0 3e 65 72 72 73 74 72 29 3b 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 20 >errstr);.......................
40e0 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 ..}.........}...................
4100 20 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 .else.{.............if($timeout.
4120 3e 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 >.0).{.................$fp=fsock
4140 6f 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 open($server,.$port,.$this->errn
4160 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 3b 0a 20 20 20 o,.$this->errstr,.$timeout);....
4180 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 20 7b 0a 20 20 .........}.............else.{...
41a0 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 28 24 73 65 72 ..............$fp=fsockopen($ser
41c0 76 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 ver,.$port,.$this->errno,.$this-
41e0 3e 65 72 72 73 74 72 29 3b 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d >errstr);......................}
4200 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 28 21 24 66 70 20 26 26 20 24 .........}..........if(!$fp.&&.$
4220 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 50 45 41 52 3a this->proxy).{.............PEAR:
4240 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 70 72 6f 78 79 :raiseError("Connection.to.proxy
4260 20 73 65 72 76 65 72 20 22 2e 24 74 68 69 73 2d 3e 70 72 6f 78 79 2e 22 3a 22 2e 24 74 68 69 73 .server.".$this->proxy.":".$this
4280 2d 3e 70 72 6f 78 79 5f 70 6f 72 74 2e 22 20 66 61 69 6c 65 64 22 29 3b 0a 20 20 20 20 20 20 20 ->proxy_port.".failed");........
42a0 20 7d 0a 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 28 21 24 66 70 29 20 7b 0a 20 20 20 20 20 .}.........else.if(!$fp).{......
42c0 20 20 20 20 20 20 20 50 45 41 52 3a 3a 72 61 69 73 65 45 72 72 6f 72 28 22 43 6f 6e 6e 65 63 74 .......PEAR::raiseError("Connect
42e0 69 6f 6e 20 74 6f 20 52 50 43 20 73 65 72 76 65 72 20 22 2e 24 74 68 69 73 2d 3e 73 65 72 76 65 ion.to.RPC.server.".$this->serve
4300 72 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 20 r.".failed");.........}.........
4320 0a 20 20 20 20 20 20 20 20 2f 2f 20 4f 6e 6c 79 20 63 72 65 61 74 65 20 74 68 65 20 70 61 79 6c .........//.Only.create.the.payl
4340 6f 61 64 20 69 66 20 69 74 20 77 61 73 20 6e 6f 74 20 63 72 65 61 74 65 64 20 70 72 65 76 69 6f oad.if.it.was.not.created.previo
4360 75 73 6c 79 0a 20 20 20 20 20 20 20 20 69 66 28 65 6d 70 74 79 28 24 6d 73 67 2d 3e 70 61 79 6c usly.........if(empty($msg->payl
4380 6f 61 64 29 29 20 24 6d 73 67 2d 3e 63 72 65 61 74 65 50 61 79 6c 6f 61 64 28 29 3b 0a 20 20 20 oad)).$msg->createPayload();....
43a0 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 2f 2f 20 74 68 61 6e 6b 73 20 74 6f 20 47 72 61 6e 74 ..............//.thanks.to.Grant
43c0 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 6c 64 2e 6e 65 74 .Rauscher.<grant7@firstworld.net
43e0 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 20 20 20 20 24 63 >.........//.for.this.........$c
4400 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 28 24 75 73 65 72 redentials="";.........if.($user
4420 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 72 65 64 65 6e 74 name!="").{.............$credent
4440 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 20 22 20 2e 0a 20 ials="Authorization:.Basic."....
4460 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 28 24 75 73 ...............base64_encode($us
4480 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 2e 20 22 5c 72 5c ername...":"...$password)..."\r\
44a0 6e 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 0a 20 20 20 20 n";.........}...................
44c0 20 20 20 20 69 66 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 ....if($this->proxy).{..........
44e0 20 20 20 24 6f 70 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 ...$op.=."POST.http://"...$this-
4500 3e 73 65 72 76 65 72 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 20 >server;........................
4520 20 20 69 66 28 24 74 68 69 73 2d 3e 70 72 6f 78 79 5f 70 6f 72 74 29 20 7b 0a 20 20 20 20 20 20 ..if($this->proxy_port).{.......
4540 20 20 20 20 20 20 20 20 20 20 24 6f 70 20 2e 3d 20 22 3a 22 20 2e 20 24 74 68 69 73 2d 3e 70 6f ..........$op..=.":"...$this->po
4560 72 74 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 rt;.............}.........}.....
4580 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 24 6f 70 20 3d 20 22 50 4f 53 ....else.{............$op.=."POS
45a0 54 20 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 0a 20 20 20 20 20 20 20 20 24 6f 70 20 T.";.........}..............$op.
45c0 2e 3d 20 24 74 68 69 73 2d 3e 70 61 74 68 2e 20 22 20 48 54 54 50 2f 31 2e 30 5c 72 5c 6e 55 73 .=.$this->path..".HTTP/1.0\r\nUs
45e0 65 72 2d 41 67 65 6e 74 3a 20 50 48 50 20 58 4d 4c 52 50 43 20 31 2e 30 5c 72 5c 6e 22 20 2e 0a er-Agent:.PHP.XMLRPC.1.0\r\n"...
4600 20 20 20 20 20 20 20 20 20 20 20 20 22 48 6f 73 74 3a 20 22 2e 20 24 74 68 69 73 2d 3e 73 65 72 ............"Host:."..$this->ser
4620 76 65 72 20 20 2e 20 22 5c 72 5c 6e 22 20 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 72 65 ver...."\r\n"...............$cre
4640 64 65 6e 74 69 61 6c 73 20 2e 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 43 6f 6e 74 65 6e 74 dentials................"Content
4660 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 65 6e 67 74 -Type:.text/xml\r\nContent-Lengt
4680 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 73 67 2d 3e h:."...............strlen($msg->
46a0 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 20 20 20 20 payload)..."\r\n\r\n"...........
46c0 20 20 20 20 24 6d 73 67 2d 3e 70 61 79 6c 6f 61 64 3b 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 ....$msg->payload;..............
46e0 20 20 20 20 2f 2f 20 70 72 69 6e 74 28 24 6f 70 29 3b 0a 20 20 20 20 0a 20 20 20 20 20 20 20 20 ....//.print($op);..............
4700 69 66 20 28 21 66 70 75 74 73 28 24 66 70 2c 20 24 6f 70 2c 20 73 74 72 6c 65 6e 28 24 6f 70 29 if.(!fputs($fp,.$op,.strlen($op)
4720 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 65 72 72 73 74 72 3d 22 )).{.............$this->errstr="
4740 57 72 69 74 65 20 65 72 72 6f 72 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e Write.error";.............return
4760 20 30 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 72 65 73 70 3d 24 6d 73 67 .0;.........}.........$resp=$msg
4780 2d 3e 70 61 72 73 65 52 65 73 70 6f 6e 73 65 46 69 6c 65 28 24 66 70 29 3b 0a 20 20 20 20 20 20 ->parseResponseFile($fp);.......
47a0 20 20 66 63 6c 6f 73 65 28 24 66 70 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 72 ..fclose($fp);.........return.$r
47c0 65 73 70 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 52 65 73 esp;.....}.}...class.XML_RPC_Res
47e0 70 6f 6e 73 65 0a 7b 0a 20 20 20 20 76 61 72 20 24 78 76 3b 0a 20 20 20 20 76 61 72 20 24 66 6e ponse.{.....var.$xv;.....var.$fn
4800 3b 0a 20 20 20 20 76 61 72 20 24 66 73 3b 0a 20 20 20 20 76 61 72 20 24 68 64 72 73 3b 0a 0a 20 ;.....var.$fs;.....var.$hdrs;...
4820 20 20 20 66 75 6e 63 74 69 6f 6e 20 58 4d 4c 5f 52 50 43 5f 52 65 73 70 6f 6e 73 65 28 24 76 61 ...function.XML_RPC_Response($va
4840 6c 2c 20 24 66 63 6f 64 65 3d 30 2c 20 24 66 73 74 72 3d 22 22 29 0a 20 20 20 20 7b 0a 20 20 20 l,.$fcode=0,.$fstr="").....{....
4860 20 20 20 20 20 69 66 20 28 24 66 63 6f 64 65 21 3d 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 .....if.($fcode!=0).{...........
4880 20 20 24 74 68 69 73 2d 3e 66 6e 3d 24 66 63 6f 64 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..$this->fn=$fcode;.............
48a0 24 74 68 69 73 2d 3e 66 73 3d 68 74 6d 6c 73 70 65 63 69 61 6c 63 68 61 72 73 28 24 66 73 74 72 $this->fs=htmlspecialchars($fstr
48c0 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 20 20 20 20 );.........}.else.{.............
48e0 24 74 68 69 73 2d 3e 78 76 3d 24 76 61 6c 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a $this->xv=$val;.........}.....}.
4900 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 61 75 6c 74 43 6f 64 65 28 29 20 0a 20 20 20 20 7b .....function.faultCode()......{
4920 20 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 6e 29 29 20 ..........if.(isset($this->fn)).
4940 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 6e 3b 0a 20 .............return.$this->fn;..
4960 20 20 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 30 .......else.............return.0
4980 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 66 61 75 6c 74 53 74 72 69 6e ;.....}......function.faultStrin
49a0 67 28 29 20 7b 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 73 3b 20 7d 0a 20 20 20 20 66 75 g().{.return.$this->fs;.}.....fu
49c0 6e 63 74 69 6f 6e 20 76 61 6c 75 65 28 29 20 7b 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 78 nction.value().{.return.$this->x
49e0 76 3b 20 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 28 29 20 7b v;.}......function.serialize().{
4a00 20 0a 20 20 20 20 20 20 20 20 24 72 73 3d 22 3c 6d 65 74 68 6f 64 52 65 73 70 6f 6e 73 65 3e 5c ..........$rs="<methodResponse>\
4a20 6e 22 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 66 6e 29 20 7b 0a 20 20 20 n";.........if.($this->fn).{....
4a40 20 20 20 20 20 20 20 20 20 24 72 73 2e 3d 22 3c 66 61 75 6c 74 3e 0a 20 20 3c 76 61 6c 75 65 3e .........$rs.="<fault>...<value>
4a60 0a 20 20 20 20 3c 73 74 72 75 63 74 3e 0a 20 20 20 20 20 20 3c 6d 65 6d 62 65 72 3e 0a 20 20 20 .....<struct>.......<member>....
4a80 20 20 20 20 20 3c 6e 61 6d 65 3e 66 61 75 6c 74 43 6f 64 65 3c 2f 6e 61 6d 65 3e 0a 20 20 20 20 .....<name>faultCode</name>.....
4aa0 20 20 20 20 3c 76 61 6c 75 65 3e 3c 69 6e 74 3e 22 20 2e 20 24 74 68 69 73 2d 3e 66 6e 20 2e 20 ....<value><int>"...$this->fn...
4ac0 22 3c 2f 69 6e 74 3e 3c 2f 76 61 6c 75 65 3e 0a 20 20 20 20 20 20 3c 2f 6d 65 6d 62 65 72 3e 0a "</int></value>.......</member>.
4ae0 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 61 75 ......<member>.........<name>fau
4b00 6c 74 53 74 72 69 6e 67 3c 2f 6e 61 6d 65 3e 0a 20 20 20 20 20 20 20 20 3c 76 61 6c 75 65 3e 3c ltString</name>.........<value><
4b20 73 74 72 69 6e 67 3e 22 20 2e 20 24 74 68 69 73 2d 3e 66 73 20 2e 20 22 3c 2f 73 74 72 69 6e 67 string>"...$this->fs..."</string
4b40 3e 3c 2f 76 61 6c 75 65 3e 0a 20 20 20 20 20 20 3c 2f 6d 65 6d 62 65 72 3e 0a 20 20 20 20 3c 2f ></value>.......</member>.....</
4b60 73 74 72 75 63 74 3e 0a 20 20 3c 2f 76 61 6c 75 65 3e 0a 3c 2f 66 61 75 6c 74 3e 22 3b 0a 20 20 struct>...</value>.</fault>";...
4b80 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 24 72 73 2e 3d ......}.else.{.............$rs.=
4ba0 22 3c 70 61 72 61 6d 73 3e 5c 6e 3c 70 61 72 61 6d 3e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 78 "<params>\n<param>\n"...$this->x
4bc0 76 2d 3e 73 65 72 69 61 6c 69 7a 65 28 29 20 2e 20 0a 20 20 20 20 20 20 20 20 22 3c 2f 70 61 72 v->serialize()............"</par
4be0 61 6d 3e 5c 6e 3c 2f 70 61 72 61 6d 73 3e 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 am>\n</params>";.........}......
4c00 20 20 20 24 72 73 2e 3d 22 5c 6e 3c 2f 6d 65 74 68 6f 64 52 65 73 70 6f 6e 73 65 3e 22 3b 0a 20 ...$rs.="\n</methodResponse>";..
4c20 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 7d 0a 0a 0a 63 6c 61 .......return.$rs;.....}.}...cla
4c40 73 73 20 58 4d 4c 5f 52 50 43 5f 4d 65 73 73 61 67 65 0a 7b 0a 20 20 20 20 76 61 72 20 24 70 61 ss.XML_RPC_Message.{.....var.$pa
4c60 79 6c 6f 61 64 3b 0a 20 20 20 20 76 61 72 20 24 6d 65 74 68 6f 64 6e 61 6d 65 3b 0a 20 20 20 20 yload;.....var.$methodname;.....
4c80 76 61 72 20 24 70 61 72 61 6d 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 76 61 72 20 24 var.$params.=.array();.....var.$
4ca0 64 65 62 75 67 3d 30 3b 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 58 4d 4c 5f 52 50 43 5f 4d debug=0;......function.XML_RPC_M
4cc0 65 73 73 61 67 65 28 24 6d 65 74 68 2c 20 24 70 61 72 73 3d 30 29 0a 20 20 20 20 7b 0a 20 20 20 essage($meth,.$pars=0).....{....
4ce0 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 20 20 .....$this->methodname=$meth;...
4d00 20 20 20 20 20 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 70 61 72 73 29 20 26 26 20 73 69 7a ......if.(is_array($pars).&&.siz
4d20 65 6f 66 28 24 70 61 72 73 29 3e 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 28 eof($pars)>0).{.............for(
4d40 24 69 3d 30 3b 20 24 69 3c 73 69 7a 65 6f 66 28 24 70 61 72 73 29 3b 20 24 69 2b 2b 29 20 0a 20 $i=0;.$i<sizeof($pars);.$i++)...
4d60 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 50 61 72 61 6d 28 24 ...............$this->addParam($
4d80 70 61 72 73 5b 24 69 5d 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 pars[$i]);.........}.....}......
4da0 66 75 6e 63 74 69 6f 6e 20 78 6d 6c 5f 68 65 61 64 65 72 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 function.xml_header().....{.....
4dc0 72 65 74 75 72 6e 20 22 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 5c 22 31 2e 30 5c 22 3f 3e 5c return."<?xml.version=\"1.0\"?>\
4de0 6e 3c 6d 65 74 68 6f 64 43 61 6c 6c 3e 5c 6e 22 3b 0a 20 20 20 20 7d 0a 20 20 20 20 0a 20 20 20 n<methodCall>\n";.....}.........
4e00 20 66 75 6e 63 74 69 6f 6e 20 78 6d 6c 5f 66 6f 6f 74 65 72 28 29 0a 20 20 20 20 7b 0a 20 20 20 .function.xml_footer().....{....
4e20 20 72 65 74 75 72 6e 20 22 3c 2f 6d 65 74 68 6f 64 43 61 6c 6c 3e 5c 6e 22 3b 0a 20 20 20 20 7d .return."</methodCall>\n";.....}
4e40 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 50 61 79 6c 6f 61 64 28 29 0a 20 ......function.createPayload()..
4e60 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 61 79 6c 6f 61 64 3d 24 74 68 69 ...{.........$this->payload=$thi
4e80 73 2d 3e 78 6d 6c 5f 68 65 61 64 65 72 28 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e s->xml_header();.........$this->
4ea0 70 61 79 6c 6f 61 64 2e 3d 22 3c 6d 65 74 68 6f 64 4e 61 6d 65 3e 22 20 2e 20 24 74 68 69 73 2d payload.="<methodName>"...$this-
4ec0 3e 6d 65 74 68 6f 64 6e 61 6d 65 20 2e 20 22 3c 2f 6d 65 74 68 6f 64 4e 61 6d 65 3e 5c 6e 22 3b >methodname..."</methodName>\n";
4ee0 0a 20 20 20 20 20 20 20 20 2f 2f 20 20 69 66 20 28 73 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 70 .........//..if.(sizeof($this->p
4f00 61 72 61 6d 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 61 79 arams)).{.............$this->pay
4f20 6c 6f 61 64 2e 3d 22 3c 70 61 72 61 6d 73 3e 5c 6e 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 load.="<params>\n";.............
4f40 66 6f 72 28 24 69 3d 30 3b 20 24 69 3c 73 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 70 61 72 61 6d for($i=0;.$i<sizeof($this->param
4f60 73 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 24 70 3d 24 s);.$i++).{.................$p=$
4f80 74 68 69 73 2d 3e 70 61 72 61 6d 73 5b 24 69 5d 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 this->params[$i];...............
4fa0 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 3e 5c 6e 22 20 2e 20 ..$this->payload.="<param>\n"...
4fc0 24 70 2d 3e 73 65 72 69 61 6c 69 7a 65 28 29 20 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 $p->serialize().................
4fe0 20 20 20 20 20 20 22 3c 2f 70 61 72 61 6d 3e 5c 6e 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ......"</param>\n";.............
5000 7d 0a 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 22 3c }.............$this->payload.="<
5020 2f 70 61 72 61 6d 73 3e 5c 6e 22 3b 0a 20 20 20 20 20 20 20 20 2f 2f 20 7d 0a 20 20 20 20 20 20 /params>\n";.........//.}.......
5040 20 20 24 74 68 69 73 2d 3e 70 61 79 6c 6f 61 64 2e 3d 24 74 68 69 73 2d 3e 78 6d 6c 5f 66 6f 6f ..$this->payload.=$this->xml_foo
5060 74 65 72 28 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 61 79 6c 6f 61 64 3d 73 74 ter();.........$this->payload=st
5080 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 22 5c 72 5c 6e 22 2c 20 24 74 68 69 73 2d 3e 70 r_replace("\n",."\r\n",.$this->p
50a0 61 79 6c 6f 61 64 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 6d 65 74 ayload);.....}......function.met
50c0 68 6f 64 28 24 6d 65 74 68 3d 22 22 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 hod($meth="").....{.........if.(
50e0 24 6d 65 74 68 21 3d 22 22 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e $meth!="").{.............$this->
5100 6d 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 7d 0a 20 20 20 20 methodname=$meth;.........}.....
5120 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 65 74 68 6f 64 6e 61 6d 65 3b 0a 20 20 ....return.$this->methodname;...
5140 20 20 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 28 29 0a 20 20 ..}......function.serialize()...
5160 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 50 61 79 6c 6f 61 64 ..{.........$this->createPayload
5180 28 29 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 79 6c 6f 61 ();.........return.$this->payloa
51a0 64 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 50 61 72 61 6d 28 d;.....}......function.addParam(
51c0 24 70 61 72 29 20 7b 20 24 74 68 69 73 2d 3e 70 61 72 61 6d 73 5b 5d 3d 24 70 61 72 3b 20 7d 0a $par).{.$this->params[]=$par;.}.
51e0 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 72 61 6d 28 24 69 29 20 7b 20 72 65 74 75 ....function.getParam($i).{.retu
5200 72 6e 20 24 74 68 69 73 2d 3e 70 61 72 61 6d 73 5b 24 69 5d 3b 20 7d 0a 20 20 20 20 66 75 6e 63 rn.$this->params[$i];.}.....func
5220 74 69 6f 6e 20 67 65 74 4e 75 6d 50 61 72 61 6d 73 28 29 20 7b 20 72 65 74 75 72 6e 20 73 69 7a tion.getNumParams().{.return.siz
5240 65 6f 66 28 24 74 68 69 73 2d 3e 70 61 72 61 6d 73 29 3b 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 eof($this->params);.}......funct
5260 69 6f 6e 20 70 61 72 73 65 52 65 73 70 6f 6e 73 65 46 69 6c 65 28 24 66 70 29 0a 20 20 20 20 7b ion.parseResponseFile($fp).....{
5280 0a 20 20 20 20 20 20 20 20 24 69 70 64 3d 22 22 3b 0a 0a 20 20 20 20 20 20 20 20 77 68 69 6c 65 .........$ipd="";..........while
52a0 28 24 64 61 74 61 3d 66 72 65 61 64 28 24 66 70 2c 20 33 32 37 36 38 29 29 20 7b 0a 20 20 20 20 ($data=fread($fp,.32768)).{.....
52c0 20 20 20 20 20 20 20 20 24 69 70 64 2e 3d 24 64 61 74 61 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 ........$ipd.=$data;.........}..
52e0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 72 73 65 52 65 73 70 6f 6e .......return.$this->parseRespon
5300 73 65 28 24 69 70 64 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 70 61 se($ipd);.....}......function.pa
5320 72 73 65 52 65 73 70 6f 6e 73 65 28 24 64 61 74 61 3d 22 22 29 0a 20 20 20 20 7b 0a 20 20 20 20 rseResponse($data="").....{.....
5340 20 20 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 78 68 2c 24 58 4d 4c 5f 52 50 43 5f ....global.$XML_RPC_xh,$XML_RPC_
5360 65 72 72 2c 24 58 4d 4c 5f 52 50 43 5f 73 74 72 3b 0a 20 20 20 20 20 20 20 20 67 6c 6f 62 61 6c err,$XML_RPC_str;.........global
5380 20 24 58 4d 4c 5f 52 50 43 5f 64 65 66 65 6e 63 6f 64 69 6e 67 3b 0a 20 20 20 20 0a 20 20 20 20 .$XML_RPC_defencoding;..........
53a0 20 20 20 20 24 70 61 72 73 65 72 20 3d 20 78 6d 6c 5f 70 61 72 73 65 72 5f 63 72 65 61 74 65 28 ....$parser.=.xml_parser_create(
53c0 24 58 4d 4c 5f 52 50 43 5f 64 65 66 65 6e 63 6f 64 69 6e 67 29 3b 0a 0a 20 20 20 20 20 20 20 20 $XML_RPC_defencoding);..........
53e0 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 72 5d 3d 61 72 72 61 79 28 29 3b 0a 0a 20 $XML_RPC_xh[$parser]=array();...
5400 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 27 .......$XML_RPC_xh[$parser]['st'
5420 5d 3d 22 22 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 ]="";..........$XML_RPC_xh[$pars
5440 65 72 5d 5b 27 63 6d 27 5d 3d 30 3b 20 0a 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 78 er]['cm']=0;..........$XML_RPC_x
5460 68 5b 24 70 61 72 73 65 72 5d 5b 27 69 73 66 27 5d 3d 30 3b 20 0a 20 20 20 20 20 20 20 20 24 58 h[$parser]['isf']=0;..........$X
5480 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 3b 0a 20 20 20 ML_RPC_xh[$parser]['ac']="";....
54a0 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 71 74 27 5d 3d .....$XML_RPC_xh[$parser]['qt']=
54c0 22 22 3b 0a 20 20 20 20 0a 20 20 20 20 20 20 20 20 78 6d 6c 5f 70 61 72 73 65 72 5f 73 65 74 5f "";..............xml_parser_set_
54e0 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 53 45 5f option($parser,.XML_OPTION_CASE_
5500 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 65 74 5f FOLDING,.true);.........xml_set_
5520 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 5f 52 50 element_handler($parser,."XML_RP
5540 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 20 78 6d C_se",."XML_RPC_ee");.........xm
5560 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 24 70 61 l_set_character_data_handler($pa
5580 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 78 6d 6c rser,."XML_RPC_cd");.........xml
55a0 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 20 22 58 _set_default_handler($parser,."X
55c0 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 76 61 6c ML_RPC_dh");.........$xmlrpc_val
55e0 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 20 20 20 ue.=.new.XML_RPC_Value;.........
5600 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 2d 3e 64 .$hdrfnd=0;.........if.($this->d
5620 65 62 75 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 20 22 3c 50 52 45 3e 2d 2d ebug).............print."<PRE>--
5640 2d 47 4f 54 2d 2d 2d 5c 6e 22 20 2e 20 68 74 6d 6c 73 70 65 63 69 61 6c 63 68 61 72 73 28 24 64 -GOT---\n"...htmlspecialchars($d
5660 61 74 61 29 20 2e 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 2d 2d 2d 45 4e 44 2d 2d 2d ata)................"\n---END---
5680 5c 6e 3c 2f 50 52 45 3e 22 3b 0a 20 20 20 20 20 20 20 20 2f 2f 20 73 65 65 20 69 66 20 77 65 20 \n</PRE>";.........//.see.if.we.
56a0 67 6f 74 20 61 6e 20 48 54 54 50 20 32 30 30 20 4f 4b 2c 20 65 6c 73 65 20 62 6f 6d 62 0a 20 20 got.an.HTTP.200.OK,.else.bomb...
56c0 20 20 20 20 20 20 2f 2f 20 62 75 74 20 6f 6e 6c 79 20 64 6f 20 74 68 69 73 20 69 66 20 77 65 27 ......//.but.only.do.this.if.we'
56e0 72 65 20 75 73 69 6e 67 20 74 68 65 20 48 54 54 50 20 70 72 6f 74 6f 63 6f 6c 2e 0a 20 20 20 20 re.using.the.HTTP.protocol......
5700 20 20 20 20 69 66 20 28 65 72 65 67 28 22 5e 48 54 54 50 22 2c 24 64 61 74 61 29 20 26 26 20 0a ....if.(ereg("^HTTP",$data).&&..
5720 20 20 20 20 20 20 20 20 20 20 20 20 21 65 72 65 67 28 22 5e 48 54 54 50 2f 5b 30 2d 39 5c 2e 5d ............!ereg("^HTTP/[0-9\.]
5740 2b 20 32 30 30 20 22 2c 20 24 64 61 74 61 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 +.200.",.$data)).{..............
5760 20 20 20 24 65 72 72 73 74 72 3d 20 73 75 62 73 74 72 28 24 64 61 74 61 2c 20 30 2c 20 73 74 72 ...$errstr=.substr($data,.0,.str
5780 70 6f 73 28 24 64 61 74 61 2c 20 22 5c 6e 22 29 2d 31 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 pos($data,."\n")-1);............
57a0 20 20 20 20 20 65 72 72 6f 72 5f 6c 6f 67 28 22 48 54 54 50 20 65 72 72 6f 72 2c 20 67 6f 74 20 .....error_log("HTTP.error,.got.
57c0 72 65 73 70 6f 6e 73 65 3a 20 22 20 2e 24 65 72 72 73 74 72 29 3b 0a 20 20 20 20 20 20 20 20 20 response:."..$errstr);..........
57e0 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 28 30 .......$r=new.XML_RPC_Response(0
5800 2c 20 24 58 4d 4c 5f 52 50 43 5f 65 72 72 5b 22 68 74 74 70 5f 65 72 72 6f 72 22 5d 2c 0a 20 20 ,.$XML_RPC_err["http_error"],...
5820 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 ................................
5840 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 73 74 72 5b 22 68 74 74 70 5f 65 72 72 6f 72 22 5d ......$XML_RPC_str["http_error"]
5860 2e 20 22 20 28 22 20 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..".("..........................
5880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 65 72 72 73 74 72 20 2e 20 22 29 22 29 3b .................$errstr...")");
58a0 0a 20 20 20 20 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 65 65 .................xml_parser_free
58c0 28 24 70 61 72 73 65 72 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 ($parser);.................retur
58e0 6e 20 24 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 2f 2f 20 67 6f 74 74 61 n.$r;.........}.........//.gotta
5900 20 67 65 74 20 72 69 64 20 6f 66 20 68 65 61 64 65 72 73 20 68 65 72 65 0a 20 20 20 20 20 20 20 .get.rid.of.headers.here........
5920 20 69 66 20 28 28 21 24 68 64 72 66 6e 64 29 20 26 26 20 65 72 65 67 28 22 5e 28 2e 2a 29 5c 72 .if.((!$hdrfnd).&&.ereg("^(.*)\r
5940 5c 6e 5c 72 5c 6e 22 2c 24 64 61 74 61 2c 24 58 4d 4c 5f 52 50 43 5f 78 68 5b 24 70 61 72 73 65 \n\r\n",$data,$XML_RPC_xh[$parse
5960 72 5d 5b 27 68 61 27 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 64 61 74 61 3d 65 r]['ha'])).{.............$data=e
5980 72 65 67 5f 72 65 70 6c 61 63 65 28 22 5e 2e 2a 5c 72 5c 6e 5c 72 5c 6e 22 2c 20 22 22 2c 20 24 reg_replace("^.*\r\n\r\n",."",.$
59a0 64 61 74 61 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 0a 20 20 data);.............$hdrfnd=1;...
59c0 20 20 20 20 20 20 7d 0a 20 20 20 20 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 78 6d 6c 5f 70 61 ......}..............if.(!xml_pa
59e0 72 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 rse($parser,.$data,.sizeof($data
5a00 29 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 ))).{.............//.thanks.to.P
5a20 65 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 eter.Kocks.<peter.kocks@baygate.
5a40 63 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 com>.............if((xml_get_cur
5a60 72 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 rent_line_number($parser)).==.1)
5a80 20 20 20 0a 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 ....................$errstr.=."X
5aa0 4d 4c 20 65 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 ML.error.at.line.1,.check.URL";.
5ac0 20 20 20 20 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 ............else................
5ae0 20 24 65 72 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 .$errstr.=.sprintf("XML.error:.%
5b00 73 20 61 74 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 s.at.line.%d",..................
5b20 20 20 20 20 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 .................xml_error_strin
5b40 67 28 78 6d 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 g(xml_get_error_code($parser)),.
5b60 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 ................................
5b80 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 62 65 72 28 24 70 ..xml_get_current_line_number($p
5ba0 61 72 73 65 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 arser));.............error_log($
5bc0 65 72 72 73 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 errstr);.............$r=new.XML_
5be0 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 69 6e RPC_Response(0,.$XML_RPC_err["in
5c00 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 20 20 20 20 20 valid_return"],.................
5c20 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
5c40 5b 22 69 6e 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 ["invalid_return"]);............
5c60 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);......
5c80 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 20 20 20 20 .......return.$r;.........}.....
5ca0 20 20 20 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 ....xml_parser_free($parser);...
5cc0 20 20 20 20 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 ......if.($this->debug).{.......
5ce0 20 20 20 20 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 ......print."<PRE>---EVALING---[
5d00 22 20 2e 20 0a 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 "................strlen($XML_RPC
5d20 5f 78 68 5b 24 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 _xh[$parser]['st'])...".chars]--
5d40 2d 5c 6e 22 20 2e 20 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 -\n"................htmlspecialc
5d60 68 61 72 73 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 5d 29 hars($XML_RPC_xh[$parser]['st'])
5d80 20 2e 20 22 3b 5c 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 ...";\n---END---</PRE>";........
5da0 20 7d 0a 20 20 20 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 .}.........if.(strlen($XML_RPC_x
5dc0 68 5b 24 70 61 72 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 h[$parser]['st'])==0).{.........
5de0 20 20 20 20 2f 2f 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 ....//.then.something.odd.has.ha
5e00 70 70 65 6e 65 64 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 ppened.............//.and.it's.t
5e20 69 6d 65 20 74 6f 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 ime.to.generate.a.client.side.er
5e40 72 6f 72 0a 20 20 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 ror.............//.indicating.so
5e60 6d 65 74 68 69 6e 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 mething.odd.went.on.............
5e80 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 20 24 58 4d 4c 5f $r=new.XML_RPC_Response(0,.$XML_
5ea0 52 50 43 5f 65 72 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 RPC_err["invalid_return"],......
5ec0 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 ................................
5ee0 20 20 24 58 4d 4c 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 ..$XML_RPC_str["invalid_return"]
5f00 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 20 20 20 20 );.........}.else.{.............
5f20 65 76 61 6c 28 27 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 eval('$v='...$XML_RPC_xh[$parser
5f40 5d 5b 27 73 74 27 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 ]['st']...';.$allOK=1;');.......
5f60 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 27 ......if.($XML_RPC_xh[$parser]['
5f80 69 73 66 27 5d 29 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 isf']).{.................$f=$v->
5fa0 73 74 72 75 63 74 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 structmem("faultCode");.........
5fc0 20 20 20 20 20 20 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 ........$fs=$v->structmem("fault
5fe0 53 74 72 69 6e 67 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 String");.................$r=new
6000 20 58 4d 4c 5f 52 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 .XML_RPC_Response($v,.$f->scalar
6020 76 61 6c 28 29 2c 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 val(),..........................
6040 20 20 20 20 20 20 20 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 ....................$fs->scalarv
6060 61 6c 28 29 29 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 al());.............}.else.{.....
6080 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 6f ............$r=new.XML_RPC_Respo
60a0 6e 73 65 28 24 76 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 nse($v);.............}.........}
60c0 0a 20 20 20 20 20 20 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 .........$r->hdrs=split("\r?\n",
60e0 20 24 58 4d 4c 5f 52 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 .$XML_RPC_xh[$parser]['ha'][1]);
6100 0a 20 20 20 20 20 20 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 .........return.$r;.....}..}...c
6120 6c 61 73 73 20 58 4d 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 lass.XML_RPC_Value.{.....var.$me
6140 3d 61 72 72 61 79 28 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 =array();.....var.$mytype=0;....
6160 20 20 66 75 6e 63 74 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 ..function.XML_RPC_Value($val=-1
6180 2c 20 24 74 79 70 65 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 ,.$type="").....{.........global
61a0 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 74 68 69 73 2d 3e .$XML_RPC_Types;.........$this->
61c0 6d 65 3d 61 72 72 61 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 me=array();.........$this->mytyp
61e0 65 3d 30 3b 0a 20 20 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 e=0;.........if.($val!=-1.||.$ty
6200 70 65 21 3d 22 22 29 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 pe!="").{.............if.($type=
6220 3d 22 22 29 20 24 74 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 ="").$type="string";............
6240 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 3d 3d 31 29 20 7b .if.($XML_RPC_Types[$type]==1).{
6260 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 53 63 61 6c 61 .................$this->addScala
6280 72 28 24 76 61 6c 2c 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 r($val,$type);.............}....
62a0 20 20 20 20 20 20 20 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 .........else.if.($XML_RPC_Types
62c0 5b 24 74 79 70 65 5d 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 [$type]==2).................$thi
62e0 73 2d 3e 61 64 64 41 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 s->addArray($val);.............e
6300 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 3d 3d 33 lse.if.($XML_RPC_Types[$type]==3
6320 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 53 74 72 75 ).................$this->addStru
6340 63 74 28 24 76 61 6c 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 ct($val);.........}.....}......f
6360 75 6e 63 74 69 6f 6e 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 unction.addScalar($val,.$type="s
6380 74 72 69 6e 67 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 tring").....{.........global.$XM
63a0 4c 5f 52 50 43 5f 54 79 70 65 73 2c 20 24 58 4d 4c 5f 52 50 43 5f 42 6f 6f 6c 65 61 6e 3b 0a 20 L_RPC_Types,.$XML_RPC_Boolean;..
63c0 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 6d 79 74 79 70 ................if.($this->mytyp
63e0 65 3d 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 e==1).{.............echo."<B>XML
6400 5f 52 50 43 5f 56 61 6c 75 65 3c 2f 42 3e 3a 20 73 63 61 6c 61 72 20 63 61 6e 20 68 61 76 65 20 _RPC_Value</B>:.scalar.can.have.
6420 6f 6e 6c 79 20 6f 6e 65 20 76 61 6c 75 65 3c 42 52 3e 22 3b 0a 20 20 20 20 20 20 20 20 20 20 20 only.one.value<BR>";............
6440 20 72 65 74 75 72 6e 20 30 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 24 74 79 .return.0;.........}.........$ty
6460 70 65 6f 66 3d 24 58 4d 4c 5f 52 50 43 5f 54 79 70 65 73 5b 24 74 79 70 65 5d 3b 0a 20 20 20 20 peof=$XML_RPC_Types[$type];.....
6480 20 20 20 20 69 66 20 28 24 74 79 70 65 6f 66 21 3d 31 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ....if.($typeof!=1).{...........
64a0 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 6e 6f ..echo."<B>XML_RPC_Value</B>:.no
64c0 74 20 61 20 73 63 61 6c 61 72 20 74 79 70 65 20 28 24 7b 74 79 70 65 6f 66 7d 29 3c 42 52 3e 22 t.a.scalar.type.(${typeof})<BR>"
64e0 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 20 20 20 ;.............return.0;.........
6500 7d 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 79 70 65 3d 3d 24 58 }..................if.($type==$X
6520 4d 4c 5f 52 50 43 5f 42 6f 6f 6c 65 61 6e 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 ML_RPC_Boolean).{.............if
6540 20 28 73 74 72 63 61 73 65 63 6d 70 28 24 76 61 6c 2c 22 74 72 75 65 22 29 3d 3d 30 20 7c 7c 20 .(strcasecmp($val,"true")==0.||.
6560 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 76 61 6c 3d 3d 31 20 7c 7c 20 0a 20 20 20 .................$val==1.||.....
6580 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 26 26 20 0a 20 20 20 .............($val==true.&&.....
65a0 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 70 28 24 76 61 6c .................strcasecmp($val
65c0 2c 22 66 61 6c 73 65 22 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,"false"))).{...................
65e0 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 76 61 6c 3d 31 3b 0a 20 .......................$val=1;..
6600 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 20 ...........}.else.{.............
6620 20 20 20 20 24 76 61 6c 3d 30 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 ....$val=0;.............}.......
6640 20 20 7d 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e ..}..................if.($this->
6660 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 2f 20 77 65 27 72 mytype==2).{.............//.we'r
6680 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 20 20 20 20 20 20 e.adding.to.an.array.here.......
66a0 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 22 5d 3b 0a 20 20 ......$ar=$this->me["array"];...
66c0 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 43 5f 56 61 6c 75 ..........$ar[]=new.XML_RPC_Valu
66e0 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 20 20 24 74 68 69 e($val,.$type);.............$thi
6700 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 20 20 7d 20 65 6c s->me["array"]=$ar;.........}.el
6720 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 61 72 2c 20 73 6f se.{.............//.a.scalar,.so
6740 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 72 20 77 65 27 72 .set.the.value.and.remember.we'r
6760 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 2d 3e 6d 65 5b 24 e.scalar.............$this->me[$
6780 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 68 69 73 2d 3e 6d type]=$val;.............$this->m
67a0 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 20 20 20 20 20 20 ytype=$typeof;.........}........
67c0 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 6e 20 61 .return.1;.....}......function.a
67e0 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 20 20 20 67 6c 6f ddArray($vals).....{.........glo
6800 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 69 66 20 28 bal.$XML_RPC_Types;.........if.(
6820 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 20 20 20 20 $this->mytype!=0).{.............
6840 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 61 6c 72 65 echo."<B>XML_RPC_Value</B>:.alre
6860 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 20 0a 20 20 20 20 20 ady.initialized.as.a.[".........
6880 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 2e 20 22 5d 3c ...........$this->kindOf()..."]<
68a0 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;.....
68c0 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 3d 24 58 4d 4c ....}.........$this->mytype=$XML
68e0 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 20 20 24 74 68 _RPC_Types["array"];.........$th
6900 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 20 20 20 20 72 is->me["array"]=$vals;.........r
6920 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 61 64 64 eturn.1;.....}......function.add
6940 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 20 67 6c 6f 62 Struct($vals).....{.........glob
6960 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 69 66 20 28 24 al.$XML_RPC_Types;.........if.($
6980 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 20 20 20 20 65 this->mytype!=0).{.............e
69a0 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 61 6c 72 65 61 cho."<B>XML_RPC_Value</B>:.alrea
69c0 64 79 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 61 73 20 61 20 5b 22 20 2e 20 0a 20 20 20 20 20 20 dy.initialized.as.a.["..........
69e0 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 52 3e 22 3b ......$this->kindOf()..."]<BR>";
6a00 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 20 20 20 7d .............return.0;.........}
6a20 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 52 50 43 5f .........$this->mytype=$XML_RPC_
6a40 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 69 73 2d 3e Types["struct"];.........$this->
6a60 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 72 65 74 75 me["struct"]=$vals;.........retu
6a80 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 6d 70 28 24 rn.1;.....}......function.dump($
6aa0 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 3b 0a 20 20 ar).....{.........reset($ar);...
6ac0 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 61 6c 20 29 ......while.(.list(.$key,.$val.)
6ae0 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 20 20 20 65 .=.each(.$ar.).).{.............e
6b00 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 20 20 20 20 cho."$key.=>.$val<br>";.........
6b20 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 20 20 20 20 ....if.($key.==.'array')........
6b40 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 2c 20 24 76 .........while.(.list(.$key2,.$v
6b60 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 20 20 20 20 al2.).=.each(.$val.).).{........
6b80 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 3d 3e 20 24 .............echo."--.$key2.=>.$
6ba0 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 0a 20 20 20 val2<br>";.................}....
6bc0 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 69 6e 64 4f .....}.....}......function.kindO
6be0 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 69 73 2d 3e f().....{.........switch($this->
6c00 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 73 65 20 33 mytype).{.................case.3
6c20 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 20 22 73 74 :.....................return."st
6c40 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 72 65 61 6b ruct";.....................break
6c60 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 20 20 20 20 ;.................case.2:.......
6c80 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 3b 0a 20 20 ..............return."array";...
6ca0 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 20 20 20 20 ..................break;........
6cc0 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 20 20 20 20 .........case.1:................
6ce0 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 20 20 20 20 .....return."scalar";...........
6d00 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;................
6d20 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 72 65 .default:.....................re
6d40 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 7d 0a 0a 20 turn."undef";.........}.....}...
6d60 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 79 70 2c 20 ...function.serializedata($typ,.
6d80 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 20 20 20 20 $val).....{.........$rs="";.....
6da0 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 58 4d 4c 5f ....global.$XML_RPC_Types,.$XML_
6dc0 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 20 24 58 4d RPC_Base64,.$XML_RPC_String,.$XM
6de0 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 68 28 24 58 L_RPC_Boolean;.........switch($X
6e00 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 20 20 20 20 ML_RPC_Types[$typ]).{...........
6e20 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 20 73 74 72 ..case.3:.................//.str
6e40 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 74 72 75 63 uct.................$rs.="<struc
6e60 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 28 24 76 61 t>\n";.................reset($va
6e80 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 73 74 28 24 l);.................while(list($
6ea0 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 20 20 20 20 key2,.$val2)=each($val)).{......
6ec0 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 3e 3c 6e 61 ...............$rs.="<member><na
6ee0 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 20 20 20 20 me>${key2}</name>\n";...........
6f00 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 69 7a 65 76 ..........$rs.=$this->serializev
6f20 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 20 20 20 24 al($val2);.....................$
6f40 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 20 20 20 20 rs.="</member>\n";..............
6f60 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 2f 73 74 72 ...}.................$rs.="</str
6f80 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 3b 0a 20 20 uct>";.................break;...
6fa0 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 20 20 20 20 ..........case.2:...............
6fc0 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 72 73 2e 3d ..//.array.................$rs.=
6fe0 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 20 20 20 20 "<array>\n<data>\n";............
7000 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 6c 29 3b 20 .....for($i=0;.$i<sizeof($val);.
7020 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 24 72 73 2e $i++).{.....................$rs.
7040 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 5d 29 3b 0a =$this->serializeval($val[$i]);.
7060 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 20 20 ................}...............
7080 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 20 20 20 20 ..$rs.="</data>\n</array>";.....
70a0 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 20 63 ............break;.............c
70c0 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 68 20 28 24 ase.1:.................switch.($
70e0 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 61 73 65 20 typ).{.....................case.
7100 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 20 20 20 20 $XML_RPC_Base64:................
7120 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 61 73 65 36 .........$rs.="<${typ}>"...base6
7140 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 3b 0a 20 20 4_encode($val)..."</${typ}>";...
7160 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 0a 20 20 20 ......................break;....
7180 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 50 43 5f 42 .................case.$XML_RPC_B
71a0 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 20 20 20 20 oolean:.........................
71c0 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 22 20 3a 20 $rs.="<${typ}>"...($val.?."1".:.
71e0 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 20 20 20 20 "0")..."</${typ}>";.............
7200 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 20 20 ............break;..............
7220 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 0a 20 20 20 .......case.$XML_RPC_String:....
7240 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 24 7b 74 79 .....................$rs.="<${ty
7260 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 29 2e 20 22 p}>"...htmlspecialchars($val).."
7280 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 20 20 20 20 </${typ}>";.....................
72a0 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 20 20 20 64 ....break;.....................d
72c0 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 20 20 20 20 efault:.........................
72e0 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 3e 22 3b 0a $rs.="<${typ}>${val}</${typ}>";.
7300 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 20 20 ................}...............
7320 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 3a 0a 20 20 ..break;.............default:...
7340 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 7d 0a 20 ..............break;.........}..
7360 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 20 20 66 75 .......return.$rs;.....}......fu
7380 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 20 20 20 20 nction.serialize().....{........
73a0 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 24 74 68 69 .return.$this->serializeval($thi
73c0 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 61 6c 69 7a s);.....}......function.serializ
73e0 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 6c 20 24 58 eval($o).....{.........global.$X
7400 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 3b 0a 20 20 ML_RPC_Types;.........$rs="";...
7420 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 73 65 74 28 ......$ar=$o->me;.........reset(
7440 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 6c 29 20 3d $ar);.........list($typ,.$val).=
7460 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 61 6c 75 65 .each($ar);.........$rs.="<value
7480 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 61 6c 69 7a >";.........$rs.=$this->serializ
74a0 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 72 73 2e 3d edata($typ,.$val);.........$rs.=
74c0 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 20 24 72 73 "</value>\n";.........return.$rs
74e0 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 6d 65 6d 28 ;.....}......function.structmem(
7500 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 3e 6d 65 5b $m).....{.........$nv=$this->me[
7520 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 6e 20 24 6e "struct"][$m];.........return.$n
7540 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 74 72 65 73 v;.....}......function.structres
7560 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 69 73 2d 3e et().....{.........reset($this->
7580 6d 65 5b 22 73 74 72 75 63 74 22 5d 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 0a 20 20 20 20 66 75 me["struct"]);.....}..........fu
75a0 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().....{.......
75c0 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"
75e0 5d 29 3b 0a 20 20 20 20 7d 0a 20 20 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 76 61 6c ]);.....}........function.getval
7600 28 29 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 ().{.........//.UNSTABLE........
7620 20 67 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 .global.$XML_RPC_BOOLEAN,.$XML_R
7640 50 43 5f 42 61 73 65 36 34 3b 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 72 65 73 65 PC_Base64;..................rese
7660 74 28 24 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 t($this->me);.........list($a,$b
7680 29 3d 65 61 63 68 28 24 74 68 69 73 2d 3e 6d 65 29 3b 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 )=each($this->me);..............
76a0 20 20 20 20 2f 2f 20 63 6f 6e 74 72 69 62 75 74 65 64 20 62 79 20 49 20 53 6f 66 65 72 2c 20 32 ....//.contributed.by.I.Sofer,.2
76c0 30 30 31 2d 30 33 2d 32 34 0a 20 20 20 20 20 20 20 20 2f 2f 20 61 64 64 20 73 75 70 70 6f 72 74 001-03-24.........//.add.support
76e0 20 66 6f 72 20 6e 65 73 74 65 64 20 61 72 72 61 79 73 20 74 6f 20 73 63 61 6c 61 72 76 61 6c 0a .for.nested.arrays.to.scalarval.
7700 20 20 20 20 20 20 20 20 2f 2f 20 69 27 76 65 20 63 72 65 61 74 65 64 20 61 20 6e 65 77 20 6d 65 ........//.i've.created.a.new.me
7720 74 68 6f 64 20 68 65 72 65 2c 20 73 6f 20 61 73 20 74 6f 0a 20 20 20 20 20 20 20 20 2f 2f 20 70 thod.here,.so.as.to.........//.p
7740 72 65 73 65 72 76 65 20 62 61 63 6b 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 0a 0a 20 20 20 20 reserve.back.compatibility......
7760 20 20 20 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 62 29 29 20 20 20 20 7b 0a 20 20 20 20 20 ....if.(is_array($b))....{......
7780 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 62 20 61 73 20 24 69 64 20 3d 3e 20 24 63 6f .......foreach.($b.as.$id.=>.$co
77a0 6e 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 62 5b 24 69 64 5d 20 3d 20 nt).{.................$b[$id].=.
77c0 24 63 6f 6e 74 2d 3e 73 63 61 6c 61 72 76 61 6c 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 $cont->scalarval();.............
77e0 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 61 64 64 20 73 75 70 70 }.........}..........//.add.supp
7800 6f 72 74 20 66 6f 72 20 73 74 72 75 63 74 75 72 65 73 20 64 69 72 65 63 74 6c 79 20 65 6e 63 6f ort.for.structures.directly.enco
7820 64 69 6e 67 20 70 68 70 20 6f 62 6a 65 63 74 73 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 5f ding.php.objects.........if.(is_
7840 6f 62 6a 65 63 74 28 24 62 29 29 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 20 3d 20 object($b))..{.............$t.=.
7860 67 65 74 5f 6f 62 6a 65 63 74 5f 76 61 72 73 28 24 62 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 get_object_vars($b);............
7880 20 66 6f 72 65 61 63 68 20 28 24 74 20 61 73 20 24 69 64 20 3d 3e 20 24 63 6f 6e 74 29 20 7b 0a .foreach.($t.as.$id.=>.$cont).{.
78a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 5b 24 69 64 5d 20 3d 20 24 63 6f 6e 74 2d ................$t[$id].=.$cont-
78c0 3e 73 63 61 6c 61 72 76 61 6c 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 >scalarval();.............}.....
78e0 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 64 20 3d 3e 20 24 63 ........foreach.($t.as.$id.=>.$c
7900 6f 6e 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 76 61 6c 28 27 24 62 2d ont).{.................eval('$b-
7920 3e 27 2e 24 69 64 2e 27 20 3d 20 24 63 6f 6e 74 3b 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 >'.$id.'.=.$cont;');............
7940 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 2f 2f .}.........}..................//
7960 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 6e 20 24 62 3b 0a .end.contrib.........return.$b;.
7980 20 20 20 20 7d 0a 20 20 20 20 0a 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 63 61 6c 61 72 76 61 ....}..........function.scalarva
79a0 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 52 50 l().....{.........global.$XML_RP
79c0 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 20 20 C_Boolean,.$XML_RPC_Base64;.....
79e0 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 6c 69 ....reset($this->me);.........li
7a00 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 20 20 st($a,$b)=each($this->me);......
7a20 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 69 6f ...return.$b;.....}......functio
7a40 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 6f 62 n.scalartyp().....{.........glob
7a60 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 20 20 al.$XML_RPC_I4,.$XML_RPC_Int;...
7a80 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);.........
7aa0 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);....
7ac0 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 20 0a 20 20 20 20 20 .....if.($a==$XML_RPC_I4).......
7ae0 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 20 .......$a=$XML_RPC_Int;.........
7b00 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 61 return.$a;.....}......function.a
7b20 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 74 rraymem($m).....{.........$nv=$t
7b40 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 65 his->me["array"][$m];.........re
7b60 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 72 turn.$nv;.....}......function.ar
7b80 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 74 raysize().....{.........reset($t
7ba0 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 61 his->me);.........list($a,$b)=ea
7bc0 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 69 ch($this->me);.........return.si
7be0 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 20 zeof($b);.....}.}.../**..*.date.
7c00 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 6f helpers..*/.function.XML_RPC_iso
7c20 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 20 8601_encode($timet,.$utc=0).{...
7c40 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 73 ..//.return.an.ISO8601.encoded.s
7c60 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 6f tring.....//.really,.timezones.o
7c80 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 20 ught.to.be.supported.....//.but.
7ca0 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 20 the.XML-RPC.spec.says:.....//...
7cc0 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 49 ..//."Don't.assume.a.timezone..I
7ce0 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 72 t.should.be.specified.by.the.ser
7d00 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 20 ver.in.its.....//.documentation.
7d20 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 20 what.assumptions.it.makes.about.
7d40 74 69 6d 65 7a 6f 6e 65 73 2e 22 0a 20 20 20 20 2f 2f 20 0a 20 20 20 20 2f 2f 20 74 68 65 73 65 timezones.".....//......//.these
7d60 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
7d80 65 20 75 6e 6c 65 73 73 20 0a 20 20 20 20 2f 2f 20 24 75 74 63 20 69 73 20 73 65 74 20 74 6f 20 e.unless......//.$utc.is.set.to.
7da0 31 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 1,.in.which.case.UTC.is.assumed.
7dc0 20 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 ....//.and.an.adjustment.for.loc
7de0 61 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 ale.is.made.when.encoding.....if
7e00 20 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 .(!$utc).{.........$t=strftime("
7e20 25 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 %Y%m%dT%H:%M:%S",.$timet);.....}
7e40 20 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 .else.{.........if.(function_exi
7e60 73 74 73 28 22 67 6d 73 74 72 66 74 69 6d 65 22 29 29 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 sts("gmstrftime"))..............
7e80 2f 2f 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 //.gmstrftime.doesn't.exist.in.s
7ea0 6f 6d 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 ome.versions.............//.of.P
7ec0 48 50 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 HP.............$t=gmstrftime("%Y
7ee0 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 20 20 20 %m%dT%H:%M:%S",.$timet);........
7f00 20 65 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 .else.{.............$t=strftime(
7f20 22 25 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 "%Y%m%dT%H:%M:%S",.$timet-date("
7f40 5a 22 29 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 20 20 0a 20 20 20 20 72 Z"));.........}.....}..........r
7f60 65 74 75 72 6e 20 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 eturn.$t;.}..function.XML_RPC_is
7f80 6f 38 36 30 31 5f 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 o8601_decode($idate,.$utc=0).{..
7fa0 20 20 20 2f 2f 20 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 ...//.return.a.timet.in.the.loca
7fc0 6c 74 69 6d 65 2c 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 ltime,.or.UTC.....$t=0;.....if.(
7fe0 65 72 65 67 28 22 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 ereg("([0-9]{4})([0-9]{2})([0-9]
8000 7b 32 7d 29 54 28 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 {2})T([0-9]{2}):([0-9]{2}):([0-9
8020 5d 7b 32 7d 29 22 2c 24 69 64 61 74 65 2c 20 24 72 65 67 73 29 29 20 7b 0a 20 20 20 20 20 20 20 ]{2})",$idate,.$regs)).{........
8040 20 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 75 74 63 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ..........if.($utc).{...........
8060 20 20 24 74 3d 67 6d 6d 6b 74 69 6d 65 28 24 72 65 67 73 5b 34 5d 2c 20 24 72 65 67 73 5b 35 5d ..$t=gmmktime($regs[4],.$regs[5]
8080 2c 20 24 72 65 67 73 5b 36 5d 2c 20 24 72 65 67 73 5b 32 5d 2c 20 24 72 65 67 73 5b 33 5d 2c 20 ,.$regs[6],.$regs[2],.$regs[3],.
80a0 24 72 65 67 73 5b 31 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 $regs[1]);.........}.else.{.....
80c0 20 20 20 20 20 20 20 20 24 74 3d 6d 6b 74 69 6d 65 28 24 72 65 67 73 5b 34 5d 2c 20 24 72 65 67 ........$t=mktime($regs[4],.$reg
80e0 73 5b 35 5d 2c 20 24 72 65 67 73 5b 36 5d 2c 20 24 72 65 67 73 5b 32 5d 2c 20 24 72 65 67 73 5b s[5],.$regs[6],.$regs[2],.$regs[
8100 33 5d 2c 20 24 72 65 67 73 5b 31 5d 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 20 0a 3],.$regs[1]);.........}.....}..
8120 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 3b 0a 7d 0a 0a 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a .....return.$t;.}../************
8140 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 ********************************
8160 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 4c 5f 52 50 43 **********************.*.XML_RPC
8180 5f 64 65 63 6f 64 65 20 74 61 6b 65 73 20 61 20 6d 65 73 73 61 67 65 20 69 6e 20 50 48 50 20 58 _decode.takes.a.message.in.PHP.X
81a0 4d 4c 5f 52 50 43 20 6f 62 6a 65 63 74 20 66 6f 72 6d 61 74 20 61 6e 64 20 2a 0a 2a 20 74 72 61 ML_RPC.object.format.and.*.*.tra
81c0 6e 6c 61 74 65 73 20 69 74 20 69 6e 74 6f 20 6e 61 74 69 76 65 20 50 48 50 20 74 79 70 65 73 2e nlates.it.into.native.PHP.types.
81e0 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 2a 0a 2a .............................*.*
8200 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 ................................
8220 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 ................................
8240 20 2a 0a 2a 20 61 75 74 68 6f 72 3a 20 44 61 6e 20 4c 69 62 62 79 20 28 64 61 6e 40 6c 69 62 62 .*.*.author:.Dan.Libby.(dan@libb
8260 79 2e 63 6f 6d 29 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 y.com)..........................
8280 20 20 20 20 20 2a 0a 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 .....*.*************************
82a0 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 ********************************
82c0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 66 75 6e 63 74 69 6f 6e 20 58 4d 4c 5f 52 50 43 5f 64 65 63 6f *********/.function.XML_RPC_deco
82e0 64 65 28 24 58 4d 4c 5f 52 50 43 5f 76 61 6c 29 20 7b 0a 20 20 20 20 24 6b 69 6e 64 20 3d 20 24 de($XML_RPC_val).{.....$kind.=.$
8300 58 4d 4c 5f 52 50 43 5f 76 61 6c 2d 3e 6b 69 6e 64 4f 66 28 29 3b 0a 0a 20 20 20 69 66 28 24 6b XML_RPC_val->kindOf();.....if($k
8320 69 6e 64 20 3d 3d 20 22 73 63 61 6c 61 72 22 29 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 ind.==."scalar").{.......return.
8340 24 58 4d 4c 5f 52 50 43 5f 76 61 6c 2d 3e 73 63 61 6c 61 72 76 61 6c 28 29 3b 0a 20 20 20 7d 0a $XML_RPC_val->scalarval();....}.
8360 20 20 20 65 6c 73 65 20 69 66 28 24 6b 69 6e 64 20 3d 3d 20 22 61 72 72 61 79 22 29 20 7b 0a 20 ...else.if($kind.==."array").{..
8380 20 20 20 20 20 24 73 69 7a 65 20 3d 20 24 58 4d 4c 5f 52 50 43 5f 76 61 6c 2d 3e 61 72 72 61 79 .....$size.=.$XML_RPC_val->array
83a0 73 69 7a 65 28 29 3b 0a 20 20 20 20 20 20 24 61 72 72 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 20 size();.......$arr.=.array();...
83c0 20 20 20 20 20 66 6f 72 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 24 73 69 7a 65 3b 20 24 69 2b .....for($i.=.0;.$i.<.$size;.$i+
83e0 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 20 24 61 72 72 5b 5d 3d 58 4d 4c 5f 52 50 43 5f 64 65 63 +).{..........$arr[]=XML_RPC_dec
8400 6f 64 65 28 24 58 4d 4c 5f 52 50 43 5f 76 61 6c 2d 3e 61 72 72 61 79 6d 65 6d 28 24 69 29 29 3b ode($XML_RPC_val->arraymem($i));
8420 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 61 72 72 3b 20 0a 20 20 20 .......}.......return.$arr;.....
8440 7d 0a 20 20 20 65 6c 73 65 20 69 66 28 24 6b 69 6e 64 20 3d 3d 20 22 73 74 72 75 63 74 22 29 20 }....else.if($kind.==."struct").
8460 7b 0a 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 43 5f 76 61 6c 2d 3e 73 74 72 75 63 74 72 65 73 65 {.......$XML_RPC_val->structrese
8480 74 28 29 3b 0a 20 20 20 20 20 20 24 61 72 72 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 t();.......$arr.=.array();......
84a0 20 20 77 68 69 6c 65 28 6c 69 73 74 28 24 6b 65 79 2c 24 76 61 6c 75 65 29 3d 24 58 4d 4c 5f 52 ..while(list($key,$value)=$XML_R
84c0 50 43 5f 76 61 6c 2d 3e 73 74 72 75 63 74 65 61 63 68 28 29 29 20 7b 0a 20 20 20 20 20 20 20 20 PC_val->structeach()).{.........
84e0 20 24 61 72 72 5b 24 6b 65 79 5d 20 3d 20 58 4d 4c 5f 52 50 43 5f 64 65 63 6f 64 65 28 24 76 61 .$arr[$key].=.XML_RPC_decode($va
8500 6c 75 65 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 61 72 72 3b lue);.......}.......return.$arr;
8520 0a 20 20 20 7d 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 ....}.}../**********************
8540 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 ********************************
8560 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 2a 20 58 4d 4c 5f 52 50 43 5f 65 6e 63 6f 64 65 20 74 61 6b ***********.*.XML_RPC_encode.tak
8580 65 73 20 6e 61 74 69 76 65 20 70 68 70 20 74 79 70 65 73 20 61 6e 64 20 65 6e 63 6f 64 65 73 20 es.native.php.types.and.encodes.
85a0 74 68 65 6d 20 69 6e 74 6f 20 20 20 20 2a 0a 2a 20 58 4d 4c 5f 52 50 43 20 50 48 50 20 6f 62 6a them.into....*.*.XML_RPC.PHP.obj
85c0 65 63 74 20 66 6f 72 6d 61 74 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ect.format......................
85e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 42 55 47 3a 20 41 6c 6c 20 73 65 71 ................*.*.BUG:.All.seq
8600 75 65 6e 74 69 61 6c 20 61 72 72 61 79 73 20 61 72 65 20 74 75 72 6e 65 64 20 69 6e 74 6f 20 73 uential.arrays.are.turned.into.s
8620 74 72 75 63 74 73 2e 20 20 49 20 64 6f 6e 27 74 20 20 20 2a 0a 2a 20 6b 6e 6f 77 20 6f 66 20 61 tructs...I.don't...*.*.know.of.a
8640 20 67 6f 6f 64 20 77 61 79 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 69 66 20 61 6e 20 61 72 72 .good.way.to.determine.if.an.arr
8660 61 79 20 69 73 20 73 65 71 75 65 6e 74 69 61 6c 20 20 20 20 20 20 2a 0a 2a 20 6f 6e 6c 79 2e 20 ay.is.sequential......*.*.only..
8680 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 ................................
86a0 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 2a 0a 2a 20 20 20 20 .........................*.*....
86c0 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 ................................
86e0 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 2a 0a 2a 20 ............................*.*.
8700 66 65 61 74 75 72 65 20 63 72 65 65 70 20 2d 2d 20 63 6f 75 6c 64 20 73 75 70 70 6f 72 74 20 6d feature.creep.--.could.support.m
8720 6f 72 65 20 74 79 70 65 73 20 76 69 61 20 6f 70 74 69 6f 6e 61 6c 20 74 79 70 65 20 20 20 20 2a ore.types.via.optional.type....*
8740 0a 2a 20 61 72 67 75 6d 65 6e 74 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .*.argument.....................
8760 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 ................................
8780 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 20 20 20 20 20 20 20 ..*.*...........................
87a0 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 ................................
87c0 20 20 20 20 20 2a 0a 2a 20 61 75 74 68 6f 72 3a 20 44 61 6e 20 4c 69 62 62 79 20 28 64 61 6e 40 .....*.*.author:.Dan.Libby.(dan@
87e0 6c 69 62 62 79 2e 63 6f 6d 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 libby.com)......................
8800 20 20 20 20 20 20 20 20 2a 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ........*.**********************
8820 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 ********************************
8840 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 66 75 6e 63 74 69 6f 6e 20 58 4d 4c 5f 52 50 43 5f 65 6e ***********/.function.XML_RPC_en
8860 63 6f 64 65 28 24 70 68 70 5f 76 61 6c 29 20 7b 0a 20 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f code($php_val).{....global.$XML_
8880 52 50 43 5f 42 6f 6f 6c 65 61 6e 3b 0a 20 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f RPC_Boolean;....global.$XML_RPC_
88a0 49 6e 74 3b 0a 20 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 44 6f 75 62 6c 65 3b 0a Int;....global.$XML_RPC_Double;.
88c0 20 20 20 67 6c 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 53 74 72 69 6e 67 3b 0a 20 20 20 67 6c ...global.$XML_RPC_String;....gl
88e0 6f 62 61 6c 20 24 58 4d 4c 5f 52 50 43 5f 41 72 72 61 79 3b 0a 20 20 20 67 6c 6f 62 61 6c 20 24 obal.$XML_RPC_Array;....global.$
8900 58 4d 4c 5f 52 50 43 5f 53 74 72 75 63 74 3b 0a 0a 20 20 20 24 74 79 70 65 20 3d 20 67 65 74 74 XML_RPC_Struct;.....$type.=.gett
8920 79 70 65 28 24 70 68 70 5f 76 61 6c 29 3b 0a 20 20 20 24 58 4d 4c 5f 52 50 43 5f 76 61 6c 20 3d ype($php_val);....$XML_RPC_val.=
8940 20 6e 65 77 20 58 4d 4c 5f 52 50 43 5f 76 61 6c 75 65 3b 0a 0a 20 20 20 73 77 69 74 63 68 28 24 .new.XML_RPC_value;.....switch($
8960 74 79 70 65 29 20 7b 0a 20 20 20 20 20 20 63 61 73 65 20 22 61 72 72 61 79 22 3a 0a 20 20 20 20 type).{.......case."array":.....
8980 20 20 63 61 73 65 20 22 6f 62 6a 65 63 74 22 3a 0a 20 20 20 20 20 20 20 20 20 24 61 72 72 20 3d ..case."object":..........$arr.=
89a0 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 6c 69 73 74 28 24 .array();..........while.(list($
89c0 6b 2c 24 76 29 20 3d 20 65 61 63 68 28 24 70 68 70 5f 76 61 6c 29 29 20 7b 0a 20 20 20 20 20 20 k,$v).=.each($php_val)).{.......
89e0 20 20 20 20 20 20 24 61 72 72 5b 24 6b 5d 20 3d 20 58 4d 4c 5f 52 50 43 5f 65 6e 63 6f 64 65 28 ......$arr[$k].=.XML_RPC_encode(
8a00 24 76 29 3b 0a 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f 52 50 $v);..........}..........$XML_RP
8a20 43 5f 76 61 6c 2d 3e 61 64 64 53 74 72 75 63 74 28 24 61 72 72 29 3b 0a 20 20 20 20 20 20 20 20 C_val->addStruct($arr);.........
8a40 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 63 61 73 65 20 22 69 6e 74 65 67 65 72 22 3a 0a 20 20 .break;.......case."integer":...
8a60 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 61 72 28 24 .......$XML_RPC_val->addScalar($
8a80 70 68 70 5f 76 61 6c 2c 20 24 58 4d 4c 5f 52 50 43 5f 49 6e 74 29 3b 0a 20 20 20 20 20 20 20 20 php_val,.$XML_RPC_Int);.........
8aa0 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 63 61 73 65 20 22 64 6f 75 62 6c 65 22 3a 0a 20 20 20 .break;.......case."double":....
8ac0 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 61 72 28 24 70 ......$XML_RPC_val->addScalar($p
8ae0 68 70 5f 76 61 6c 2c 20 24 58 4d 4c 5f 52 50 43 5f 44 6f 75 62 6c 65 29 3b 0a 20 20 20 20 20 20 hp_val,.$XML_RPC_Double);.......
8b00 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 63 61 73 65 20 22 73 74 72 69 6e 67 22 3a 0a 20 ...break;.......case."string":..
8b20 20 20 20 20 20 63 61 73 65 20 22 4e 55 4c 4c 22 3a 0a 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f .....case."NULL":..........$XML_
8b40 52 50 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 RPC_val->addScalar($php_val,.$XM
8b60 4c 5f 52 50 43 5f 53 74 72 69 6e 67 29 3b 0a 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 2f L_RPC_String);..........break;./
8b80 2f 20 3c 47 5f 47 69 75 6e 74 61 5f 32 30 30 31 2d 30 32 2d 32 39 3e 0a 2f 2f 20 41 64 64 20 73 /.<G_Giunta_2001-02-29>.//.Add.s
8ba0 75 70 70 6f 72 74 20 66 6f 72 20 65 6e 63 6f 64 69 6e 67 2f 64 65 63 6f 64 69 6e 67 20 6f 66 20 upport.for.encoding/decoding.of.
8bc0 62 6f 6f 6c 65 61 6e 73 2c 20 73 69 6e 63 65 20 74 68 65 79 20 61 72 65 20 73 75 70 70 6f 72 74 booleans,.since.they.are.support
8be0 65 64 20 69 6e 20 50 48 50 0a 20 20 20 20 20 20 63 61 73 65 20 22 62 6f 6f 6c 65 61 6e 22 3a 0a ed.in.PHP.......case."boolean":.
8c00 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 61 72 .........$XML_RPC_val->addScalar
8c20 28 24 70 68 70 5f 76 61 6c 2c 20 24 58 4d 4c 5f 52 50 43 5f 42 6f 6f 6c 65 61 6e 29 3b 0a 20 20 ($php_val,.$XML_RPC_Boolean);...
8c40 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0a 2f 2f 20 3c 2f 47 5f 47 69 75 6e 74 61 5f 32 30 30 31 .......break;.//.</G_Giunta_2001
8c60 2d 30 32 2d 32 39 3e 0a 20 20 20 20 20 20 63 61 73 65 20 22 75 6e 6b 6e 6f 77 6e 20 74 79 70 65 -02-29>.......case."unknown.type
8c80 22 3a 0a 20 20 20 20 20 20 64 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 20 20 20 20 24 58 4d 4c 5f ":.......default:..........$XML_
8ca0 52 50 43 5f 76 61 6c 20 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b RPC_val.=.false;..........break;
8cc0 0a 20 20 20 7d 0a 20 20 20 72 65 74 75 72 6e 20 24 58 4d 4c 5f 52 50 43 5f 76 61 6c 3b 0a 7d 0a ....}....return.$XML_RPC_val;.}.
8ce0 0a 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 .?>.............................
8d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e00 58 4d 4c 5f 52 50 43 2d 31 2e 30 2e 33 2f 53 65 72 76 65 72 2e 70 68 70 00 00 00 00 00 00 00 00 XML_RPC-1.0.3/Server.php........
8e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e60 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......
8e80 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 30 20 00 00 00 00 00 ..26643..7443116143..10050......
8ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 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
9020 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>.//.
9040 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
9060 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.
9080 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
90a0 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").//
90c0 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
90e0 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.
9100 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
9120 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
9140 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.
9160 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.
9180 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
91a0 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
91c0 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.
91e0 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.
9200 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
9220 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
9240 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
9260 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,
9280 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
92a0 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
92c0 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
92e0 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
9300 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
9320 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
9340 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
9360 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.
9380 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
93a0 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
93c0 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./
93e0 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
9400 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
9420 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
9440 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
9460 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.
9480 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
94a0 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
94c0 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
94e0 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
9500 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
9520 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
9540 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']),...........
9560 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']
9580 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
95a0 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
95c0 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.
95e0 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
9600 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_
9620 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
9640 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
9660 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
9680 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
96a0 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();
96c0 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
96e0 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);.).{........
9700 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
9720 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
9740 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
9760 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($
9780 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.
97a0 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");..
97c0 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);..
97e0 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($
9800 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_
9820 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
9840 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']
9860 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']));.
9880 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
98a0 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.
98c0 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
98e0 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
9900 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.
9920 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
9940 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
9960 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
9980 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
99a0 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
99c0 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
99e0 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
9a00 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
9a20 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("
9a40 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)).{.......
9a60 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
9a80 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.{.........$
9aa0 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;.
9ac0 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
9ae0 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
9b00 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
9b20 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"]).{...
9b40 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();........
9b60 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]["
9b80 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=
9ba0 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++).{.
9bc0 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();
9be0 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
9c00 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;.
9c20 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++).{......
9c40 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
9c60 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")
9c80 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 ;.................}.............
9ca0 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
9cc0 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");.............}..
9ce0 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
9d00 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
9d20 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.{.........
9d40 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.
9d60 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")
9d80 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.{.......
9da0 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,....
9dc0 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_
9de0 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"],......
9e00 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
9e20 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"]);.....}.
9e40 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_
9e60 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']=....
9e80 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
9ea0 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
9ec0 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_
9ee0 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
9f00 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
9f20 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.
9f40 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
9f60 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).
9f80 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_
9fa0 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;..
9fc0 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
9fe0 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
a000 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\.
a020 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=$
a040 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;
a060 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
a080 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;.....}....
a0a0 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}.-->
a0c0 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
a0e0 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
a100 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"]).{............
a120 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
a140 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
a160 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"]),......................
a180 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
a1a0 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_
a1c0 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("",."
a1e0 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.
a200 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
a220 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,...........................$
a240 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"
a260 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
a280 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"])
a2a0 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
a2c0 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(
a2e0 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".=>....
a300 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
a320 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
a340 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
a360 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'],.........
a380 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
a3a0 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']),...
a3c0 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
a3e0 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
a400 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
a420 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
a440 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
a460 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
a480 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
a4a0 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
a4c0 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
a4e0 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
a500 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
a520 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'],.....
a540 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
a560 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
a580 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
a5a0 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_
a5c0 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
a5e0 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;.
a600 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
a620 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..."
a640 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.{..
a660 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
a680 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
a6a0 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
a6c0 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;.........//
a6e0 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.
a700 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
a720 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......
a740 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
a760 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
a780 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
a7a0 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=
a7c0 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
a7e0 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(
a800 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
a820 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().....{.........
a840 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
a860 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
a880 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
a8a0 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".........
a8c0 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
a8e0 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...
a900 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."";.....}......
a920 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().....{........
a940 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();......
a960 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
a980 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
a9a0 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-
a9c0 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
a9e0 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
aa00 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
aa20 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
aa40 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
aa60 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).....{.......
aa80 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+
aaa0 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
aac0 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.......
aae0 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];.........
ab00 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
ab20 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).{...............
ab40 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(
ab60 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
ab80 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
aba0 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);.................
abc0 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";...
abe0 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
ac00 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").{...............
ac20 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();..
ac40 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.{.....
ac60 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
ac80 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();.....................}.....
aca0 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
acc0 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.....
ace0 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
ad00 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]).{.....................
ad20 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;...................
ad40 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
ad60 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;...............
ad80 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;................
ada0 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 .....}.................}........
adc0 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)............
ade0 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);......
ae00 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
ae20 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
ae40 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})");....
ae60 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
ae80 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
aea0 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;...
aec0 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_
aee0 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,.......
af00 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
af20 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;...............
af40 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=="").{.............
af60 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;......
af80 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
afa0 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);.
afc0 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
afe0 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_
b000 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
b020 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;.....
b040 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']
b060 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
b080 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
b0a0 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']="";.
b0c0 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.=.'';...
b0e0 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
b100 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.........
b120 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($
b140 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,
b160 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_
b180 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",."
b1a0 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
b1c0 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
b1e0 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
b200 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
b220 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
b240 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)).{.............//
b260 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
b280 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
b2a0 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,.........................
b2c0 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_
b2e0 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),........
b300 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
b320 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",
b340 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 ................................
b360 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
b380 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)),.....
b3a0 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 ................................
b3c0 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
b3e0 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_
b400 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);.........}.
b420 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
b440 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.
b460 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
b480 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']);.............//.
b4a0 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...........
b4c0 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
b4e0 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++).{..
b500 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."<!--.".
b520 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']
b540 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";.................$
b560 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
b580 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";....
b5a0 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(
b5c0 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
b5e0 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]..");");.............}....
b600 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
b620 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.
b640 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............
b660 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][
b680 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(
b6a0 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)).{......
b6c0 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
b6e0 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;.............}
b700 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
b720 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;..........
b740 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
b760 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'])).{.....
b780 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
b7a0 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
b7c0 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'])).{...
b7e0 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
b800 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,................
b820 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 ................................
b840 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'].)
b860 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 ;.................}.............
b880 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
b8a0 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]).{...
b8c0 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
b8e0 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.......
b900 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).{...
b920 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=
b940 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']
b960 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 ................................
b980 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);');...............
b9a0 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.{..................
b9c0 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
b9e0 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']................
ba00 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);');......
ba20 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 ...............}................
ba40 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
ba60 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,........
ba80 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 ................................
baa0 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
bac0 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"],..........................
bae0 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[
bb00 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]
bb20 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 );.................}............
bb40 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
bb60 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........
bb80 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
bba0 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,.............................
bbc0 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
bbe0 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"],.....................
bc00 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
bc20 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"]);............
bc40 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;.
bc60 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().{.
bc80 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
bca0 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
bcc0 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..
bce0 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
bd00 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
bd20 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_
bd40 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_
bd60 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");.......
bd80 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();...}.}..
bda0 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 ?>..............................
bdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
be00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
be20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
be40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
be60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
be80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bf00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bf20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bf40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bf60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bf80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
bfa0 00 00 00 00 00 00 00 00 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 ................................