[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Fmsystem-commits] [12484] update xmlrpc from upstream
From: |
Sigurd Nes |
Subject: |
[Fmsystem-commits] [12484] update xmlrpc from upstream |
Date: |
Fri, 19 Dec 2014 11:56:43 +0000 |
Revision: 12484
http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=12484
Author: sigurdne
Date: 2014-12-19 11:56:42 +0000 (Fri, 19 Dec 2014)
Log Message:
-----------
update xmlrpc from upstream
Modified Paths:
--------------
trunk/phpgwapi/inc/xmlrpc/Makefile
trunk/phpgwapi/inc/xmlrpc/NEWS
trunk/phpgwapi/inc/xmlrpc/README
trunk/phpgwapi/inc/xmlrpc/debugger/action.php
trunk/phpgwapi/inc/xmlrpc/debugger/common.php
trunk/phpgwapi/inc/xmlrpc/debugger/controller.php
trunk/phpgwapi/inc/xmlrpc/debugger/index.php
trunk/phpgwapi/inc/xmlrpc/demo/client/agesort.php
trunk/phpgwapi/inc/xmlrpc/demo/client/client.php
trunk/phpgwapi/inc/xmlrpc/demo/client/comment.php
trunk/phpgwapi/inc/xmlrpc/demo/client/introspect.php
trunk/phpgwapi/inc/xmlrpc/demo/client/mail.php
trunk/phpgwapi/inc/xmlrpc/demo/client/simple_call.php
trunk/phpgwapi/inc/xmlrpc/demo/client/which.php
trunk/phpgwapi/inc/xmlrpc/demo/client/wrap.php
trunk/phpgwapi/inc/xmlrpc/demo/client/zopetest.php
trunk/phpgwapi/inc/xmlrpc/demo/server/discuss.php
trunk/phpgwapi/inc/xmlrpc/demo/server/proxy.php
trunk/phpgwapi/inc/xmlrpc/demo/server/server.php
trunk/phpgwapi/inc/xmlrpc/demo/vardemo.php
trunk/phpgwapi/inc/xmlrpc/doc/Makefile
trunk/phpgwapi/inc/xmlrpc/doc/xmlrpc_php.xml
trunk/phpgwapi/inc/xmlrpc/lib/xmlrpc.inc
trunk/phpgwapi/inc/xmlrpc/lib/xmlrpc_wrappers.inc
trunk/phpgwapi/inc/xmlrpc/lib/xmlrpcs.inc
trunk/phpgwapi/inc/xmlrpc/test/benchmark.php
trunk/phpgwapi/inc/xmlrpc/test/parse_args.php
trunk/phpgwapi/inc/xmlrpc/test/testsuite.php
trunk/phpgwapi/inc/xmlrpc/test/verify_compat.php
Added Paths:
-----------
trunk/phpgwapi/inc/xmlrpc/ChangeLog
trunk/phpgwapi/inc/xmlrpc/INSTALL
trunk/phpgwapi/inc/xmlrpc/composer.json
trunk/phpgwapi/inc/xmlrpc/debugger/index.html
trunk/phpgwapi/inc/xmlrpc/doc/.gitignore
trunk/phpgwapi/inc/xmlrpc/doc/announce1_0.txt
trunk/phpgwapi/inc/xmlrpc/doc/announce1_1.txt
trunk/phpgwapi/inc/xmlrpc/doc/announce1b6.txt
trunk/phpgwapi/inc/xmlrpc/doc/announce1b7.txt
trunk/phpgwapi/inc/xmlrpc/doc/announce1b8.txt
trunk/phpgwapi/inc/xmlrpc/doc/announce1b9.txt
trunk/phpgwapi/inc/xmlrpc/doc/convert.php
trunk/phpgwapi/inc/xmlrpc/doc/custom.dsl
trunk/phpgwapi/inc/xmlrpc/doc/custom.fo.xsl
trunk/phpgwapi/inc/xmlrpc/doc/custom.xsl
trunk/phpgwapi/inc/xmlrpc/doc/debugger.gif
trunk/phpgwapi/inc/xmlrpc/doc/docbook-css/
trunk/phpgwapi/inc/xmlrpc/doc/docbook-css/COPYING
trunk/phpgwapi/inc/xmlrpc/doc/docbook-css/CREDITS
trunk/phpgwapi/inc/xmlrpc/doc/docbook-css/core.css
trunk/phpgwapi/inc/xmlrpc/doc/docbook-css/db-bindings.xml
trunk/phpgwapi/inc/xmlrpc/doc/docbook-css/driver.css
trunk/phpgwapi/inc/xmlrpc/doc/docbook-css/l10n/
trunk/phpgwapi/inc/xmlrpc/doc/docbook-css/l10n/de.css
trunk/phpgwapi/inc/xmlrpc/doc/docbook-css/l10n/en.css
trunk/phpgwapi/inc/xmlrpc/doc/docbook-css/l10n/es.css
trunk/phpgwapi/inc/xmlrpc/doc/docbook-css/l10n/pl.css
trunk/phpgwapi/inc/xmlrpc/doc/docbook-css/l10n.css
trunk/phpgwapi/inc/xmlrpc/doc/docbook-css/mozilla.css
trunk/phpgwapi/inc/xmlrpc/doc/docbook-css/opera.css
trunk/phpgwapi/inc/xmlrpc/doc/docbook-css/styles.css
trunk/phpgwapi/inc/xmlrpc/doc/docbook-css/tables.css
trunk/phpgwapi/inc/xmlrpc/doc/docbook-css/xmlrpc.css
trunk/phpgwapi/inc/xmlrpc/doc/highlight.php
trunk/phpgwapi/inc/xmlrpc/doc/progxmlrpc.s.gif
trunk/phpgwapi/inc/xmlrpc/test/PHPUnit/license.txt
Removed Paths:
-------------
trunk/phpgwapi/inc/xmlrpc/Changelog
trunk/phpgwapi/inc/xmlrpc/doc/apa.html
trunk/phpgwapi/inc/xmlrpc/doc/apb.html
trunk/phpgwapi/inc/xmlrpc/doc/apc.html
trunk/phpgwapi/inc/xmlrpc/doc/apd.html
trunk/phpgwapi/inc/xmlrpc/doc/ch01.html
trunk/phpgwapi/inc/xmlrpc/doc/ch02.html
trunk/phpgwapi/inc/xmlrpc/doc/ch02s02.html
trunk/phpgwapi/inc/xmlrpc/doc/ch02s03.html
trunk/phpgwapi/inc/xmlrpc/doc/ch02s04.html
trunk/phpgwapi/inc/xmlrpc/doc/ch02s05.html
trunk/phpgwapi/inc/xmlrpc/doc/ch02s06.html
trunk/phpgwapi/inc/xmlrpc/doc/ch02s07.html
trunk/phpgwapi/inc/xmlrpc/doc/ch02s08.html
trunk/phpgwapi/inc/xmlrpc/doc/ch02s09.html
trunk/phpgwapi/inc/xmlrpc/doc/ch03.html
trunk/phpgwapi/inc/xmlrpc/doc/ch04.html
trunk/phpgwapi/inc/xmlrpc/doc/ch05.html
trunk/phpgwapi/inc/xmlrpc/doc/ch06.html
trunk/phpgwapi/inc/xmlrpc/doc/ch06s02.html
trunk/phpgwapi/inc/xmlrpc/doc/ch07.html
trunk/phpgwapi/inc/xmlrpc/doc/ch07s02.html
trunk/phpgwapi/inc/xmlrpc/doc/ch07s03.html
trunk/phpgwapi/inc/xmlrpc/doc/ch07s04.html
trunk/phpgwapi/inc/xmlrpc/doc/ch07s05.html
trunk/phpgwapi/inc/xmlrpc/doc/ch08.html
trunk/phpgwapi/inc/xmlrpc/doc/ch08s02.html
trunk/phpgwapi/inc/xmlrpc/doc/ch09.html
trunk/phpgwapi/inc/xmlrpc/doc/ch09s02.html
trunk/phpgwapi/inc/xmlrpc/doc/ch09s03.html
trunk/phpgwapi/inc/xmlrpc/doc/ch09s04.html
trunk/phpgwapi/inc/xmlrpc/doc/ch09s05.html
trunk/phpgwapi/inc/xmlrpc/doc/ch10.html
trunk/phpgwapi/inc/xmlrpc/doc/ch10s02.html
trunk/phpgwapi/inc/xmlrpc/doc/ch10s03.html
trunk/phpgwapi/inc/xmlrpc/doc/ch10s04.html
trunk/phpgwapi/inc/xmlrpc/doc/ch10s05.html
trunk/phpgwapi/inc/xmlrpc/doc/ch11.html
trunk/phpgwapi/inc/xmlrpc/doc/ch11s02.html
trunk/phpgwapi/inc/xmlrpc/doc/ch12.html
trunk/phpgwapi/inc/xmlrpc/doc/ch12s02.html
trunk/phpgwapi/inc/xmlrpc/doc/ch12s03.html
trunk/phpgwapi/inc/xmlrpc/doc/ch12s04.html
trunk/phpgwapi/inc/xmlrpc/doc/ch12s05.html
trunk/phpgwapi/inc/xmlrpc/doc/ch12s06.html
trunk/phpgwapi/inc/xmlrpc/doc/ch12s07.html
trunk/phpgwapi/inc/xmlrpc/doc/ch12s08.html
trunk/phpgwapi/inc/xmlrpc/doc/index.html
trunk/phpgwapi/inc/xmlrpc/doc/xmlrpc_php.pdf
Property Changed:
----------------
trunk/phpgwapi/inc/xmlrpc/
Property changes on: trunk/phpgwapi/inc/xmlrpc
___________________________________________________________________
Added: svn:ignore
+ .travis.yml
Added: trunk/phpgwapi/inc/xmlrpc/ChangeLog
===================================================================
--- trunk/phpgwapi/inc/xmlrpc/ChangeLog (rev 0)
+++ trunk/phpgwapi/inc/xmlrpc/ChangeLog 2014-12-19 11:56:42 UTC (rev 12484)
@@ -0,0 +1,1610 @@
+NB: All recent commits are available online.
+This file will not be updated further.
+See https://github.com/gggeek/phpxmlrpc/commits/master
+
+
+2014-02-3 - G. Giunta (address@hidden)
+
+ * bumped up requirements to php 5.1.0
+
+2014-01-10 - G. Giunta (address@hidden)
+
+ * xmlrpc.inc: when using curl and keepalive, reset curl handle if we
did not get back an http 200 response (eg a 302)
+
+ * testsuite.php, parse_args.php: update testsuite
+
+ * debugger/controller.php: change default path to javascript debugger
+
+2010-05-23 - G. Giunta (address@hidden)
+
+ * xmlrpc.inc: omit port on http 'Host' header if it is 80;
+ add a namespace declaration in response if ex:nil is in use
+
+2010-04-12 - G. Giunta (address@hidden)
+
+ * testsuite.php, parse_args.php: testsuite allows interrogating https
servers ignoring their certs
+
+ * xmlrpc.inc: method setAcceptedCompression was failing to disable
reception
+ of compressed responses if the client supported them (triggering a bug
with
+ https and php < 5.3 on windows); remove a php warning that could be
+ generated when using debug=2 in a client connecting to an https
+ server
+
+2010-04-11 - G. Giunta (address@hidden) thanks amoe
+
+ * fixed: bad variables in "make install" make target
+
+2009-11-11 - G. Giunta (address@hidden) thanks Ikiro Watanabe
+
+ * added INSTALL file
+
+2009-09-05 - G. Giunta (address@hidden)
+
+ * xmlrpcs.inc, xmlrpcs.inc: remove code that was left for compatibility
+ with php 4; use __METHOD__ constant for error messages instead of
hardcoded
+ values
+
+ * xmlrpcs.inc: catch exceptions thrown during execution of invoked
methods;
+ check for $_SERVER having been disabled via php.ini and log an error if
so
+
+ * server.php, testsuite.php: add a new test and server method for
exception
+ catching in the server
+
+ * xmlrpc.inc: added new method SetUserAgent to client to allow having
different
+ user-agent http headers
+
+ * tagged and released as 3.0.0 beta
+
+2009-08-05 - G. Giunta (address@hidden)
+
+ * xmlrpc_wrappers.inc: improve compatibility with php 5.0 when
registering
+ class/object methods
+
+2009-08-02 - G. Giunta (address@hidden) thanks Laurens
+
+ * xmlrpcs.inc: add a new member var in server class to allow fine-tuning
+ of the encoding of returned values when the server is in 'phpvals' mode;
+ allow servers in 'xmlrpcvals' mode to also register plain php functions
by
+ defining them in the dispatch map with an added option:
+ 'parameters_type' => 'phpvals' (feature request #2806628)
+
+ * xmlrpc.inc: added new method xmrlpc_client::SetCurlOptions($array) to
+ allow extra flexibility in tweaking http config, such as explicitly
+ binding to an ip address (feature request #2787468); fix bad encoding if
+ same object is encoded twice using php_xmlrpc_encode; removed some
by-ref
+ assignments and declarations
+
+2009-07-31 - G. Giunta (address@hidden)
+
+ * xmlrpc.inc: add support for dateTime objects in both in
php_xmlrpc_encode
+ and as parameter for constructor of xmlrpcvals; add support for
timestamps
+ as parameter for constructor of xmlrpcvals; add option
'dates_as_objects' to
+ php_xmlrpc_decode to return dateTime objects for xmlrpc datetimes
+
+ * benchmark.php, xmlrpc_wrappers.inc: remove usage of split(),
deprecated in
+ php 5.3
+
+ * benchmark.php: fixed url of server page used for testing; improved
+ verification of correspondence of test results; added more variants for
+ http options comparison
+
+ * verify_compat.php: check for php version 5 for client side too
+
+ * makefile: remove from build the compat directory
+
+2009-07-26 - G. Giunta (address@hidden)
+
+ * server.php: remove usage of ereg*(), deprecated in php 5.3
+
+2009-07-16 - G. Giunta (address@hidden) thanks Jean-Jacques Sarton
+
+ * xmlrpc.inc: add support for the <ex:nil/> from the apache library,
both
+ in input and output (feature request #...)
+
+ * xmlrpc.inc, testsuite.php: remove usage of split(), deprecated in php
5.3
+
+ * testsuite.php: flush better results with output_buffering on
+
+ * server: php: avoid one warning about static function calls
+
+2009-07-02 - G. Giunta (address@hidden) thanks Heiko Stuebner
+
+ * xmlrpc.inc: fix: when checking the parameters against the signatures
xmlrpc
+ checks for "array" but PHP returns "Array" resulting in a not matches
signature
+
+2009-05-07 - G. Giunta (address@hidden)
+
+ * replace all usage of '= & new' with '= new', as this is deprecated in
php 5
+ and has been shown to cause problems too
+
+2009-05-06 - G. Giunta (address@hidden)
+
+ * create php4 branch, rename trunk to 3.0.0beta - it will be the
php5-only version
+
+ * xmlrpc.inc: removed test for php version and inclusion of compat
patches for really
+ really old versions of php 4
+
+2009-03-16 - G. Giunta (address@hidden) thanks Tommaso Trani
+
+ * move from CVS to SVN on sf.net; file layout now is the same as in
packaged lib
+
+ * xmlrpc.inc: fix php warning when receiving 'false' in a bool value
+
+ * Makefile, doc/Makefile: alter to follow new file layout
+
+ * tagged and released as 2.2.2
+
+2009-02-03 - G. Giunta (address@hidden)
+
+ * debugger/action.php: improve code robustness when parsing
system.listmethods
+ and system.describemethods call
+
+ * xmlrpc.inc: format floating point values using the correct decimal
separator
+ even when php locale is set to one that uses comma (bug #2517579);
+ use feof() to test if socket connections are to be closed instead of the
+ number of bytes read (bug #2556209)
+
+2008-10-29 - G. Giunta (address@hidden)
+
+ * xmlrpcs.inc: allow add_to_map server method to add docs for single
params, too
+
+2008-09-20 - G. Giunta (address@hidden)
+
+ * xmlrpc_wrappers.inc: added the possibility to wrap for exposure as
xmlrpc
+ methods plain php class methods, object methods and even whole classes
+
+ * testsuite.php, server.php: added test cases for the new code
+
+2008-09-07 - G. Giunta (address@hidden) thanks Bruno Zanetti Melotti
+
+ * xmlrpc.inc: be more tolerant in detection of charset in http headers
(fix for bug #2058158)
+
+2008-04-05 - G. Giunta (address@hidden)
+
+ * xmlrpc.inc: fix encoding of UTF8 chars outside of the BMP
+
+ * xmlrpcs.inc: fix detection of zlib.output_compression (thanks xbert)
+
+2008-03-06 - G. Giunta (address@hidden)
+
+ * tagged and released as 2.2.1
+
+ * Makefile: improve usage on windows xp despite cmd's broken mkdir
+
+2007-10-26 - G. Giunta (address@hidden) thanks sajo_raftman
+
+ * xmlrpc.inc: remove one warning in xmlrpc_client creator
+
+2007-10-26 - G. Giunta (address@hidden)
+
+ * xmlrpc.inc: improve support for windows cp1252 character set (still
+ commented in the code)
+
+2007-09-05 - G. Giunta (address@hidden)
+
+ * xmlrpc.inc, xmlrps.inc: do not try to set invalid charsets as output
for
+ xml parser, even if user set them up for internal_encoding (helps
encoding
+ to exotic charsets, while decoding to UTF8)
+
+2007-09-05 - G. Giunta (address@hidden)
+
+ * xmlrpc.inc: fix parsing of '1e+1' as valid float
+
+2007-09-01 - G. Giunta (address@hidden), thanks Frederic Lecointre
+
+ * xmlrpcs.inc: allow errorlevel 3 to work when prev. error handler was
a static method
+
+ * testsuite.php: fix test on setCookie()
+
+2007-08-31 - G. Giunta (address@hidden)
+
+ * xmlrpc.inc: minor fix in cookie parsing
+
+2007-07-31 - G. Giunta (address@hidden)
+
+ * xmlrpc.inc: Fix usage of client::setcookie() for multiple cookies in
non-ssl mode
+
+2007-07-26 - G. Giunta (address@hidden) thanks Mark Olive
+
+ * xmlrpc.inc: Fix for bug # 1756274 (usage of cookies in ssl mode)
+
+2007-04-28 - G. Giunta (address@hidden)
+
+ * xmlrpc.inc: give more detailed curl information when DEBUG = 2; fix
handling
+ of case where curl w. keepalive is used and one connection of many fails
+
+ * testsuite improvements: add one testcase; give feedbcak while tests
are
+ running
+
+2007-04-01 - G. Giunta (address@hidden)
+
+ * doc/makefile, doc/custom.fo.xsl: improve pdf rendering of php source
code
+
+ * makefile: recover version number from source instead of having it
hardcoded
+
+2007-03-10 - G. Giunta (address@hidden)
+
+ * doc/makefile, doc/convert.php, doc/*.xsl: created customizations xslt
to
+ produce a documentation more in line with the php manual, esp. with
regards
+ to functions synopsis; added jellyfish book cover as local resource and
a
+ screenshot of the debugger too; various updates to the manual source;
added
+ a php script to highlight examples inside html docs
+
+2007-03-09 - G. Giunta (address@hidden)
+
+ * debugger/action.php: css tweak for IE
+
+ * added phpunit license file in the phpunit directory
+
+ * added link to license (on sf.net site) to many files
+
+2007-03-04 - G. Giunta (address@hidden)
+
+ * Makefile, doc/makefile: assorted improvements
+
+2007-03-03 - G. Giunta (address@hidden)
+
+ * xmlrpc.inc: micro-optimization in declaration of global vars
xmlrpcerr, xmlrpcstr
+
+2007-02-25 Gaetano Giunta <address@hidden>
+
+ * removed a couple of warnings emitted in testsuite.php
+
+ * doc/makefile: added command for invocation of xxe to generate docs
+
+ * better rendering of docs in xml+css format for function prototypes
+
+ * updated documentation
+
+ * tagged and released as 2.2
+
+2007-02-22 Gaetano Giunta <address@hidden>
+
+ * debugger: workaround for case of magic_quotes_gpc being set (properly
+ unescape user input); fix case of user not setting msg id in jsonrpc
case
+ when executing a remote method; allow strings, false, true and null as
msg id
+
+2007-02-13 Gaetano Giunta <address@hidden>
+
+ * testsuite.php: added one test for automatic encoding/decoding case
+
+2007-02-05 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: slightly faster encoding of UTF8 data to ascii
+
+2007-01-11 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: when calling client::multicall() with an unspecified http
version,
+ use the client default rather than the fixed 'http 1.0'
+
+2006-09-17 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc, xmlrpcs.inc, testsuite.php: added support for <NIL/> and
+ system.getCapabilities, and one more testcase to go with it
+
+2006-09-05 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: fix support for https through proxies; client parses debug
+ messages sent by client even for compressed responses;
+
+ * testsuite.php, parse_args.php: added 3 test cases for proxy
connections
+
+2006-09-01 Gaetano Giunta <address@hidden>
+
+ xmlrpc_wrappers.inc: add two more options in wrap_xmlrpc_method and fix
+ typo to allow obj encoding
+
+2006-08-28 Gaetano Giunta <address@hidden>
+
+ * xmlrpc_wrappers.inc: more options added to wrap_php_function and
+ wrap_xmlrpc_method
+
+ * xmlrpc.inc: pave the way to support for <nil/>
+
+ * doc/xmlrpc_php.xml documentation updated
+
+ * tagged and released as 2.1
+
+2006-08-25 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: stricter parsing of incoming messages: detect two DATA
elements
+ inside an ARRAY, a STRUCT or SCALAR inside an already filled VALUE
+
+ * testsuite.php: added two testcases to check for the above cases
+
+2006-08-24 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: more code optimization in xmlrpcval::serialize() and
+ php_xmlrpc_encode(); fixed bug where struct elements with non-ascii
chars
+ in their name would not be properly encoded
+
+ * testsuite.php: added a testcase for the new bug
+
+2006-08-23 Gaetano Giunta <address@hidden>
+
+ * remove old code left in comments across many files; many more javadoc
+ comments added
+
+ * xmlrpc.inc: a bit of code optimization: reorder switch() statements of
+ xml parsing element handlers; inline code for xmlrpcval() - this breaks
+ new xmlrpcval('true') and changes error msgs on new xmlrpcval($x,
'invalid_type')
+
+ * testsuite.php: change according to above
+
+ * benchmark.php: basic support for xdebug 2 profiling
+
+2006-08-22 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: addscalar() and addstruct() where not returning 1 when
adding
+ data to an already formed value
+
+2006-08-21 Gaetano Giunta <address@hidden>
+
+ * xmlrpcs.inc, xmlrpc.inc: added support for emulating the
xmlrpc-extension
+ API (the full emulation layer is part of the extras package);
+ fix support for the HTTP 'deflate' encoding
+
+ * xmlrpc.inc: better support for http compression with and without CURL;
+ a minor decoding speedup; added a new function: php_xmlrpc_decode_xml(),
+ that will convert into the appropriate object the xml representation of
+ either a request, response or a single value; log reception of invalid
+ datetime values
+
+ * xmlrpcs.inc: add a new parameter and return type to server->service();
+ let server->add_to_map() accept method definitions without parameter
types
+
+ * xmlrpc_wrappers.inc: more logging of errors; wrap_php_functions now
takes
+ more options; better support for jsonrpc; escape quote chars when
wrapping
+ remothe servers / remote methods
+
+ * added cvs Id tag to files that missed it; speling fixes; updated NEWS
files
+
+2006-08-07 Gaetano Giunta <address@hidden>
+
+ * assorted fixes to make the suite more compatible with php 4.0.5 and
5.x
+
+2006-07-02 Gaetano Giunta <address@hidden>
+
+ * xmlrpc_warppers.inc: added new function to wrap entire remote server
into
+ a local php class; changed default calling synopsis of
wrap_remote_method,
+ to ease passing multiple options at a time (but old syntax still works!)
+
+ * updated makefile, debugger/action.php in accord with the above
+
+2006-06-30 Gaetano Giunta <address@hidden>
+
+ * added to debugger capability to generate json-rpc code stubs
+
+ * added to debugger capability to load and launch self correctly if
+ controller.php is called directly from outside processes (single url
access)
+
+2006-06-26 Gaetano Giunta <address@hidden>
+
+ * moved wrap_php_functions and wrap_xmlrpc_method into a file of their
own.
+ This will let us add further stub functionality without the base lib
growing too much.
+ All of the files that reference this functionality have been modified
accordingly.
+
+ * made wrap_xmlrpc_method generate better code (with php type
juggling), and
+ some phpdoc for the generated function, too
+
+ * added to debugger an option to produce for the user the generated php
code
+ for wrapping a call to a remote method into a php function
+
+2006-06-22 Gaetano Giunta <address@hidden>
+
+ * xmlrpcs.inc: added description of parameters for system.xxx methods
(useful with
+ html-self-documenting servers);
+ server->service() now returns response object, in case user has need
for it...
+
+ * xmlrpc.inc: save full response payload into xmlrpcresp obj for better
debugging
+
+2006-06-15 Gaetano Giunta <address@hidden>
+
+ * verify_compat.php: more tests
+
+2006-06-09 Gaetano Giunta <address@hidden>
+
+ * xmlrpcs.inc: fixed sending of compressed responses when output
compression
+ is already enabled in php.ini
+
+ * verify_compat.php: split tests between server and client cases
+
+2006-05-29 Gaetano Giunta <address@hidden>
+
+ * added new file: verify_compat.php, to help troubleshooting platform
+ support for the library; added it to makefile, too
+
+2006-05-24 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: removed residual usage of regexp in favour of pregexps;
fixed
+ a bug in specifying Host http header with non std ports
+
+2006-05-23 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: improvements to wrap_php_function: let it deal correctly
+ with php functions returning xmlrpcresp objs; make it generate also
+ docs for single parameters (useful for documenting_xmlrpc_server class)
+
+2006-05-22 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc, xmlrpcs.inc: minor performance tuning updates: replaced
+ some explode vs. split, ereg vs. preg, single vs. double quotes
+
+ * xmlrpc.inc: fix wrap_xmlrpc_method to NOT rebuild php objects received
+ from the server by default, as it might pose a security risk
+
+2006-04-24 Gaetano Giunta <address@hidden>
+
+ * minor fixes makefiles. Tagged and released as 2.0 final
+
+2006-04-22 Gaetano Giunta <address@hidden>
+
+ * debugger/*: added option to set cainfo; improve web layout
+
+ * xmlrpc.inc: set sslverifypeer to TRUE instaed of 1 by default
+
+ * doc/php_xmlrpc.xml: documentation updates
+
+2006-04-21 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: added option to set ca certs dir instead of single cert
+ (used to validate server in https connetions)
+
+2006-04-18 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: fixed bug in xmlrpcval::structmemexists()
+
+ * testsuite.php: added test case for xmlrpcval::structmemexists()
+
+2006-04-03 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: add support for Digest and NTLM authentication, both to
server
+ and to proxies (note: must use CURL for this to work)
+
+ * debugger/*: add support for Digest/NTLM auth to remote servers
+
+2006-03-19 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: fix a bug parsing of 'true' bool values;
+ added a new method to the client class: SetCaCertificate;
+ add column number in xml parsing error messages;
+ fix serialization of messages to ISO-8859-1 charset with php 5 (by
adding
+ encoding to the xml prologue of generated messages)
+
+ * xmlrpcs.inc: correct detection of charset in http headers;
+ add column number in xml parsing error messages;
+ fix serialization of responses to ISO-8859-1 charset with php 5 (by
adding
+ encoding to the xml prologue of generated responses)
+
+ * testsuite.php: added two more tests on charset encoding
+
+ * NEWS: update info for impending release
+
+2006-03-23 Gaetano Giunta <address@hidden>
+
+ * added a new demo file: simple_call.php
+
+2006-02-20 Gaetano Giunta <address@hidden>
+
+ * xmlrpcs.inc: more error checking and logging with regard to user-coded
+ method handler functions not being well behaved;
+ fix a case where error handler would not be reset upon user function
+ returning not valid xmlrpresp
+
+ * xmlrpc.inc: fix bug in detection of php 4.3.0
+
+ * Makefile: fix uppercase filenames
+
+2006-02-15
+
+ * xmlrpc.inc: parse 'true' and 'false' as valid booleans, even though
the
+ spec is quite clear on that; fix small bug w. internal_encoding = utf8;
add
+ definition of $GLOBALS['xmlrpcNull'] for extensibility, e.g. json or
+ extensions to the xmlrpc spec
+
+2006-02-05 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: fix bug in wrap_xmlrpc_method if client passed to
function has
+ return_type=phpvals
+
+ * all demo files: review code, add more comments and information
+
+ * added 2 demo files: proxy.php (implementing an xmlrpc proxy server)
and
+ wrap.php (showing usage of wrap_method_call)
+
+2006-02-04 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: fix bug in multicall in case of no fallback and server
error
+
+2006-01-30 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: fix recursive serialization of xmlrpcvals loosing UTF8
charset;
+ correctly set type field of xmlrpcvals returned by send() calls
+
+ * xmlrpcs.inc: add to server checks for correct return type of
user-coded
+ method handling function; tolerate xmlrpcval instead of xmlrpcresp
+
+ * minor change in xmlrpcresp internals, to ease subclassing (store
payload
+ in an internal var on serialize(), same as xmlrpcclient does)
+
+2006-01-22 Gaetano Giunta <address@hidden>
+
+ * benchmark.php: do not run http 1.1 tests if CURL notfound
+
+ * Released as 2.0 Rc3
+
+2006-01-19 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: make xmlrpc_client::setDebug() accept int values instead
of
+ boolean. At level 2, the request payload is printed to screen before
being
+ sent; fix bug with repeated sending of the same msg object and using
request
+ compression w. php 5.1.2 (objects passed by ref by default!!!)
+
+ * xmlrpcs.inc: fix detection of clients accepting compressed responses
+
+ * comment.php: remove warnings due to liberal usage of
$HTTP_POST/GET_VARS
+
+ * benchmark.php: add a test using http compression of both requests and
+ responses
+
+ * testsuite.php: added test for fix in xmlrpc.inc
+
+2006-01-17 Gaetano Giunta <address@hidden>
+
+ * xmlrpcs.php: minor fix: do not raise a PHP warning when std server is
+ called via GET (global HTTP_RAW_POST_DATA undefined). Some might have
called
+ it a security breach (path disclosure)...
+
+2006-01-15 Gaetano Giunta <address@hidden>
+
+ * testsuite.php: minor fix to expected date format in http cookie hedaer
+ to cope with PHP 5.1.2
+
+2006-01-05 Gaetano Giunta <address@hidden>
+
+ * xmlrpcs.inc: merge code from the 'extras' subclass that allows server
+ to register plain php functions in dispatch map instead of functions
+ accepting a single xmlrpcmgs obj parameter.
+ One step closer to the kitchen sink!!!
+
+2005-12-31 Gaetano Giunta <address@hidden>
+
+ * xmlrpcs.inc: let the server accept 'class::method' syntax in the
dispatch
+ map
+
+ * testsuite.php, server.php: added new tests for the recent charset
encoding
+ capabilities
+
+2005-12-24 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: correctly serialize() string xmlrpcvals that have been
+ created out of non-string php variables, when internal encoding is UTF8;
+ serialize to '0' int and double values created out of non-string php
+ variables, eg. 'hello', instead of creating invalid xmlrpc;
+ extend the php_xmlrpc_encode function to allow serializing string values
+ to charsets other tha US-ASCII;
+ minor tweak to xml parsing to allow correct parsing of empty strings
when
+ in 'direct to php values' mode
+
+ * xmlrpcs.inc: advances in system.multicall with plain php values
+
+2005-12-17 Gaetano Giunta <address@hidden>
+
+ * xmlrpcs.inc: let the functions implementing the system.* methods work
+ fine when called with plain php values as parameters instead of
xmlrpcmsg
+ objects (multicall not quite finished yet...);
+ encode level 3 debug info as base64 data, to avoid charset encoding hell
+
+ * xmlrpc.inc: added a new xmlrpc_2_php_type function, to get the name of
+ php types corresponding to xmlrpc types;
+ in debug mode, when detecting base64 server debug info, print it out
fine
+
+ * server.php: cosmetic fixes
+
+2005-12-09 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: remove one warning emitted when received xml contains an
+ unknown tag; remove warnings emitted when custom error handler is set
+ and user calls php_xmlrpc_encode/decode without the 2nd parameter
+
+ * xmlrpcs.inc: added a param to service(), to allow the server to parse
+ data other than the POST body (useful for subclassing and debugging);
+ reworked the implementation of server debug messages at debug level 2:
+ since the debug info generated has no known charset, and putting it back
+ into the response's xml would most likely break it, send it back to the
+ client as a base64 encoded comment. Clients can decode it if they need
it...
+ Add some more javadocs
+
+ * testsuite.php: modified the string test, to see if the server can echo
+ back to the client the received data without breaking the response's xml
+
+2005-12-05 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc, xmlrpcs.inc: let server and client objects decide if they
+ want to use some charset encoding other than US-ASCII for serialized
data:
+ add a new var to both objects, and lots of parameters to function calls
+ that took none up to now;
+ refactored server method service() and parseRequest(), implementing a
+ new parserequestHeaders() method to explicitly deal with HTTP
+
+2005-12-01 Gaetano Giunta <address@hidden>
+
+ * moved the jsonrpc implementation and the new wsdl stuff to a separate
+ CVS module; updated the makefile to reflect it
+
+2005-11-24 Gaetano Giunta <address@hidden>
+
+ * modified php_xmlrpc_decode() to work on xmlrpcmessages too, besides
+ xmlrpcvals. To achieve this, added a new method: xmlrpcmsg::kindOf()
+
+2005-11-22 Gaetano Giunta <address@hidden>
+
+ * released as 2.0 RC2
+
+2005-11-21 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: fix warnings about references for PHP 4.1.X
+
+ * Whitespace cleanup on all the lib
+
+2005-11-16 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: rewritten xmlrpc_encode_entitites adding two extra
parameters
+ that specify input and output charset encodings. This corrects the bug
that
+ prevented native UTF-8 strings to be correctly serialized (to have them
+ encoded the user must set $xmlrpc_internalencoing appropriately).
+
+ * xmlrpc.inc: added new method xmlrpcmsg::parseResponseHeaders(),
refactoring
+ parseResponse(). This makes the code more modular and eases subclassing.
+
+ * xmlrpc.inc: set cookies and http headers to xmlrpcresp objs even when
calls
+ to send() do not complete correctly
+
+ * added new file: jsonrpcs.inc, to accomodate server jsonrpc objects in
the future
+
+ * jsonrpc.inc: slow progress...
+
+2005-11-10 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: fixed the xmlrpc_client send and sendpayloadhttps methods
+ to fix errors in calling https servers;
+ added a new xmlrpc_client->setkey method to allow usage of client-side
ssl
+ certs in recent php builds;
+ added to xmlrpcresp objects a content_type var, to be used in HTTP
headers
+
+ * xmlrpcs.inc: separate generation of content-type http header and xml
prologue
+ from the service() method, to ease subclassing
+
+2005-11-03 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: moved the 'text/xml' mimetype string as class var of the
xmlrpcmsg
+ object instead of having it cabled into xmlrpc_client->send(): this
allows to
+ create subclasses of xmlrpcmsg that use a different mimetype
+
+ * jsonrpc.inc: added a new file, with an extremely experimental set of
classes,
+ designed to implement a json-rpc client and server, taking advantage
of the
+ existing xml-rpc infrastructure
+
+2005-10-28 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: changed constructor method for xmlrpcresp, making it
smarter in
+ case user does not declare the type of value it is passing to it;
+ minor changes in serialization of xmlrpcresp with error codes, so that
it
+ utputs LF instead of CRLF on windows boxes after an FTP transfer of the
code, too
+
+2005-10-26 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: added a new var of class xmlrpc_client, indicating what
kind of
+ object will be stored in the value() of xmlrpcresp's gotten from the
send()
+ method: xmlrpxc objects, plain php variables or raw xml. This allow the
coder
+ to make use of xmlrpc_decode for better performances if he wishes so.
+ Modified creator of xmlrpcresp class to allow it to distinguish between
being
+ created out of raw xml or a plain php string (in the former case,
serialization
+ is still possible, opening a new world of opportunity for server-side
programming:
+ the php function implementing a web service has to provide the xml for
the
+ return value on its own).
+ Modified xmlrpc_client::multicall() to suit; also added a new parameter
which
+ allows calls to multicall without automatic fallback to many-calls in
case of
+ error (speeding up the process of doing a failed multicall() call quite
a bit)
+ Fixed two bugs in guess_encoding.
+ Audited all regexps and fixed some.
+ xmlrpc_client::send() does not call xmlrpcmsg::parseresponsefile()
anymore.
+ Shuffled parseresponse() a little bit
+
+ * testsuite.php: added a new testcase for the modifications to
multicall():
+ now we test the case where xmlrpc_client returns php values, too
+
+2005-10-24 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: fixed guess_encoding() to always return uppercase chars
+
+ * added new file: benchmark.php. It contains a few tests used to
evaluate
+ speed of the lib in common use cases
+
+ * added file parse_args.php, containing common code for benchmark and
+ testsuite, and modified testsuite.php accordingly
+
+ * modified makefile adding new files
+
+ * testsuite.php: added a couple of new test cases; fixed one warning
+ emitted in php 5 E_STRICT mode
+
+2005-10-20 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: modify 3d param of ParseResponse(), allowing the function
to
+ return the raw xml received as value of the xmlrpcresponse object.
+ This allows eg. to have epi-xmlrpc decode the xml for faster execution.
+
+2005-10-09 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: fixed error that prevented usage of HTTPS (the client
+ always determined that ssl support was not present)
+
+2005-10-03 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc, xmlrpcs.inc: revert direction of stack growth during xml
+ parsing for faster execution time; add support for detecting charset
+ encoding of received xml; add support for cookies; better parsing of
+ javadoc when building stub code in wrap_php_function; add a lot of
+ javadoc comments everywhere; rewrite most error messages
+
+ * testsuite.php: add many tests for newly introduced features
+
+ * server.php: add a couple of new functions to support debugging new
+ features
+
+ * debugger: add switches to enable all the latest lib features; minor
+ improvements to layout
+
+ * synch included phpunit with latest PEAR release
+
+ * reorganize files included in the distribution in a new hierarchy of
folders
+
+ * bump revision number to 2.0RC1 and release
+
+2005-8-14 Miles Lott <address@hidden>
+
+ * xmlrpc.inc, xmlrpcs.inc: Remove all use of eval() to avoid potential
+ security hole.
+
+ * As of this release we are no longer php3-compatible.
+
+2005-8-10 Miles Lott <address@hidden>
+
+ * xmlrpc.inc, xmlrpcs.inc: Switched to using $GLOBALS instead of calling
+ global $varname
+
+2005-07-22 Miles Lott <address@hidden>
+
+ * Removed: bug_* files
+
+2005-07-14 Gaetano Giunta <address@hidden>
+
+ * debugger: added a workaround to disable using the debugger for
attacking
+ older versions of the lib
+
+ * testsuite.php: added code to test wrap_xmlrpc_method;
+ use different wording for failed tests
+
+ * xmlrpcs.inc: change for() with foreach() in system.* methods
implementations;
+ remove a possible cause of php warning;
+
+ * xmlrpc.inc: let wrap_php_function and wrap_xmlrpc_method find suitable
+ function names if default function names are already in use;
+ correct wrap_xmlrpc_method to not set http protocol to 1.0 when not
asked to;
+ detect curl compiles without SSL
+
+2005-07-14 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: more auto-fix of xmlrpc_client path: '' -> '/';
+ change to the method used for detecting failed evals (php 4.0.x
compatibility);
+ complete rework of return-by-ref functions to comply with php 4.4.0
+
+ * xmlrpcs.inc: change to the method used for detecting failed evals
(php 4.0.x
+ compatibility)
+
+ * testsuite.php: major rewrite of the multi- tests, to give better
feedback on
+ number of failed tests;
+ flush html page title to screen before starting tests;
+
+2005-07-13 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: let xmlrpcmsg creator be forgiving of target paths that
miss the
+ starting '/' char;
+ completely reworked assign-by-ref to be compliant with php 4.4.0
stricter
+ warnings
+
+ * testsuite.php: added ability to be run from cli: (really dumb)
separation of
+ html and plain text outputs + parsing of argv parameters
+
+2005-07-12 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: compatibility fixes with PHP versions 4.0.x (and remove
some for
+ PHP 3)
+
+ * xmlrpcs.inc: compatibility fixes for PHP 4.0.x versions
+
+ * testsuite.php: better support for running with php versions 4.0.x;
+ do not generate runtime errors but finish tests anyway if some calls to
+ localhost fail;
+ correctly detect a localhost port different from 80 for running tests
against
+
+2005-07-11 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: preliminary building of method signature and docs in
+ wrap_php_function;
+ fix a bug in extracting function description from javadoc block in
+ wrap_php_function;
+ small fix for better compatibility with php < 4.2.0
+
+ * added compat subdir with extra code, taken form PEAR package Compat,
to let
+ the lib run fine with php 4 versions < 4.1
+
+2005-07-10 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: some nazi whitespace corrections;
+ declared global $xmlrpcBoolean too (was the only one missing);
+ used @eval inside getval() to have less path disclosure security
reports filed
+ in the future;
+ added new global var: $xmlrpcValue, to be used in server dispatch maps
as
+ placeholder for a param which can be of any kind;
+ big chunks (but still incomplete) of javadoc parsing in
wrap_php_function
+ + changed type of return val - now it is the complete array to be put
in the
+ dispatch map
+
+ * xmlrpcs.inc: let previous error handler be called by server to handle
errors
+ even if in debug level 3;
+ default to compress responses if zlib installed;
+ added a new val useful for only checking number (not type) of params in
method
+ calls;
+ let user use object methods in dispatch map using the
+ array($obj, 'fmethodname') format
+
+ * server.php: Added code called by testsuite.php to exercise
registration of
+ object methods as xmlrpc methods and auto-registration of php functions
as xmlrpc
+ methods
+
+ * testsuite.php: added tests to exercice server registering object
methods as
+ xmlrpc methods and automatic registration of php functions as server
methods;
+ added a hint to enable debug if some test goes wrong;
+ renamed https test for better clarity
+
+2005-07-07 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: added function to be used for 'guestimating' charset
encoding of
+ received xml (not activated yet)
+
+ * server.php: Let server compress content by default if user asks so:
it allows
+ testsuite to check for compressed responses
+
+ * testsuite.php: added suite of tests for compressed responses; test
CURL
+ (http1.1) with all possible compression combinations too
+
+2005-07-06 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: Enable setting usage of keepalives on/off (for CURL
cases);
+ implement compression of xmlrpc requests; enable new syntax of
xmlrpclient
+ constructor: 1 - allow preferred http method to be set at creation time,
+ 2 - allow user to insert a single complete URL as only parameter and
parse it;
+ try to detect if curl is present whether it has been compiled w. zlib
to enable
+ automatically the reception of compressed responses
+
+ * xmlrpcs.inc: do not add into logs the content of the request, if it
was
+ received gzipped/deflated, to avoid breaking the xml sent back as
response
+ (NB: might be investigated further: is the problem caused by windows
chars in
+ the range 128-160 ?)
+
+ * testsuite.php: run all localhost tests 2 more times, to stress request
+ compression;
+ run all localhost tests in a row using keepalives, to test keepalive
+ functionality
+
+2005-07-05 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: let CURL pass back to caller function the complete PHP
headers
+ as it did before: it enables better logging / debugging of
communication;
+ small change to the way CURL declares its ability to receive compressed
+ messages (fix for the case where zlib is compiled in PHP but not in
curl);
+ added Keep-alive (ON BY DEFAULT) for http 1.1 and https messages (had
to modify
+ a lot of functions for that);
+ always make sure a 'Connection: close' header is sent with curl
connections if
+ keep-alive is not wanted
+
+ * phpunit.php: switched to PEAR PHPUnit (rel 1.2.3), since it is
maintained a
+ lot more than the old version we were using
+
+ * added new folder with code of phpunit classes
+
+ * testsuite.php: added a new run of tests to check for compliance of
client
+ when using http 1.1;
+ switched to PEAR PHPUnit classes;
+ divided test for client ability to do multicall() into 2 separate tests
+
+2005-06-30 Gaetano Giunta <address@hidden>
+
+ tagged and released version 1.1.1, backporting security fixes from HEAD
+
+2005-06-28 Gaetano Giunta <address@hidden>
+
+ * xmlrpcs.inc: fix changes introuced yesterday in a rush;
+ do not list system.* methods for a server that has them explicitly
disabled
+
+ * bug_inject.xml: new test case used to check for code injection
vulnerability
+
+ * testsuite.php: added a test case for zero parameters method calls;
+ added two test cases for recently found code injection vulnerabilities
+
+2005-06-27 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: (tentative) fix for security problem reported by
+ address@hidden: we were not properly php-escaping xml received for
+ BASE64 and NAME tags;
+ some more patching related to junk received in xml messages/responses:
if the
+ PHP code built from the parsed xml is broken, catch any generated errors
+ without echoing it to screen but take note of the error and propagate
to user
+ code
+
+ * xmlrpcs.inc: some more patching related to junk received in xml
messages/
+ responses: if the PHP code built from the parsed xml is broken, catch
any
+ generated errors without echoing it to screen but take note of the
error and
+ propagate to user code
+
+2005-06-24 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: fixed php_xmlrpc_encode detection of php arrays (again!);
+ removed from wrap_php_function the part about setting a custom error
handler
+ (it can be activated using the more general $server->setdebug(3) anyway)
+
+ * xmlrpcs.inc: added to server the capability to trap all processing
errors
+ during execution of user functions and add them to debug info inside
responses;
+ return a (new) xmlrpcerr response instead of raising some obscure php
execution
+ error if there is an undefined function in the dispatch map
+
+ * testsuite.php: Added new testcases for recently implemented stuff
+
+2005-06-23 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: added new method: xmlrpcval->structmemexists, to check for
+ presence of a wanted struct member without having to loop through all
members;
+ fix wrap_php_functions: correctly return false for php internal
functions,
+ whose param list is unknown;
+ let addscalar fail as it should if called on struct vals;
+ fix addstruct: do not fail when called for adding stuff to initialized
structs;
+ removed a warning generated when calling addscalar with inexistent type;
+ massive code review for speed: replaced each() loops with foreach(),
removed
+ lots of useless assignments and duplications of data;
+ added 'http11' as valid method param for xmlrpclient->send: makes use
of curl
+ for sending http 1.1 requests;
+ changed a couple '=' into '=&' where objects are returned;
+ fixed wrap_php_function() to better detect php errors while processing
wrapped
+ function
+
+ * xmlrpcs.inc: Fix php warnings generated when clients requested method
+ signature / description for a method that had none in its dispatch map;
+ turned server->debug into an integer value that will change the amount
of
+ logging going as comments into xmlrpc responses
+
+ * server.php: set default server debug level to 2
+
+ * testsuite.php: removed calls to deleted functions (xmlrpc_encode,
+ xmlrpc_decode);
+ added html page title describing target servers used for tests;
+ added an assign-by-ref
+
+ * phpunit.php: Do not consider as failures PHP 5 E_STRICT errors
(arbitrary
+ choice, but lib is targeted at PHP 4)
+
+2005-06-22 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: removed lottsa old code that had been left in commented
+
+ * xmlrpc.inc: fixed setting of proxy port
+
+ * xmlrpc.inc: removed one warning when trying to decompress junk sent as
+ deflated response
+
+ * xmlrpc.inc: changed the error messages (but not the code) that will
be found
+ in xmlrpcresponses when there are socket errors, to differentiate from
HTTP
+ errors
+
+ * xmlrpc.inc: refactored xmlrpcclient->sendpayloadHTTPS: now it calls a
new
+ method (sendpayloadCURL) that could be used also for generating HTTP 1.1
+ requests
+
+ * xmlrpc.inc: added two new methods: wrap_php_function and
wrap_xmlrpc_method:
+ designed to let the lazy programmer automagically convert php functions
to
+ xmlrpc methods and vice versa. Details are in the code
+
+ * debugger/*: added initial revision of a 'universal xmlrpc debugger'
+
+2005-06-20 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: replace usage of 'echo' with error_log when errors arise
+ in manipulation of xmlrpcval objects
+
+ * xmlrpc.inc: replaced <br> with <br /> in dump function
+
+ * xmlrpc.inc: added method structsize to xmlrpcval class (alias for
arraysize)
+
+ * xmlrpc.inc: addarray() now will add extra members to an xmlrpcval
object
+ of array type; addstruct() can be used to add members to an xmlrpcval
object
+ of struct type
+
+ * xmlrpcs.inc: Added member allow_system_funcs to server: controls
whether the
+ server accepts or not calls to system.* functions
+
+2005-05-10 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: fix regression in php_xmlrpc_encode when encoding php
hashes;
+ fix decompression of gzip/deflated xmlrpc responses;
+ set user agent string correctly in SSL mode (was forgetting lib name);
+ add allowed encoding http headers in requests;
+ do not pass http headers back from curl to parseresponse, to avoid
re-decoding
+ compressed xml or http 100 headers
+
+ * xmlrpcs.inc: added method setDebug;
+ renamed compress_output to compress_response;
+ do not try to set http headers if they have already been sent, because
trying
+ to do so will raise a PHP error, and if headers have been sent
something has
+ gone wrong already (shall we send a meaningful error response instead?)
+
+2005-05-08 Gaetano Giunta <address@hidden>
+
+ * xmlrpcs.inc, xmlrpcs.inc: reverted to usage of '=& new' for better
+ performance on (some) php4 installs.
+ NB: PHP 3 compatibility is deprecated from now on!
+
+ * xmlrpc.inc: decode xmlrpc boolean type to native php boolean
+
+ * xmlrpcs.inc, xmlrpcs.inc: switched $_xh[$parser] to $_xh, since
indexing
+ an array by object will give a warning in php 5 (and we were resetting
the
+ array of _xh elements on every call anyway)
+
+ * xmlrpc.inc: commented unused code used originally for escaping content
+
+ * xmlrpc.inc: commented deprecated methods xmlrpc_encode and
xmlrpc_decode
+
+ * xmlrpc.inc: php_xmlrpc_encode: encode integer-indexed php arrays as
xmlrpc
+ arrays instead of structs; if object given to encode is an xmlrpcval
return it
+ instead of reencoding (makes easier calling encode on an array of
xmlrpcvals)
+
+ * xmlrpcs.inc: added $debug field to server class; if false will prevent
+ the server from echoing debug info back to the client as xml comment
+
+ * xmlrpcs.inc: let the server add to the debug messages the complete
request
+ payload received and (if php installed as apache module) http headers,
so that
+ the client in debug mode can echo a complete fingerprint of the
communication
+
+ * xmlrpcs.inc: changed API of ParseRequest method: now it cannot be
called
+ without a 'data' parameter; added 2nd parameter (http encoding);
changed the
+ call to this method from inside service() method
+
+ * xmlrpc.inc, xmlrpcs.inc: enable both server and client to parse
compressed xml
+ (if php is compiled with zlib); client should also be able to decode
chunked
+ http encoding
+
+ * xmlrpc.inc: add support for proxies (only basic auth supported);
default port
+ is 8080 (if left unspecified)
+
+ * xmlrpc.inc: use lowercase for names of http headers received (makes
using
+ them much simpler, since servers can use any upper/lowercase
combination)
+
+ * xmlrpc.inc: bumped version number to '2.0 beta'
+
+2005-05-08 Gaetano Giunta <address@hidden>
+
+ * release of version 1.1
+
+2005-04-24 Gaetano Giunta <address@hidden>
+
+ * xmlrpcs.inc: removed charset declaration from xml prologue of
responses,
+ since we are now escaping all non-ascii chars in an
encoding-independent way
+
+ * bug_http.xml: modified to exercise some extra functonality of the lib
+ (it should now be failed by the current PEAR implementation of the lib)
+
+ * xmlrpc.inc: bumped up rev. number to 1.1
+
+ * doc/xmlrpc_php.xml, doc/announce1_1.txt: documentation updates
+
+ * Makefile: updated to reflect new xml doc source, modified filelist
+
+2005-04-17 Gaetano Giunta <address@hidden>
+
+ * client.php, agesort.php, introspect.php, introspect_demo.php,
+ which.php, test.pl, test.py: use as default target the server.php page
hosted
+ on phpxmlrpc.sf.net
+
+ * server.php: fix for register_globals off; refer to docs on
phpxmlrpc.sf.net
+
+2005-04-15 Miles Lott <address@hidden>
+
+ code formatting and comments
+
+2005-04-03 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: make use of global var $xmlrpcName in building User_Agent
HTTP
+ header (in conjunction with $xmlrpcVersion)
+
+ * agesort.php, client.php, comment.php, dicuss.php, mail.php,
server.php,
+ which.php: various janitorial fixes
+ + always html escape content received from xmlrpc server or from user
input
+ + make the scripts run fine with register_globals off an
register_long_arrays off
+ + always use the functions php_xmlrpc_en(de)code, even if the EPI
extension
+ is not installed
+ + in mail.php, allow user to see script source even if support for
.phps files
+ is not configured in the local web server
+
+ * testsuite.php: better detection of local webserver hostname for
running tests
+ against (if the user did not supply a webserver name)
+
+2005-03-21 Gaetano Giunta <address@hidden>
+
+ * xmlrpcs.inc: revert to a PHP3 compatible script (change '=& new' to
'= new')
+
+ * xmlrpc.inc: revert to a PHP3 compatible script (lottsa fixes)
+
+ * testsuite.php: default to using local server as test target if no user
+ provided values are available instead of heddley.com server
+
+ * testsuite.php: play nice to PHP3 in retrieving user-passed values
+
+ * testsuite.php: fix constructor method name for a type of tests
+
+ * phpunit.php: fix all cases of call-time-pass-by-ref
+
+ * phpunit.php: rename Exception class to _Exception if the script is
run with
+ PHP 5 (exception is a reserverd word)
+
+2005-03-19 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: fixed bug in new http header parsing code in case there is
+ no correct separator between response headers and body
+
+ * xmlrpc.inc: added recognizing and stripping of HTTP/1.1 100 response
headers
+
+ * xmlrpc.inc: strip extra whitespace from response body, as well as any
junk
+ that comes after the last </MethodResponse> tag. It allows the server
code to
+ be put on public providers that add e.g. javascript advertising to
served pages
+
+ * xmlrpc.inc: removed unused parts of code, trailing whitespace
+
+ * xmlrpc.inc: fix possible bug (?) in xmlrpc_ee for BOOLEAN values:
true was
+ being handled differently than false
+
+ * testsuite.php: added a new file-based test to stress the response
parsing
+ modifications recently introduced; enabled debugging for file based
tests
+
+2005-03-15 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: fixed missing declaration of global vars in xmlrpc_dh,
+ sendpayloadhttps and sendpayloadhttp10
+
+ * xmlrpc.inc: changed error message for invalid responses: 'enable
debugging'
+ is more clear that 'enabling debugging' (the user is being encouraged
to do it)
+
+ * xmlrpc.inc: rewrote HTTP response header parsing. It should be more
tolerant
+ of invalid headers, give more accurate error messages and be marginally
faster,
+ too.
+
+ * xmlrpc.inc: cosmetic whitespace fixes and remove useless one-liners
+
+ * xmlrpc.inc: build a shorter PHP command line to be evaluated for
rebuilding
+ values from parsed xml: use '$val =& nex xmlrpcval("value")' for string
values
+ instead of '$val =& nex xmlrpcval("value", $xmlrpcString)'
+
+ * xmlrpc.inc: fix change introduced 2005/01/30 moving call to
curl_close()
+ too early: it did not work on error situations
+
+ * testsuite.php: fix name of testAddingTest method, renamed
testErrosString
+ into testErrorString and removed useless warning for
register_globals=off case
+
+2005-02-27 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: do not echo XML parsing error to screen (it is already
dumped
+ into error log)
+
+ * xmlrpc.inc: set hdrs field into response object in case of XML
parsing error
+ (uniform behaviour with other responses)
+
+2005-02-26 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: use global var $xmlrpcVersion as number for user agent
string
+
+ * xmlrpcs.inc: eliminate server side PHP warning and give back to caller
+ a better error msg in case the called method exists but no signature
matches
+ the number of parameters
+
+2005-02-20 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: accept a + sign in front of floats / integers, since the
spec
+ clearly mentions it
+
+ * xmlrpc.inc, xmlrpcs.inc: renamed function XmlEntities to
xmlrpc_encode_entitites,
+ to avoid using the same name as an array already defined
+
+ * xmlrpc.inc: fix bug introduced with escaping of UTF8 chars in xmlrpc
error
+ responses: correct behaviour is to escape chars inside serialize(), not
when
+ calling the xmlrpcresp creator
+
+ * testsuite.php: made test suite more friendly to modern PHP configs,
allowing
+ register_globals to be off and to set in the URL all testing parameters;
+ added tests for newly introduced fixes; renamed existing tests acording
to the
+ docs inside phpunit.php (e.g. no subclass of TestCase should have a name
+ starting with test...)
+
+2005-02-19 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: accept patch 683153 by mah0: if timeout is set, allow all
socket
+ operations to timeout at the given time, not only the socket connection
+
+2005-02-13 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: be tolerant to double values received in exponential
notation:
+ even though the spec forbids their usage PHP is fine with them
+
+ * xmlrpc.inc: fix bug: new xmlrpcval('-1') was creating an empty value
instead
+ of a string value!
+
+ * xmlrpc.inc, xmlrpcs.inc: fix the payload encoding changes introduced
by
+ Andres Salomon on 2004-03-17: sending named html entities inside an xml
chunk
+ makes it invalid, and thus renders the lib absolutely non-interoperable
with
+ any other xmlrpc implementation; moreover the current implementation
only ever
+ worked for non-ascii requests, while breaking client-parsing of
responses
+ containing non-ascii chars.
+ The principle of using entities is preserved though, because it allows
the
+ client to send correct xml regardless of php internal charset encoding
vs.
+ xml request charset encoding, but using 'character references' instead.
+
+ * xmlrpc.inc: encode (non-ascii) chars into charset entities also for
error
+ strings
+
+ * xmlrpcs.inc: encode (non-ascii) chars into charset entities also for
debug
+ messages
+
+ * xmlrpcs.inc: added 'Accept-Charset' header in http request to let the
server
+ know what kind of charset encoding we do expect to be used for responses
+
+ * xmlrpc.inc, xmlrpcs.inc: explicitly tell the xml parser what charset
the
+ application expects to receive content in (notably strings). A new
variable,
+ $xmlrpc_internalencoding, (defaulting to ISO-8859-1) defines what
charset the
+ parser will use for passing back string xmlrpcvals to the PHP
application
+ (both server-side and client-side).
+ This allows transparent usage of e.g. UTF-8 for encoding xml messages
between
+ server and client and ISO-8859-1 for internal string handling.
+ ISO-8859-1 is, AFAIK, PHP internal encoding for all installs except
+ mbstring-enabled ones.
+
+2005-02-12 Gaetano Giunta <address@hidden>
+
+ * xmlrpcs.inc: use '$var =& new(' construct to assign objects: on older
versions
+ of PHP objects are first built then copied over if the ampersand is
omitted.
+ Using it should make the code a little bit faster...
+
+ * doc/xmlrpc.php: update lib version number, release date in
preparation for
+ next release
+
+ * makefile: update lib version number in preparation for next release
+
+ * xmlrpc.inc: split up parsing of xmlrpc INT and DOUBLE values. This
allows
+ finer-grained control over valid values: now the '.' char is not allowed
+ any more inside int values.
+
+ * xmlrpc.inc: fix for bug #560303: ints and doubles starting with '0'
chars are
+ no more parsed as octal values
+
+2005-01-30 Gaetano Giunta <address@hidden>
+
+ * xmlrpc.inc: Modifed last change by Miles: the functions
php_xmlrpc_encode
+ and php_xmlrpc_decode are now always defined, regardless of the
existence of
+ XMLRPC-EPI. This allows users to start using these functions as the
'default'
+ functions, and pave the way for future deprecation of
xmlrpc_encode/encode
+ while maintaining a stable API.
+
+ * xmlrpc.inc: use '$var =& new(' construct to assign objects: on older
versions
+ of PHP objects are first built then copied over if the ampersand is
omitted.
+ Using it should make the code a little bit faster...
+
+ * xmlrpc.inc: close curl connection as soon as possible for https
requests:
+ it could save some memory / resources.
+
+ * xmlrpc.inc: added some extra info in the PHP error log message
generated
+ when an invalid xmlrpc integer/float value is encountered and we try to
+ deserialize it.
+
+ * xmlrpc.inc: added @ char before fsockopen to avoid echoing useless
warnings
+ when connection to server fails; added the same to avoid echoing
warnings when
+ deserializing data of an unknown type
+
+ * xmlrpc.inc: reset the _xh array on each xmlrpc call: otherwise a new
array
+ member is created for each consecutive call and never destroyed, thus
making it
+ impossible to build an xmlrpc-client daemon beacuse of memory leaking.
+
+ * xmlrpc.inc: declare global the variables that are used as 'constants',
+ so that xmlrpc.inc will work even if it is included from within a
function
+
+2004-12-27 Miles Lott <address@hidden>
+ * xmlrpc.inc: A new constant, XMLRPC_EPI_ENABLED, is defined depending
on
+ the existence of the function, xmlrpc_decode. This function will exist
in
+ PHP if the extension, XMLRPC-EPI (http://xmlrpc-epi.sourceforge.net), is
+ loaded. It defines the functions xmlrpc_encode and xmlrpc_decode, which
+ will conflict with functions of the same name in xmlrpc.inc. If this
+ extension is loaded, we instead use the names php_xmlrpc_encode and
+ php_xmlrpc_decode. Please look at server.php, testsuite.php, etc., for
+ how this should be handled if using these functions.
+
+2003-04-17 Andres Salomon <address@hidden>
+ * xmlrpc.inc: encode strings using htmlentities() instead of
+ htmlspecialchars(), and add xmlrpc_html_entity_xlate(). This
+ should fix longstanding issues with sending weird chars (from
+ non-USASCII codesets like UTF-8, ISO-8859-1, etc) that caused
+ the xml parser to choke. Multi-byte chars are now changed to
+ entities before sending, so that the xmlrpc server doesn't need
+ to know the encoding type of the POST data.
+ * xmlrpcs.inc: call xmlrpc_html_entity_xlate before parsing
+ request packet. The parser chokes on unknown entities (the
+ entities created by htmlentities() are exactly that; html
+ entities, not xml entities), so they must be converted from
+ name form (é) to numerical form (é).
+
+2003-01-12 Andres Salomon <address@hidden>
+
+ * released 1.0.99.2.
+ * Makefile: separate doc/Makefile a bit more from Makefile,
+ and add clean rules.
+
+2003-01-10 Andres Salomon <address@hidden>
+
+ * xmlrpc.inc: xmlrpcresp and parseResponse cleanups; variable
+ name renames ('xv' to 'val', for example), type checking, and
+ stricter default values.
+ * xmlrpc.inc: fix xmlrpcresp's faultcode; return -1 for FAULT
+ responses from the server whose faultcodes don't reflect any
+ errors.
+
+2003-01-08 Andres Salomon <address@hidden>
+
+ * xmlrpc.inc: rename $_xh[$parser]['ha'] to
+ $_xh[$parser]['headers'].
+ * xmlrpc.inc: fix bugs related to $_xh[$parser]['headers];
+ some places treated this as an array, others as a scalar.
+ Treat unconditionally as an array. Also wrap header debugging
+ output in PRE tags.
+
+2002-12-17 Andres Salomon <address@hidden>
+
+ * released 1.0.99.
+ * Makefile: changed the tarball format/dist rule to a more
+ conventional form, as well as normal release updates.
+ * xmlrpc.inc: added setSSLVerifyPeer and setSSLVerifyHost; as
+ of curl 7.10, various certificate checks are done (by default).
+ The default for CURLOPT_SSL_VERIFYHOST is to ensure the common
+ name on the cert matches the provided hostname. This breaks a
+ lot of stuff, so allow users to override it.
+ * doc/xmlrpc_php.sgml: updated documentation accordingly.
+
+2002-09-06 Geoffrey T. Dairiki <address@hidden>
+
+ Add support for system.multicall() to both the client
+ and the server.
+
+ * testsuite.php: Add new tests 'testServerMulticall',
+ and 'testClientMulticall'.
+
+ * xmlrpc.inc: Added new error messages for system.multicall().
+ * xmlrpcs.inc: Added new procedure call system.multicall().
+ See http://www.xmlrpc.com/discuss/msgReader$1208 for details.
+
+ * xmlrpc.inc: Added system.multicall functionality to
+ xmlrpc_client. xmlrpc_client::send can now take an array of
+ xmlrpcmsg's as an argument. In that case it will attempt
+ to execute the whole array of procure calls in a single
+ HTTP request using system.multicall(). (If that attempt fails,
+ then the calls will be excuted one at a time.) The return
+ value will be an array of xmlrpcresp's (or 0 upon transport
+ failure.)
+
+2001-11-29 Edd Dumbill <address@hidden>
+
+ * xmlrpc.inc: fixed problem with processing HTTP headers that
+ broke any payload with more than one consecutive newline in it.
+ also initialise the 'ac' array member to empty string at start.
+ * testsuite.php: added unit test to exercise above bug
+ * xmlrpcs.inc: fixed uninitialized variable $plist
+
+2001-09-25 Edd Dumbill <address@hidden>
+
+ * xmlrpc.inc: applied urgent security fixes as identified by Dan
+ Libby
+
+2001-08-27 Edd Dumbill <address@hidden>
+
+ * xmlrpc.inc: Merged in HTTPS support from Justin Miller, with a
+ few additions for better traceability of failure conditions. Added
+ small fix from Giancarlo Pinerolo. Bumped rev to 1.0. Changed
+ license to BSD license.
+
+2001-06-15 Edd Dumbill <address@hidden>
+
+ * xmlrpcs.inc: Added \r into return MIME headers for server class
+
+2001-04-25 Edd Dumbill <address@hidden>
+
+ * server.php: Added interop suite of methods.
+
+2001-04-24 Edd Dumbill <address@hidden>
+
+ * testsuite.php: added in test case for string handling bug.
+
+ * xmlrpc.inc: merged in minor fixes from G Giunta to fix
+ noninitialization. Created new method, getval(), which includes
+ experimental support for recreating nested arrays, from Giunta and
+ Sofer. Fixed string handling bug where characters after </string>
+ but before </value> weren't ignored. Added in support for native
+ boolean type into xmlrpc_encode (Giunta).
+
+ * xmlrpcs.inc: updated copyright notice
+
+2001-01-15 Edd Dumbill <address@hidden>
+
+ * xmlrpc.inc: fixed bug with creation of booleans. Put checks in
+ to ensure that numbers were really numeric. Fixed bug with
+ non-escaping of dollar signs in strings.
+
+ * testsuite.php: created test suite.
+
+2000-08-26 Edd Dumbill <address@hidden>
+
+ * xmlrpcs.inc: added xmlrpc_debugmsg() function which outputs
+ debug information in comments inside the return payload XML
+
+ * xmlrpc.inc: merged in some changes from Dan Libby which fix up
+ whitespace handling.
+
+ * xmlrpcs.inc: added Content-length header on response (bug from
+ Jan Varga <address@hidden>. This means you can no longer print
+ during processing
+
+ * xmlrpc.inc: changed ereg_replace to str_replace in several
+ places (thanks to Dan Libby <address@hidden> for this).
+
+ * xmlrpc.inc: added xmlrpc_encode() and xmlrpc_decode() from Dan
+ Libby--these helper routines make it easier to work in native PHP
+ data structures.
+
+2000-07-21 Edd Dumbill <address@hidden>
+
+ * xmlrpc.inc: added xmlrpc_client::setCredentials method to pass
+ in authorization information, and modified sendPayload* methods to
+ send this OK. Thanks to Grant Rauscher for the impetus to do this.
+ Also, made the client send empty <params></params> if there are no
+ parameters set by the user.
+
+ * doc/xmlrpc_php.sgml: updated documentation to reflect recent
+ changes
+
+
+2000-07-18 Edd Dumbill <address@hidden>
+
+ * server.php: added examples.invertBooleans method to server as a
+ useful test method for boolean values.
+
+ * xmlrpc.inc: rearranged the way booleans are handled to fix
+ outstanding problems. Fixed calling addScalar() on arrays so it
+ works. Finally fixed backslashification issues to remove the
+ problem will dollar signs disappearing.
+
+ * booltest.php: really fixed booleans this time.
+
+2000-06-03 Edd Dumbill <address@hidden>
+
+ * xmlrpcs.inc: made signature verification more useful - now
+ returns what it found was wrong
+
+ * xmlrpc.inc: fixed bug with decoding dateTimes. Also fixed a bug
+ which meant a PHP syntax error happened when attempting to receive
+ empty arrays or structs. Also fixed bug with booleans always being
+ interpreted as 'true'.
+
+ * server.php: Added validator1 suite of tests to test against
+ validator.xmlrpc.com
+
+
+2000-05-06 Edd Dumbill <address@hidden>
+
+ * released 1.0b6
+
+ * added test.pl and test.py, Perl and Python scripts that exercise
+ server.php somewhat (but not a lot)
+
+ * added extra fault condition for a non 200 OK response from the
+ remote server.
+
+ * added iso8601_encode() and iso8601_decode() to give some support
+ for passing dates around. They translate to and from UNIX
+ timestamps. Updated documentation accordingly.
+
+ * fixed string backslashification -- was previously a little
+ overzealous! new behavior is '\' --> '\\' and '"' -->
+ '\"'. Everything else gets left alone.
+
+2000-04-12 Edd Dumbill <address@hidden>
+
+ * updated and bugfixed the documentation
+
+ * fixed base 64 encoding to only happen at serialize() time,
+ rather than when a base64 value is created. This fixes the double
+ encoding bug reported by Nicolay Mausz
+ <address@hidden>. The same approach ought to be taken with
+ encoding XML entities in the data - this is a TODO.
+
+ * integrated further code from Peter Kocks: used his new code for
+ send(), adding a second, optional, parameter which is a timeout
+ parameter to fsockopen()
+
+1999-10-11 Edd Dumbill <address@hidden>
+
+ * added bug fixes from Peter Kocks <address@hidden>
+
+1999-10-10 Edd Dumbill <address@hidden>
+
+ * updated the documentation
+
+1999-10-08 Edd Dumbill <address@hidden>
+
+ * added system.* methods and dispatcher, plus documentation
+
+ * fixed bug which meant request::getNumParams was returning an
+ incorrect value
+
+ * added signatures into the dispatch map. This BREAKS
+ COMPATIBILITY with previous releases of this code
+
+1999-08-18 Edd Dumbill <address@hidden>
+
+ * made entity encoding and decoding transparent now on string
+ passing.
+
+ * de-globalised the globals in the parse routines, using an
+ associative array to hold all parser state $_xh
+
+ * changed default input encoding to be UTF-8 to match expectation
+
+ * separated out parseResponse into parseResponse and
+ parseResponseFile so that you can call parseResponse on a string
+ if you have one handy
+
+1999-07-20 Edd Dumbill <address@hidden>
+
+ * Moved documentation into Docbook format
+
+1999-07-19 Edd Dumbill <address@hidden>
+
+ * Added an echo server into server.php and echotest.php, a client
+ which will exercise the new echo routine.
+
+ * Added test for no valid value returned: in this case will now
+ throw the error "invalid payload"
+
+ * Added serialize() method to xmlrpcresp to return a string with
+ the response serialized as XML
+
+ * Added automatic encoding and decoding for base64 types
+
+ * Added setDebug() method to client to enable HTML output
+ debugging in the client
+
+1999-07-08 Edd Dumbill <address@hidden>
+
+ * Improved XML parse error reporting on the server side to send it
+ back in a faultCode packet. expat errors now begin at 100
+
+1999-07-07 Edd Dumbill <address@hidden>
+
+ * Changed the structmem and arraymem methods of xmlrpcval to always
+ return xmlrpc vals whether they referred to scalars or complex
+ types.
+
+ * Added the server class and demonstrations
+
+ * Fixed bugs in the XML parsing and reworked it
Deleted: trunk/phpgwapi/inc/xmlrpc/Changelog
===================================================================
--- trunk/phpgwapi/inc/xmlrpc/Changelog 2014-12-18 23:28:36 UTC (rev 12483)
+++ trunk/phpgwapi/inc/xmlrpc/Changelog 2014-12-19 11:56:42 UTC (rev 12484)
@@ -1,1573 +0,0 @@
-2009-09-05 - G. Giunta (address@hidden)
-
- * xmlrpcs.inc, xmlrpcs.inc: remove code that was left for compatibility
- with php 4; use __METHOD__ constant for error messages instead of
hardcoded
- values
-
- * xmlrpcs.inc: catch exceptions thrown during execution of invoked
methods;
- check for $_SERVER having been disabled via php.ini and log an error if
so
-
- * server.php, testsuite.php: add a new test and server method for
exception
- catching in the server
-
- * xmlrpc.inc: added new method SetUserAgent to client to allow having
different
- user-agent http headers
-
- * tagged and released as 3.0.0 beta
-
-2009-08-05 - G. Giunta (address@hidden)
-
- * xmlrpc_wrappers.inc: improve compatibility with php 5.0 when
registering
- class/object methods
-
-2009-08-02 - G. Giunta (address@hidden) thanks Laurens
-
- * xmlrpcs.inc: add a new member var in server class to allow fine-tuning
- of the encoding of returned values when the server is in 'phpvals' mode;
- allow servers in 'xmlrpcvals' mode to also register plain php functions
by
- defining them in the dispatch map with an added option:
- 'parameters_type' => 'phpvals' (feature request #2806628)
-
- * xmlrpc.inc: added new method xmrlpc_client::SetCurlOptions($array) to
- allow extra flexibility in tweaking http config, such as explicitly
- binding to an ip address (feature request #2787468); fix bad encoding if
- same object is encoded twice using php_xmlrpc_encode; removed some
by-ref
- assignments and declarations
-
-2009-07-31 - G. Giunta (address@hidden)
-
- * xmlrpc.inc: add support for dateTime objects in both in
php_xmlrpc_encode
- and as parameter for constructor of xmlrpcvals; add support for
timestamps
- as parameter for constructor of xmlrpcvals; add option
'dates_as_objects' to
- php_xmlrpc_decode to return dateTime objects for xmlrpc datetimes
-
- * benchmark.php, xmlrpc_wrappers.inc: remove usage of split(),
deprecated in
- php 5.3
-
- * benchmark.php: fixed url of server page used for testing; improved
- verification of correspondence of test results; added more variants for
- http options comparison
-
- * verify_compat.php: check for php version 5 for client side too
-
- * makefile: remove from build the compat directory
-
-2009-07-26 - G. Giunta (address@hidden)
-
- * server.php: remove usage of ereg*(), deprecated in php 5.3
-
-2009-07-16 - G. Giunta (address@hidden) thanks Jean-Jacques Sarton
-
- * xmlrpc.inc: add support for the <ex:nil/> from the apache library,
both
- in input and output (feature request #...)
-
- * xmlrpc.inc, testsuite.php: remove usage of split(), deprecated in php
5.3
-
- * testsuite.php: flush better results with output_buffering on
-
- * server: php: avoid one warning about static function calls
-
-2009-07-02 - G. Giunta (address@hidden) thanks Heiko Stuebner
-
- * xmlrpc.inc: fix: when checking the parameters against the signatures
xmlrpc
- checks for "array" but PHP returns "Array" resulting in a not matches
signature
-
-2009-05-07 - G. Giunta (address@hidden)
-
- * replace all usage of '= & new' with '= new', as this is deprecated in
php 5
- and has been shown to cause problems too
-
-2009-05-06 - G. Giunta (address@hidden)
-
- * create php4 branch, rename trunk to 3.0.0beta - it will be the
php5-only version
-
- * xmlrpc.inc: removed test for php version and inclusion of compat
patches for really
- really old versions of php 4
-
-2009-03-16 - G. Giunta (address@hidden) thanks Tommaso Trani
-
- * move from CVS to SVN on sf.net; file layout now is the same as in
packaged lib
-
- * xmlrpc.inc: fix php warning when receiving 'false' in a bool value
-
- * Makefile, doc/Makefile: alter to follow new file layout
-
- * tagged and released as 2.2.2
-
-2009-02-03 - G. Giunta (address@hidden)
-
- * debugger/action.php: improve code robustness when parsing
system.listmethods
- and system.describemethods call
-
- * xmlrpc.inc: format floating point values using the correct decimal
separator
- even when php locale is set to one that uses comma (bug #2517579);
- use feof() to test if socket connections are to be closed instead of the
- number of bytes read (bug #2556209)
-
-2008-10-29 - G. Giunta (address@hidden)
-
- * xmlrpcs.inc: allow add_to_map server method to add docs for single
params, too
-
-2008-09-20 - G. Giunta (address@hidden)
-
- * xmlrpc_wrappers.inc: added the possibility to wrap for exposure as
xmlrpc
- methods plain php class methods, object methods and even whole classes
-
- * testsuite.php, server.php: added test cases for the new code
-
-2008-09-07 - G. Giunta (address@hidden) thanks Bruno Zanetti Melotti
-
- * xmlrpc.inc: be more tolerant in detection of charset in http headers
(fix for bug #2058158)
-
-2008-04-05 - G. Giunta (address@hidden)
-
- * xmlrpc.inc: fix encoding of UTF8 chars outside of the BMP
-
- * xmlrpcs.inc: fix detection of zlib.output_compression (thanks xbert)
-
-2008-03-06 - G. Giunta (address@hidden)
-
- * tagged and released as 2.2.1
-
- * Makefile: improve usage on windows xp despite cmd's broken mkdir
-
-2007-10-26 - G. Giunta (address@hidden) thanks sajo_raftman
-
- * xmlrpc.inc: remove one warning in xmlrpc_client creator
-
-2007-10-26 - G. Giunta (address@hidden)
-
- * xmlrpc.inc: improve support for windows cp1252 character set (still
- commented in the code)
-
-2007-09-05 - G. Giunta (address@hidden)
-
- * xmlrpc.inc, xmlrps.inc: do not try to set invalid charsets as output
for
- xml parser, even if user set them up for internal_encoding (helps
encoding
- to exotic charsets, while decoding to UTF8)
-
-2007-09-05 - G. Giunta (address@hidden)
-
- * xmlrpc.inc: fix parsing of '1e+1' as valid float
-
-2007-09-01 - G. Giunta (address@hidden), thanks Frederic Lecointre
-
- * xmlrpcs.inc: allow errorlevel 3 to work when prev. error handler was
a static method
-
- * testsuite.php: fix test on setCookie()
-
-2007-08-31 - G. Giunta (address@hidden)
-
- * xmlrpc.inc: minor fix in cookie parsing
-
-2007-07-31 - G. Giunta (address@hidden)
-
- * xmlrpc.inc: Fix usage of client::setcookie() for multiple cookies in
non-ssl mode
-
-2007-07-26 - G. Giunta (address@hidden) thanks Mark Olive
-
- * xmlrpc.inc: Fix for bug # 1756274 (usage of cookies in ssl mode)
-
-2007-04-28 - G. Giunta (address@hidden)
-
- * xmlrpc.inc: give more detailed curl information when DEBUG = 2; fix
handling
- of case where curl w. keepalive is used and one connection of many fails
-
- * testsuite improvements: add one testcase; give feedbcak while tests
are
- running
-
-2007-04-01 - G. Giunta (address@hidden)
-
- * doc/makefile, doc/custom.fo.xsl: improve pdf rendering of php source
code
-
- * makefile: recover version number from source instead of having it
hardcoded
-
-2007-03-10 - G. Giunta (address@hidden)
-
- * doc/makefile, doc/convert.php, doc/*.xsl: created customizations xslt
to
- produce a documentation more in line with the php manual, esp. with
regards
- to functions synopsis; added jellyfish book cover as local resource and
a
- screenshot of the debugger too; various updates to the manual source;
added
- a php script to highlight examples inside html docs
-
-2007-03-09 - G. Giunta (address@hidden)
-
- * debugger/action.php: css tweak for IE
-
- * added phpunit license file in the phpunit directory
-
- * added link to license (on sf.net site) to many files
-
-2007-03-04 - G. Giunta (address@hidden)
-
- * Makefile, doc/makefile: assorted improvements
-
-2007-03-03 - G. Giunta (address@hidden)
-
- * xmlrpc.inc: micro-optimization in declaration of global vars
xmlrpcerr, xmlrpcstr
-
-2007-02-25 Gaetano Giunta <address@hidden>
-
- * removed a couple of warnings emitted in testsuite.php
-
- * doc/makefile: added command for invocation of xxe to generate docs
-
- * better rendering of docs in xml+css format for function prototypes
-
- * updated documentation
-
- * tagged and released as 2.2
-
-2007-02-22 Gaetano Giunta <address@hidden>
-
- * debugger: workaround for case of magic_quotes_gpc being set (properly
- unescape user input); fix case of user not setting msg id in jsonrpc
case
- when executing a remote method; allow strings, false, true and null as
msg id
-
-2007-02-13 Gaetano Giunta <address@hidden>
-
- * testsuite.php: added one test for automatic encoding/decoding case
-
-2007-02-05 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: slightly faster encoding of UTF8 data to ascii
-
-2007-01-11 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: when calling client::multicall() with an unspecified http
version,
- use the client default rather than the fixed 'http 1.0'
-
-2006-09-17 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc, xmlrpcs.inc, testsuite.php: added support for <NIL/> and
- system.getCapabilities, and one more testcase to go with it
-
-2006-09-05 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: fix support for https through proxies; client parses debug
- messages sent by client even for compressed responses;
-
- * testsuite.php, parse_args.php: added 3 test cases for proxy
connections
-
-2006-09-01 Gaetano Giunta <address@hidden>
-
- xmlrpc_wrappers.inc: add two more options in wrap_xmlrpc_method and fix
- typo to allow obj encoding
-
-2006-08-28 Gaetano Giunta <address@hidden>
-
- * xmlrpc_wrappers.inc: more options added to wrap_php_function and
- wrap_xmlrpc_method
-
- * xmlrpc.inc: pave the way to support for <nil/>
-
- * doc/xmlrpc_php.xml documentation updated
-
- * tagged and released as 2.1
-
-2006-08-25 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: stricter parsing of incoming messages: detect two DATA
elements
- inside an ARRAY, a STRUCT or SCALAR inside an already filled VALUE
-
- * testsuite.php: added two testcases to check for the above cases
-
-2006-08-24 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: more code optimization in xmlrpcval::serialize() and
- php_xmlrpc_encode(); fixed bug where struct elements with non-ascii
chars
- in their name would not be properly encoded
-
- * testsuite.php: added a testcase for the new bug
-
-2006-08-23 Gaetano Giunta <address@hidden>
-
- * remove old code left in comments across many files; many more javadoc
- comments added
-
- * xmlrpc.inc: a bit of code optimization: reorder switch() statements of
- xml parsing element handlers; inline code for xmlrpcval() - this breaks
- new xmlrpcval('true') and changes error msgs on new xmlrpcval($x,
'invalid_type')
-
- * testsuite.php: change according to above
-
- * benchmark.php: basic support for xdebug 2 profiling
-
-2006-08-22 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: addscalar() and addstruct() where not returning 1 when
adding
- data to an already formed value
-
-2006-08-21 Gaetano Giunta <address@hidden>
-
- * xmlrpcs.inc, xmlrpc.inc: added support for emulating the
xmlrpc-extension
- API (the full emulation layer is part of the extras package);
- fix support for the HTTP 'deflate' encoding
-
- * xmlrpc.inc: better support for http compression with and without CURL;
- a minor decoding speedup; added a new function: php_xmlrpc_decode_xml(),
- that will convert into the appropriate object the xml representation of
- either a request, response or a single value; log reception of invalid
- datetime values
-
- * xmlrpcs.inc: add a new parameter and return type to server->service();
- let server->add_to_map() accept method definitions without parameter
types
-
- * xmlrpc_wrappers.inc: more logging of errors; wrap_php_functions now
takes
- more options; better support for jsonrpc; escape quote chars when
wrapping
- remothe servers / remote methods
-
- * added cvs Id tag to files that missed it; speling fixes; updated NEWS
files
-
-2006-08-07 Gaetano Giunta <address@hidden>
-
- * assorted fixes to make the suite more compatible with php 4.0.5 and
5.x
-
-2006-07-02 Gaetano Giunta <address@hidden>
-
- * xmlrpc_warppers.inc: added new function to wrap entire remote server
into
- a local php class; changed default calling synopsis of
wrap_remote_method,
- to ease passing multiple options at a time (but old syntax still works!)
-
- * updated makefile, debugger/action.php in accord with the above
-
-2006-06-30 Gaetano Giunta <address@hidden>
-
- * added to debugger capability to generate json-rpc code stubs
-
- * added to debugger capability to load and launch self correctly if
- controller.php is called directly from outside processes (single url
access)
-
-2006-06-26 Gaetano Giunta <address@hidden>
-
- * moved wrap_php_functions and wrap_xmlrpc_method into a file of their
own.
- This will let us add further stub functionality without the base lib
growing too much.
- All of the files that reference this functionality have been modified
accordingly.
-
- * made wrap_xmlrpc_method generate better code (with php type
juggling), and
- some phpdoc for the generated function, too
-
- * added to debugger an option to produce for the user the generated php
code
- for wrapping a call to a remote method into a php function
-
-2006-06-22 Gaetano Giunta <address@hidden>
-
- * xmlrpcs.inc: added description of parameters for system.xxx methods
(useful with
- html-self-documenting servers);
- server->service() now returns response object, in case user has need
for it...
-
- * xmlrpc.inc: save full response payload into xmlrpcresp obj for better
debugging
-
-2006-06-15 Gaetano Giunta <address@hidden>
-
- * verify_compat.php: more tests
-
-2006-06-09 Gaetano Giunta <address@hidden>
-
- * xmlrpcs.inc: fixed sending of compressed responses when output
compression
- is already enabled in php.ini
-
- * verify_compat.php: split tests between server and client cases
-
-2006-05-29 Gaetano Giunta <address@hidden>
-
- * added new file: verify_compat.php, to help troubleshooting platform
- support for the library; added it to makefile, too
-
-2006-05-24 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: removed residual usage of regexp in favour of pregexps;
fixed
- a bug in specifying Host http header with non std ports
-
-2006-05-23 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: improvements to wrap_php_function: let it deal correctly
- with php functions returning xmlrpcresp objs; make it generate also
- docs for single parameters (useful for documenting_xmlrpc_server class)
-
-2006-05-22 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc, xmlrpcs.inc: minor performance tuning updates: replaced
- some explode vs. split, ereg vs. preg, single vs. double quotes
-
- * xmlrpc.inc: fix wrap_xmlrpc_method to NOT rebuild php objects received
- from the server by default, as it might pose a security risk
-
-2006-04-24 Gaetano Giunta <address@hidden>
-
- * minor fixes makefiles. Tagged and released as 2.0 final
-
-2006-04-22 Gaetano Giunta <address@hidden>
-
- * debugger/*: added option to set cainfo; improve web layout
-
- * xmlrpc.inc: set sslverifypeer to TRUE instaed of 1 by default
-
- * doc/php_xmlrpc.xml: documentation updates
-
-2006-04-21 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: added option to set ca certs dir instead of single cert
- (used to validate server in https connetions)
-
-2006-04-18 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: fixed bug in xmlrpcval::structmemexists()
-
- * testsuite.php: added test case for xmlrpcval::structmemexists()
-
-2006-04-03 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: add support for Digest and NTLM authentication, both to
server
- and to proxies (note: must use CURL for this to work)
-
- * debugger/*: add support for Digest/NTLM auth to remote servers
-
-2006-03-19 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: fix a bug parsing of 'true' bool values;
- added a new method to the client class: SetCaCertificate;
- add column number in xml parsing error messages;
- fix serialization of messages to ISO-8859-1 charset with php 5 (by
adding
- encoding to the xml prologue of generated messages)
-
- * xmlrpcs.inc: correct detection of charset in http headers;
- add column number in xml parsing error messages;
- fix serialization of responses to ISO-8859-1 charset with php 5 (by
adding
- encoding to the xml prologue of generated responses)
-
- * testsuite.php: added two more tests on charset encoding
-
- * NEWS: update info for impending release
-
-2006-03-23 Gaetano Giunta <address@hidden>
-
- * added a new demo file: simple_call.php
-
-2006-02-20 Gaetano Giunta <address@hidden>
-
- * xmlrpcs.inc: more error checking and logging with regard to user-coded
- method handler functions not being well behaved;
- fix a case where error handler would not be reset upon user function
- returning not valid xmlrpresp
-
- * xmlrpc.inc: fix bug in detection of php 4.3.0
-
- * Makefile: fix uppercase filenames
-
-2006-02-15
-
- * xmlrpc.inc: parse 'true' and 'false' as valid booleans, even though
the
- spec is quite clear on that; fix small bug w. internal_encoding = utf8;
add
- definition of $GLOBALS['xmlrpcNull'] for extensibility, e.g. json or
- extensions to the xmlrpc spec
-
-2006-02-05 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: fix bug in wrap_xmlrpc_method if client passed to
function has
- return_type=phpvals
-
- * all demo files: review code, add more comments and information
-
- * added 2 demo files: proxy.php (implementing an xmlrpc proxy server)
and
- wrap.php (showing usage of wrap_method_call)
-
-2006-02-04 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: fix bug in multicall in case of no fallback and server
error
-
-2006-01-30 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: fix recursive serialization of xmlrpcvals loosing UTF8
charset;
- correctly set type field of xmlrpcvals returned by send() calls
-
- * xmlrpcs.inc: add to server checks for correct return type of
user-coded
- method handling function; tolerate xmlrpcval instead of xmlrpcresp
-
- * minor change in xmlrpcresp internals, to ease subclassing (store
payload
- in an internal var on serialize(), same as xmlrpcclient does)
-
-2006-01-22 Gaetano Giunta <address@hidden>
-
- * benchmark.php: do not run http 1.1 tests if CURL notfound
-
- * Released as 2.0 Rc3
-
-2006-01-19 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: make xmlrpc_client::setDebug() accept int values instead
of
- boolean. At level 2, the request payload is printed to screen before
being
- sent; fix bug with repeated sending of the same msg object and using
request
- compression w. php 5.1.2 (objects passed by ref by default!!!)
-
- * xmlrpcs.inc: fix detection of clients accepting compressed responses
-
- * comment.php: remove warnings due to liberal usage of
$HTTP_POST/GET_VARS
-
- * benchmark.php: add a test using http compression of both requests and
- responses
-
- * testsuite.php: added test for fix in xmlrpc.inc
-
-2006-01-17 Gaetano Giunta <address@hidden>
-
- * xmlrpcs.php: minor fix: do not raise a PHP warning when std server is
- called via GET (global HTTP_RAW_POST_DATA undefined). Some might have
called
- it a security breach (path disclosure)...
-
-2006-01-15 Gaetano Giunta <address@hidden>
-
- * testsuite.php: minor fix to expected date format in http cookie hedaer
- to cope with PHP 5.1.2
-
-2006-01-05 Gaetano Giunta <address@hidden>
-
- * xmlrpcs.inc: merge code from the 'extras' subclass that allows server
- to register plain php functions in dispatch map instead of functions
- accepting a single xmlrpcmgs obj parameter.
- One step closer to the kitchen sink!!!
-
-2005-12-31 Gaetano Giunta <address@hidden>
-
- * xmlrpcs.inc: let the server accept 'class::method' syntax in the
dispatch
- map
-
- * testsuite.php, server.php: added new tests for the recent charset
encoding
- capabilities
-
-2005-12-24 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: correctly serialize() string xmlrpcvals that have been
- created out of non-string php variables, when internal encoding is UTF8;
- serialize to '0' int and double values created out of non-string php
- variables, eg. 'hello', instead of creating invalid xmlrpc;
- extend the php_xmlrpc_encode function to allow serializing string values
- to charsets other tha US-ASCII;
- minor tweak to xml parsing to allow correct parsing of empty strings
when
- in 'direct to php values' mode
-
- * xmlrpcs.inc: advances in system.multicall with plain php values
-
-2005-12-17 Gaetano Giunta <address@hidden>
-
- * xmlrpcs.inc: let the functions implementing the system.* methods work
- fine when called with plain php values as parameters instead of
xmlrpcmsg
- objects (multicall not quite finished yet...);
- encode level 3 debug info as base64 data, to avoid charset encoding hell
-
- * xmlrpc.inc: added a new xmlrpc_2_php_type function, to get the name of
- php types corresponding to xmlrpc types;
- in debug mode, when detecting base64 server debug info, print it out
fine
-
- * server.php: cosmetic fixes
-
-2005-12-09 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: remove one warning emitted when received xml contains an
- unknown tag; remove warnings emitted when custom error handler is set
- and user calls php_xmlrpc_encode/decode without the 2nd parameter
-
- * xmlrpcs.inc: added a param to service(), to allow the server to parse
- data other than the POST body (useful for subclassing and debugging);
- reworked the implementation of server debug messages at debug level 2:
- since the debug info generated has no known charset, and putting it back
- into the response's xml would most likely break it, send it back to the
- client as a base64 encoded comment. Clients can decode it if they need
it...
- Add some more javadocs
-
- * testsuite.php: modified the string test, to see if the server can echo
- back to the client the received data without breaking the response's xml
-
-2005-12-05 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc, xmlrpcs.inc: let server and client objects decide if they
- want to use some charset encoding other than US-ASCII for serialized
data:
- add a new var to both objects, and lots of parameters to function calls
- that took none up to now;
- refactored server method service() and parseRequest(), implementing a
- new parserequestHeaders() method to explicitly deal with HTTP
-
-2005-12-01 Gaetano Giunta <address@hidden>
-
- * moved the jsonrpc implementation and the new wsdl stuff to a separate
- CVS module; updated the makefile to reflect it
-
-2005-11-24 Gaetano Giunta <address@hidden>
-
- * modified php_xmlrpc_decode() to work on xmlrpcmessages too, besides
- xmlrpcvals. To achieve this, added a new method: xmlrpcmsg::kindOf()
-
-2005-11-22 Gaetano Giunta <address@hidden>
-
- * released as 2.0 RC2
-
-2005-11-21 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: fix warnings about references for PHP 4.1.X
-
- * Whitespace cleanup on all the lib
-
-2005-11-16 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: rewritten xmlrpc_encode_entitites adding two extra
parameters
- that specify input and output charset encodings. This corrects the bug
that
- prevented native UTF-8 strings to be correctly serialized (to have them
- encoded the user must set $xmlrpc_internalencoing appropriately).
-
- * xmlrpc.inc: added new method xmlrpcmsg::parseResponseHeaders(),
refactoring
- parseResponse(). This makes the code more modular and eases subclassing.
-
- * xmlrpc.inc: set cookies and http headers to xmlrpcresp objs even when
calls
- to send() do not complete correctly
-
- * added new file: jsonrpcs.inc, to accomodate server jsonrpc objects in
the future
-
- * jsonrpc.inc: slow progress...
-
-2005-11-10 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: fixed the xmlrpc_client send and sendpayloadhttps methods
- to fix errors in calling https servers;
- added a new xmlrpc_client->setkey method to allow usage of client-side
ssl
- certs in recent php builds;
- added to xmlrpcresp objects a content_type var, to be used in HTTP
headers
-
- * xmlrpcs.inc: separate generation of content-type http header and xml
prologue
- from the service() method, to ease subclassing
-
-2005-11-03 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: moved the 'text/xml' mimetype string as class var of the
xmlrpcmsg
- object instead of having it cabled into xmlrpc_client->send(): this
allows to
- create subclasses of xmlrpcmsg that use a different mimetype
-
- * jsonrpc.inc: added a new file, with an extremely experimental set of
classes,
- designed to implement a json-rpc client and server, taking advantage
of the
- existing xml-rpc infrastructure
-
-2005-10-28 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: changed constructor method for xmlrpcresp, making it
smarter in
- case user does not declare the type of value it is passing to it;
- minor changes in serialization of xmlrpcresp with error codes, so that
it
- utputs LF instead of CRLF on windows boxes after an FTP transfer of the
code, too
-
-2005-10-26 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: added a new var of class xmlrpc_client, indicating what
kind of
- object will be stored in the value() of xmlrpcresp's gotten from the
send()
- method: xmlrpxc objects, plain php variables or raw xml. This allow the
coder
- to make use of xmlrpc_decode for better performances if he wishes so.
- Modified creator of xmlrpcresp class to allow it to distinguish between
being
- created out of raw xml or a plain php string (in the former case,
serialization
- is still possible, opening a new world of opportunity for server-side
programming:
- the php function implementing a web service has to provide the xml for
the
- return value on its own).
- Modified xmlrpc_client::multicall() to suit; also added a new parameter
which
- allows calls to multicall without automatic fallback to many-calls in
case of
- error (speeding up the process of doing a failed multicall() call quite
a bit)
- Fixed two bugs in guess_encoding.
- Audited all regexps and fixed some.
- xmlrpc_client::send() does not call xmlrpcmsg::parseresponsefile()
anymore.
- Shuffled parseresponse() a little bit
-
- * testsuite.php: added a new testcase for the modifications to
multicall():
- now we test the case where xmlrpc_client returns php values, too
-
-2005-10-24 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: fixed guess_encoding() to always return uppercase chars
-
- * added new file: benchmark.php. It contains a few tests used to
evaluate
- speed of the lib in common use cases
-
- * added file parse_args.php, containing common code for benchmark and
- testsuite, and modified testsuite.php accordingly
-
- * modified makefile adding new files
-
- * testsuite.php: added a couple of new test cases; fixed one warning
- emitted in php 5 E_STRICT mode
-
-2005-10-20 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: modify 3d param of ParseResponse(), allowing the function
to
- return the raw xml received as value of the xmlrpcresponse object.
- This allows eg. to have epi-xmlrpc decode the xml for faster execution.
-
-2005-10-09 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: fixed error that prevented usage of HTTPS (the client
- always determined that ssl support was not present)
-
-2005-10-03 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc, xmlrpcs.inc: revert direction of stack growth during xml
- parsing for faster execution time; add support for detecting charset
- encoding of received xml; add support for cookies; better parsing of
- javadoc when building stub code in wrap_php_function; add a lot of
- javadoc comments everywhere; rewrite most error messages
-
- * testsuite.php: add many tests for newly introduced features
-
- * server.php: add a couple of new functions to support debugging new
- features
-
- * debugger: add switches to enable all the latest lib features; minor
- improvements to layout
-
- * synch included phpunit with latest PEAR release
-
- * reorganize files included in the distribution in a new hierarchy of
folders
-
- * bump revision number to 2.0RC1 and release
-
-2005-8-14 Miles Lott <address@hidden>
-
- * xmlrpc.inc, xmlrpcs.inc: Remove all use of eval() to avoid potential
- security hole.
-
- * As of this release we are no longer php3-compatible.
-
-2005-8-10 Miles Lott <address@hidden>
-
- * xmlrpc.inc, xmlrpcs.inc: Switched to using $GLOBALS instead of calling
- global $varname
-
-2005-07-22 Miles Lott <address@hidden>
-
- * Removed: bug_* files
-
-2005-07-14 Gaetano Giunta <address@hidden>
-
- * debugger: added a workaround to disable using the debugger for
attacking
- older versions of the lib
-
- * testsuite.php: added code to test wrap_xmlrpc_method;
- use different wording for failed tests
-
- * xmlrpcs.inc: change for() with foreach() in system.* methods
implementations;
- remove a possible cause of php warning;
-
- * xmlrpc.inc: let wrap_php_function and wrap_xmlrpc_method find suitable
- function names if default function names are already in use;
- correct wrap_xmlrpc_method to not set http protocol to 1.0 when not
asked to;
- detect curl compiles without SSL
-
-2005-07-14 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: more auto-fix of xmlrpc_client path: '' -> '/';
- change to the method used for detecting failed evals (php 4.0.x
compatibility);
- complete rework of return-by-ref functions to comply with php 4.4.0
-
- * xmlrpcs.inc: change to the method used for detecting failed evals
(php 4.0.x
- compatibility)
-
- * testsuite.php: major rewrite of the multi- tests, to give better
feedback on
- number of failed tests;
- flush html page title to screen before starting tests;
-
-2005-07-13 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: let xmlrpcmsg creator be forgiving of target paths that
miss the
- starting '/' char;
- completely reworked assign-by-ref to be compliant with php 4.4.0
stricter
- warnings
-
- * testsuite.php: added ability to be run from cli: (really dumb)
separation of
- html and plain text outputs + parsing of argv parameters
-
-2005-07-12 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: compatibility fixes with PHP versions 4.0.x (and remove
some for
- PHP 3)
-
- * xmlrpcs.inc: compatibility fixes for PHP 4.0.x versions
-
- * testsuite.php: better support for running with php versions 4.0.x;
- do not generate runtime errors but finish tests anyway if some calls to
- localhost fail;
- correctly detect a localhost port different from 80 for running tests
against
-
-2005-07-11 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: preliminary building of method signature and docs in
- wrap_php_function;
- fix a bug in extracting function description from javadoc block in
- wrap_php_function;
- small fix for better compatibility with php < 4.2.0
-
- * added compat subdir with extra code, taken form PEAR package Compat,
to let
- the lib run fine with php 4 versions < 4.1
-
-2005-07-10 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: some nazi whitespace corrections;
- declared global $xmlrpcBoolean too (was the only one missing);
- used @eval inside getval() to have less path disclosure security
reports filed
- in the future;
- added new global var: $xmlrpcValue, to be used in server dispatch maps
as
- placeholder for a param which can be of any kind;
- big chunks (but still incomplete) of javadoc parsing in
wrap_php_function
- + changed type of return val - now it is the complete array to be put
in the
- dispatch map
-
- * xmlrpcs.inc: let previous error handler be called by server to handle
errors
- even if in debug level 3;
- default to compress responses if zlib installed;
- added a new val useful for only checking number (not type) of params in
method
- calls;
- let user use object methods in dispatch map using the
- array($obj, 'fmethodname') format
-
- * server.php: Added code called by testsuite.php to exercise
registration of
- object methods as xmlrpc methods and auto-registration of php functions
as xmlrpc
- methods
-
- * testsuite.php: added tests to exercice server registering object
methods as
- xmlrpc methods and automatic registration of php functions as server
methods;
- added a hint to enable debug if some test goes wrong;
- renamed https test for better clarity
-
-2005-07-07 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: added function to be used for 'guestimating' charset
encoding of
- received xml (not activated yet)
-
- * server.php: Let server compress content by default if user asks so:
it allows
- testsuite to check for compressed responses
-
- * testsuite.php: added suite of tests for compressed responses; test
CURL
- (http1.1) with all possible compression combinations too
-
-2005-07-06 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: Enable setting usage of keepalives on/off (for CURL
cases);
- implement compression of xmlrpc requests; enable new syntax of
xmlrpclient
- constructor: 1 - allow preferred http method to be set at creation time,
- 2 - allow user to insert a single complete URL as only parameter and
parse it;
- try to detect if curl is present whether it has been compiled w. zlib
to enable
- automatically the reception of compressed responses
-
- * xmlrpcs.inc: do not add into logs the content of the request, if it
was
- received gzipped/deflated, to avoid breaking the xml sent back as
response
- (NB: might be investigated further: is the problem caused by windows
chars in
- the range 128-160 ?)
-
- * testsuite.php: run all localhost tests 2 more times, to stress request
- compression;
- run all localhost tests in a row using keepalives, to test keepalive
- functionality
-
-2005-07-05 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: let CURL pass back to caller function the complete PHP
headers
- as it did before: it enables better logging / debugging of
communication;
- small change to the way CURL declares its ability to receive compressed
- messages (fix for the case where zlib is compiled in PHP but not in
curl);
- added Keep-alive (ON BY DEFAULT) for http 1.1 and https messages (had
to modify
- a lot of functions for that);
- always make sure a 'Connection: close' header is sent with curl
connections if
- keep-alive is not wanted
-
- * phpunit.php: switched to PEAR PHPUnit (rel 1.2.3), since it is
maintained a
- lot more than the old version we were using
-
- * added new folder with code of phpunit classes
-
- * testsuite.php: added a new run of tests to check for compliance of
client
- when using http 1.1;
- switched to PEAR PHPUnit classes;
- divided test for client ability to do multicall() into 2 separate tests
-
-2005-06-30 Gaetano Giunta <address@hidden>
-
- tagged and released version 1.1.1, backporting security fixes from HEAD
-
-2005-06-28 Gaetano Giunta <address@hidden>
-
- * xmlrpcs.inc: fix changes introuced yesterday in a rush;
- do not list system.* methods for a server that has them explicitly
disabled
-
- * bug_inject.xml: new test case used to check for code injection
vulnerability
-
- * testsuite.php: added a test case for zero parameters method calls;
- added two test cases for recently found code injection vulnerabilities
-
-2005-06-27 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: (tentative) fix for security problem reported by
- address@hidden: we were not properly php-escaping xml received for
- BASE64 and NAME tags;
- some more patching related to junk received in xml messages/responses:
if the
- PHP code built from the parsed xml is broken, catch any generated errors
- without echoing it to screen but take note of the error and propagate
to user
- code
-
- * xmlrpcs.inc: some more patching related to junk received in xml
messages/
- responses: if the PHP code built from the parsed xml is broken, catch
any
- generated errors without echoing it to screen but take note of the
error and
- propagate to user code
-
-2005-06-24 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: fixed php_xmlrpc_encode detection of php arrays (again!);
- removed from wrap_php_function the part about setting a custom error
handler
- (it can be activated using the more general $server->setdebug(3) anyway)
-
- * xmlrpcs.inc: added to server the capability to trap all processing
errors
- during execution of user functions and add them to debug info inside
responses;
- return a (new) xmlrpcerr response instead of raising some obscure php
execution
- error if there is an undefined function in the dispatch map
-
- * testsuite.php: Added new testcases for recently implemented stuff
-
-2005-06-23 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: added new method: xmlrpcval->structmemexists, to check for
- presence of a wanted struct member without having to loop through all
members;
- fix wrap_php_functions: correctly return false for php internal
functions,
- whose param list is unknown;
- let addscalar fail as it should if called on struct vals;
- fix addstruct: do not fail when called for adding stuff to initialized
structs;
- removed a warning generated when calling addscalar with inexistent type;
- massive code review for speed: replaced each() loops with foreach(),
removed
- lots of useless assignments and duplications of data;
- added 'http11' as valid method param for xmlrpclient->send: makes use
of curl
- for sending http 1.1 requests;
- changed a couple '=' into '=&' where objects are returned;
- fixed wrap_php_function() to better detect php errors while processing
wrapped
- function
-
- * xmlrpcs.inc: Fix php warnings generated when clients requested method
- signature / description for a method that had none in its dispatch map;
- turned server->debug into an integer value that will change the amount
of
- logging going as comments into xmlrpc responses
-
- * server.php: set default server debug level to 2
-
- * testsuite.php: removed calls to deleted functions (xmlrpc_encode,
- xmlrpc_decode);
- added html page title describing target servers used for tests;
- added an assign-by-ref
-
- * phpunit.php: Do not consider as failures PHP 5 E_STRICT errors
(arbitrary
- choice, but lib is targeted at PHP 4)
-
-2005-06-22 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: removed lottsa old code that had been left in commented
-
- * xmlrpc.inc: fixed setting of proxy port
-
- * xmlrpc.inc: removed one warning when trying to decompress junk sent as
- deflated response
-
- * xmlrpc.inc: changed the error messages (but not the code) that will
be found
- in xmlrpcresponses when there are socket errors, to differentiate from
HTTP
- errors
-
- * xmlrpc.inc: refactored xmlrpcclient->sendpayloadHTTPS: now it calls a
new
- method (sendpayloadCURL) that could be used also for generating HTTP 1.1
- requests
-
- * xmlrpc.inc: added two new methods: wrap_php_function and
wrap_xmlrpc_method:
- designed to let the lazy programmer automagically convert php functions
to
- xmlrpc methods and vice versa. Details are in the code
-
- * debugger/*: added initial revision of a 'universal xmlrpc debugger'
-
-2005-06-20 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: replace usage of 'echo' with error_log when errors arise
- in manipulation of xmlrpcval objects
-
- * xmlrpc.inc: replaced <br> with <br /> in dump function
-
- * xmlrpc.inc: added method structsize to xmlrpcval class (alias for
arraysize)
-
- * xmlrpc.inc: addarray() now will add extra members to an xmlrpcval
object
- of array type; addstruct() can be used to add members to an xmlrpcval
object
- of struct type
-
- * xmlrpcs.inc: Added member allow_system_funcs to server: controls
whether the
- server accepts or not calls to system.* functions
-
-2005-05-10 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: fix regression in php_xmlrpc_encode when encoding php
hashes;
- fix decompression of gzip/deflated xmlrpc responses;
- set user agent string correctly in SSL mode (was forgetting lib name);
- add allowed encoding http headers in requests;
- do not pass http headers back from curl to parseresponse, to avoid
re-decoding
- compressed xml or http 100 headers
-
- * xmlrpcs.inc: added method setDebug;
- renamed compress_output to compress_response;
- do not try to set http headers if they have already been sent, because
trying
- to do so will raise a PHP error, and if headers have been sent
something has
- gone wrong already (shall we send a meaningful error response instead?)
-
-2005-05-08 Gaetano Giunta <address@hidden>
-
- * xmlrpcs.inc, xmlrpcs.inc: reverted to usage of '=& new' for better
- performance on (some) php4 installs.
- NB: PHP 3 compatibility is deprecated from now on!
-
- * xmlrpc.inc: decode xmlrpc boolean type to native php boolean
-
- * xmlrpcs.inc, xmlrpcs.inc: switched $_xh[$parser] to $_xh, since
indexing
- an array by object will give a warning in php 5 (and we were resetting
the
- array of _xh elements on every call anyway)
-
- * xmlrpc.inc: commented unused code used originally for escaping content
-
- * xmlrpc.inc: commented deprecated methods xmlrpc_encode and
xmlrpc_decode
-
- * xmlrpc.inc: php_xmlrpc_encode: encode integer-indexed php arrays as
xmlrpc
- arrays instead of structs; if object given to encode is an xmlrpcval
return it
- instead of reencoding (makes easier calling encode on an array of
xmlrpcvals)
-
- * xmlrpcs.inc: added $debug field to server class; if false will prevent
- the server from echoing debug info back to the client as xml comment
-
- * xmlrpcs.inc: let the server add to the debug messages the complete
request
- payload received and (if php installed as apache module) http headers,
so that
- the client in debug mode can echo a complete fingerprint of the
communication
-
- * xmlrpcs.inc: changed API of ParseRequest method: now it cannot be
called
- without a 'data' parameter; added 2nd parameter (http encoding);
changed the
- call to this method from inside service() method
-
- * xmlrpc.inc, xmlrpcs.inc: enable both server and client to parse
compressed xml
- (if php is compiled with zlib); client should also be able to decode
chunked
- http encoding
-
- * xmlrpc.inc: add support for proxies (only basic auth supported);
default port
- is 8080 (if left unspecified)
-
- * xmlrpc.inc: use lowercase for names of http headers received (makes
using
- them much simpler, since servers can use any upper/lowercase
combination)
-
- * xmlrpc.inc: bumped version number to '2.0 beta'
-
-2005-05-08 Gaetano Giunta <address@hidden>
-
- * release of version 1.1
-
-2005-04-24 Gaetano Giunta <address@hidden>
-
- * xmlrpcs.inc: removed charset declaration from xml prologue of
responses,
- since we are now escaping all non-ascii chars in an
encoding-independent way
-
- * bug_http.xml: modified to exercise some extra functonality of the lib
- (it should now be failed by the current PEAR implementation of the lib)
-
- * xmlrpc.inc: bumped up rev. number to 1.1
-
- * doc/xmlrpc_php.xml, doc/announce1_1.txt: documentation updates
-
- * Makefile: updated to reflect new xml doc source, modified filelist
-
-2005-04-17 Gaetano Giunta <address@hidden>
-
- * client.php, agesort.php, introspect.php, introspect_demo.php,
- which.php, test.pl, test.py: use as default target the server.php page
hosted
- on phpxmlrpc.sf.net
-
- * server.php: fix for register_globals off; refer to docs on
phpxmlrpc.sf.net
-
-2005-04-15 Miles Lott <address@hidden>
-
- code formatting and comments
-
-2005-04-03 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: make use of global var $xmlrpcName in building User_Agent
HTTP
- header (in conjunction with $xmlrpcVersion)
-
- * agesort.php, client.php, comment.php, dicuss.php, mail.php,
server.php,
- which.php: various janitorial fixes
- + always html escape content received from xmlrpc server or from user
input
- + make the scripts run fine with register_globals off an
register_long_arrays off
- + always use the functions php_xmlrpc_en(de)code, even if the EPI
extension
- is not installed
- + in mail.php, allow user to see script source even if support for
.phps files
- is not configured in the local web server
-
- * testsuite.php: better detection of local webserver hostname for
running tests
- against (if the user did not supply a webserver name)
-
-2005-03-21 Gaetano Giunta <address@hidden>
-
- * xmlrpcs.inc: revert to a PHP3 compatible script (change '=& new' to
'= new')
-
- * xmlrpc.inc: revert to a PHP3 compatible script (lottsa fixes)
-
- * testsuite.php: default to using local server as test target if no user
- provided values are available instead of heddley.com server
-
- * testsuite.php: play nice to PHP3 in retrieving user-passed values
-
- * testsuite.php: fix constructor method name for a type of tests
-
- * phpunit.php: fix all cases of call-time-pass-by-ref
-
- * phpunit.php: rename Exception class to _Exception if the script is
run with
- PHP 5 (exception is a reserverd word)
-
-2005-03-19 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: fixed bug in new http header parsing code in case there is
- no correct separator between response headers and body
-
- * xmlrpc.inc: added recognizing and stripping of HTTP/1.1 100 response
headers
-
- * xmlrpc.inc: strip extra whitespace from response body, as well as any
junk
- that comes after the last </MethodResponse> tag. It allows the server
code to
- be put on public providers that add e.g. javascript advertising to
served pages
-
- * xmlrpc.inc: removed unused parts of code, trailing whitespace
-
- * xmlrpc.inc: fix possible bug (?) in xmlrpc_ee for BOOLEAN values:
true was
- being handled differently than false
-
- * testsuite.php: added a new file-based test to stress the response
parsing
- modifications recently introduced; enabled debugging for file based
tests
-
-2005-03-15 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: fixed missing declaration of global vars in xmlrpc_dh,
- sendpayloadhttps and sendpayloadhttp10
-
- * xmlrpc.inc: changed error message for invalid responses: 'enable
debugging'
- is more clear that 'enabling debugging' (the user is being encouraged
to do it)
-
- * xmlrpc.inc: rewrote HTTP response header parsing. It should be more
tolerant
- of invalid headers, give more accurate error messages and be marginally
faster,
- too.
-
- * xmlrpc.inc: cosmetic whitespace fixes and remove useless one-liners
-
- * xmlrpc.inc: build a shorter PHP command line to be evaluated for
rebuilding
- values from parsed xml: use '$val =& nex xmlrpcval("value")' for string
values
- instead of '$val =& nex xmlrpcval("value", $xmlrpcString)'
-
- * xmlrpc.inc: fix change introduced 2005/01/30 moving call to
curl_close()
- too early: it did not work on error situations
-
- * testsuite.php: fix name of testAddingTest method, renamed
testErrosString
- into testErrorString and removed useless warning for
register_globals=off case
-
-2005-02-27 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: do not echo XML parsing error to screen (it is already
dumped
- into error log)
-
- * xmlrpc.inc: set hdrs field into response object in case of XML
parsing error
- (uniform behaviour with other responses)
-
-2005-02-26 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: use global var $xmlrpcVersion as number for user agent
string
-
- * xmlrpcs.inc: eliminate server side PHP warning and give back to caller
- a better error msg in case the called method exists but no signature
matches
- the number of parameters
-
-2005-02-20 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: accept a + sign in front of floats / integers, since the
spec
- clearly mentions it
-
- * xmlrpc.inc, xmlrpcs.inc: renamed function XmlEntities to
xmlrpc_encode_entitites,
- to avoid using the same name as an array already defined
-
- * xmlrpc.inc: fix bug introduced with escaping of UTF8 chars in xmlrpc
error
- responses: correct behaviour is to escape chars inside serialize(), not
when
- calling the xmlrpcresp creator
-
- * testsuite.php: made test suite more friendly to modern PHP configs,
allowing
- register_globals to be off and to set in the URL all testing parameters;
- added tests for newly introduced fixes; renamed existing tests acording
to the
- docs inside phpunit.php (e.g. no subclass of TestCase should have a name
- starting with test...)
-
-2005-02-19 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: accept patch 683153 by mah0: if timeout is set, allow all
socket
- operations to timeout at the given time, not only the socket connection
-
-2005-02-13 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: be tolerant to double values received in exponential
notation:
- even though the spec forbids their usage PHP is fine with them
-
- * xmlrpc.inc: fix bug: new xmlrpcval('-1') was creating an empty value
instead
- of a string value!
-
- * xmlrpc.inc, xmlrpcs.inc: fix the payload encoding changes introduced
by
- Andres Salomon on 2004-03-17: sending named html entities inside an xml
chunk
- makes it invalid, and thus renders the lib absolutely non-interoperable
with
- any other xmlrpc implementation; moreover the current implementation
only ever
- worked for non-ascii requests, while breaking client-parsing of
responses
- containing non-ascii chars.
- The principle of using entities is preserved though, because it allows
the
- client to send correct xml regardless of php internal charset encoding
vs.
- xml request charset encoding, but using 'character references' instead.
-
- * xmlrpc.inc: encode (non-ascii) chars into charset entities also for
error
- strings
-
- * xmlrpcs.inc: encode (non-ascii) chars into charset entities also for
debug
- messages
-
- * xmlrpcs.inc: added 'Accept-Charset' header in http request to let the
server
- know what kind of charset encoding we do expect to be used for responses
-
- * xmlrpc.inc, xmlrpcs.inc: explicitly tell the xml parser what charset
the
- application expects to receive content in (notably strings). A new
variable,
- $xmlrpc_internalencoding, (defaulting to ISO-8859-1) defines what
charset the
- parser will use for passing back string xmlrpcvals to the PHP
application
- (both server-side and client-side).
- This allows transparent usage of e.g. UTF-8 for encoding xml messages
between
- server and client and ISO-8859-1 for internal string handling.
- ISO-8859-1 is, AFAIK, PHP internal encoding for all installs except
- mbstring-enabled ones.
-
-2005-02-12 Gaetano Giunta <address@hidden>
-
- * xmlrpcs.inc: use '$var =& new(' construct to assign objects: on older
versions
- of PHP objects are first built then copied over if the ampersand is
omitted.
- Using it should make the code a little bit faster...
-
- * doc/xmlrpc.php: update lib version number, release date in
preparation for
- next release
-
- * makefile: update lib version number in preparation for next release
-
- * xmlrpc.inc: split up parsing of xmlrpc INT and DOUBLE values. This
allows
- finer-grained control over valid values: now the '.' char is not allowed
- any more inside int values.
-
- * xmlrpc.inc: fix for bug #560303: ints and doubles starting with '0'
chars are
- no more parsed as octal values
-
-2005-01-30 Gaetano Giunta <address@hidden>
-
- * xmlrpc.inc: Modifed last change by Miles: the functions
php_xmlrpc_encode
- and php_xmlrpc_decode are now always defined, regardless of the
existence of
- XMLRPC-EPI. This allows users to start using these functions as the
'default'
- functions, and pave the way for future deprecation of
xmlrpc_encode/encode
- while maintaining a stable API.
-
- * xmlrpc.inc: use '$var =& new(' construct to assign objects: on older
versions
- of PHP objects are first built then copied over if the ampersand is
omitted.
- Using it should make the code a little bit faster...
-
- * xmlrpc.inc: close curl connection as soon as possible for https
requests:
- it could save some memory / resources.
-
- * xmlrpc.inc: added some extra info in the PHP error log message
generated
- when an invalid xmlrpc integer/float value is encountered and we try to
- deserialize it.
-
- * xmlrpc.inc: added @ char before fsockopen to avoid echoing useless
warnings
- when connection to server fails; added the same to avoid echoing
warnings when
- deserializing data of an unknown type
-
- * xmlrpc.inc: reset the _xh array on each xmlrpc call: otherwise a new
array
- member is created for each consecutive call and never destroyed, thus
making it
- impossible to build an xmlrpc-client daemon beacuse of memory leaking.
-
- * xmlrpc.inc: declare global the variables that are used as 'constants',
- so that xmlrpc.inc will work even if it is included from within a
function
-
-2004-12-27 Miles Lott <address@hidden>
- * xmlrpc.inc: A new constant, XMLRPC_EPI_ENABLED, is defined depending
on
- the existence of the function, xmlrpc_decode. This function will exist
in
- PHP if the extension, XMLRPC-EPI (http://xmlrpc-epi.sourceforge.net), is
- loaded. It defines the functions xmlrpc_encode and xmlrpc_decode, which
- will conflict with functions of the same name in xmlrpc.inc. If this
- extension is loaded, we instead use the names php_xmlrpc_encode and
- php_xmlrpc_decode. Please look at server.php, testsuite.php, etc., for
- how this should be handled if using these functions.
-
-2003-04-17 Andres Salomon <address@hidden>
- * xmlrpc.inc: encode strings using htmlentities() instead of
- htmlspecialchars(), and add xmlrpc_html_entity_xlate(). This
- should fix longstanding issues with sending weird chars (from
- non-USASCII codesets like UTF-8, ISO-8859-1, etc) that caused
- the xml parser to choke. Multi-byte chars are now changed to
- entities before sending, so that the xmlrpc server doesn't need
- to know the encoding type of the POST data.
- * xmlrpcs.inc: call xmlrpc_html_entity_xlate before parsing
- request packet. The parser chokes on unknown entities (the
- entities created by htmlentities() are exactly that; html
- entities, not xml entities), so they must be converted from
- name form (é) to numerical form (é).
-
-2003-01-12 Andres Salomon <address@hidden>
-
- * released 1.0.99.2.
- * Makefile: separate doc/Makefile a bit more from Makefile,
- and add clean rules.
-
-2003-01-10 Andres Salomon <address@hidden>
-
- * xmlrpc.inc: xmlrpcresp and parseResponse cleanups; variable
- name renames ('xv' to 'val', for example), type checking, and
- stricter default values.
- * xmlrpc.inc: fix xmlrpcresp's faultcode; return -1 for FAULT
- responses from the server whose faultcodes don't reflect any
- errors.
-
-2003-01-08 Andres Salomon <address@hidden>
-
- * xmlrpc.inc: rename $_xh[$parser]['ha'] to
- $_xh[$parser]['headers'].
- * xmlrpc.inc: fix bugs related to $_xh[$parser]['headers];
- some places treated this as an array, others as a scalar.
- Treat unconditionally as an array. Also wrap header debugging
- output in PRE tags.
-
-2002-12-17 Andres Salomon <address@hidden>
-
- * released 1.0.99.
- * Makefile: changed the tarball format/dist rule to a more
- conventional form, as well as normal release updates.
- * xmlrpc.inc: added setSSLVerifyPeer and setSSLVerifyHost; as
- of curl 7.10, various certificate checks are done (by default).
- The default for CURLOPT_SSL_VERIFYHOST is to ensure the common
- name on the cert matches the provided hostname. This breaks a
- lot of stuff, so allow users to override it.
- * doc/xmlrpc_php.sgml: updated documentation accordingly.
-
-2002-09-06 Geoffrey T. Dairiki <address@hidden>
-
- Add support for system.multicall() to both the client
- and the server.
-
- * testsuite.php: Add new tests 'testServerMulticall',
- and 'testClientMulticall'.
-
- * xmlrpc.inc: Added new error messages for system.multicall().
- * xmlrpcs.inc: Added new procedure call system.multicall().
- See http://www.xmlrpc.com/discuss/msgReader$1208 for details.
-
- * xmlrpc.inc: Added system.multicall functionality to
- xmlrpc_client. xmlrpc_client::send can now take an array of
- xmlrpcmsg's as an argument. In that case it will attempt
- to execute the whole array of procure calls in a single
- HTTP request using system.multicall(). (If that attempt fails,
- then the calls will be excuted one at a time.) The return
- value will be an array of xmlrpcresp's (or 0 upon transport
- failure.)
-
-2001-11-29 Edd Dumbill <address@hidden>
-
- * xmlrpc.inc: fixed problem with processing HTTP headers that
- broke any payload with more than one consecutive newline in it.
- also initialise the 'ac' array member to empty string at start.
- * testsuite.php: added unit test to exercise above bug
- * xmlrpcs.inc: fixed uninitialized variable $plist
-
-2001-09-25 Edd Dumbill <address@hidden>
-
- * xmlrpc.inc: applied urgent security fixes as identified by Dan
- Libby
-
-2001-08-27 Edd Dumbill <address@hidden>
-
- * xmlrpc.inc: Merged in HTTPS support from Justin Miller, with a
- few additions for better traceability of failure conditions. Added
- small fix from Giancarlo Pinerolo. Bumped rev to 1.0. Changed
- license to BSD license.
-
-2001-06-15 Edd Dumbill <address@hidden>
-
- * xmlrpcs.inc: Added \r into return MIME headers for server class
-
-2001-04-25 Edd Dumbill <address@hidden>
-
- * server.php: Added interop suite of methods.
-
-2001-04-24 Edd Dumbill <address@hidden>
-
- * testsuite.php: added in test case for string handling bug.
-
- * xmlrpc.inc: merged in minor fixes from G Giunta to fix
- noninitialization. Created new method, getval(), which includes
- experimental support for recreating nested arrays, from Giunta and
- Sofer. Fixed string handling bug where characters after </string>
- but before </value> weren't ignored. Added in support for native
- boolean type into xmlrpc_encode (Giunta).
-
- * xmlrpcs.inc: updated copyright notice
-
-2001-01-15 Edd Dumbill <address@hidden>
-
- * xmlrpc.inc: fixed bug with creation of booleans. Put checks in
- to ensure that numbers were really numeric. Fixed bug with
- non-escaping of dollar signs in strings.
-
- * testsuite.php: created test suite.
-
-2000-08-26 Edd Dumbill <address@hidden>
-
- * xmlrpcs.inc: added xmlrpc_debugmsg() function which outputs
- debug information in comments inside the return payload XML
-
- * xmlrpc.inc: merged in some changes from Dan Libby which fix up
- whitespace handling.
-
- * xmlrpcs.inc: added Content-length header on response (bug from
- Jan Varga <address@hidden>. This means you can no longer print
- during processing
-
- * xmlrpc.inc: changed ereg_replace to str_replace in several
- places (thanks to Dan Libby <address@hidden> for this).
-
- * xmlrpc.inc: added xmlrpc_encode() and xmlrpc_decode() from Dan
- Libby--these helper routines make it easier to work in native PHP
- data structures.
-
-2000-07-21 Edd Dumbill <address@hidden>
-
- * xmlrpc.inc: added xmlrpc_client::setCredentials method to pass
- in authorization information, and modified sendPayload* methods to
- send this OK. Thanks to Grant Rauscher for the impetus to do this.
- Also, made the client send empty <params></params> if there are no
- parameters set by the user.
-
- * doc/xmlrpc_php.sgml: updated documentation to reflect recent
- changes
-
-
-2000-07-18 Edd Dumbill <address@hidden>
-
- * server.php: added examples.invertBooleans method to server as a
- useful test method for boolean values.
-
- * xmlrpc.inc: rearranged the way booleans are handled to fix
- outstanding problems. Fixed calling addScalar() on arrays so it
- works. Finally fixed backslashification issues to remove the
- problem will dollar signs disappearing.
-
- * booltest.php: really fixed booleans this time.
-
-2000-06-03 Edd Dumbill <address@hidden>
-
- * xmlrpcs.inc: made signature verification more useful - now
- returns what it found was wrong
-
- * xmlrpc.inc: fixed bug with decoding dateTimes. Also fixed a bug
- which meant a PHP syntax error happened when attempting to receive
- empty arrays or structs. Also fixed bug with booleans always being
- interpreted as 'true'.
-
- * server.php: Added validator1 suite of tests to test against
- validator.xmlrpc.com
-
-
-2000-05-06 Edd Dumbill <address@hidden>
-
- * released 1.0b6
-
- * added test.pl and test.py, Perl and Python scripts that exercise
- server.php somewhat (but not a lot)
-
- * added extra fault condition for a non 200 OK response from the
- remote server.
-
- * added iso8601_encode() and iso8601_decode() to give some support
- for passing dates around. They translate to and from UNIX
- timestamps. Updated documentation accordingly.
-
- * fixed string backslashification -- was previously a little
- overzealous! new behavior is '\' --> '\\' and '"' -->
- '\"'. Everything else gets left alone.
-
-2000-04-12 Edd Dumbill <address@hidden>
-
- * updated and bugfixed the documentation
-
- * fixed base 64 encoding to only happen at serialize() time,
- rather than when a base64 value is created. This fixes the double
- encoding bug reported by Nicolay Mausz
- <address@hidden>. The same approach ought to be taken with
- encoding XML entities in the data - this is a TODO.
-
- * integrated further code from Peter Kocks: used his new code for
- send(), adding a second, optional, parameter which is a timeout
- parameter to fsockopen()
-
-1999-10-11 Edd Dumbill <address@hidden>
-
- * added bug fixes from Peter Kocks <address@hidden>
-
-1999-10-10 Edd Dumbill <address@hidden>
-
- * updated the documentation
-
-1999-10-08 Edd Dumbill <address@hidden>
-
- * added system.* methods and dispatcher, plus documentation
-
- * fixed bug which meant request::getNumParams was returning an
- incorrect value
-
- * added signatures into the dispatch map. This BREAKS
- COMPATIBILITY with previous releases of this code
-
-1999-08-18 Edd Dumbill <address@hidden>
-
- * made entity encoding and decoding transparent now on string
- passing.
-
- * de-globalised the globals in the parse routines, using an
- associative array to hold all parser state $_xh
-
- * changed default input encoding to be UTF-8 to match expectation
-
- * separated out parseResponse into parseResponse and
- parseResponseFile so that you can call parseResponse on a string
- if you have one handy
-
-1999-07-20 Edd Dumbill <address@hidden>
-
- * Moved documentation into Docbook format
-
-1999-07-19 Edd Dumbill <address@hidden>
-
- * Added an echo server into server.php and echotest.php, a client
- which will exercise the new echo routine.
-
- * Added test for no valid value returned: in this case will now
- throw the error "invalid payload"
-
- * Added serialize() method to xmlrpcresp to return a string with
- the response serialized as XML
-
- * Added automatic encoding and decoding for base64 types
-
- * Added setDebug() method to client to enable HTML output
- debugging in the client
-
-1999-07-08 Edd Dumbill <address@hidden>
-
- * Improved XML parse error reporting on the server side to send it
- back in a faultCode packet. expat errors now begin at 100
-
-1999-07-07 Edd Dumbill <address@hidden>
-
- * Changed the structmem and arraymem methods of xmlrpcval to always
- return xmlrpc vals whether they referred to scalars or complex
- types.
-
- * Added the server class and demonstrations
-
- * Fixed bugs in the XML parsing and reworked it
-
-
-$Id: ChangeLog,v 1.96 2009/03/16 19:39:11 ggiunta Exp $
Added: trunk/phpgwapi/inc/xmlrpc/INSTALL
===================================================================
--- trunk/phpgwapi/inc/xmlrpc/INSTALL (rev 0)
+++ trunk/phpgwapi/inc/xmlrpc/INSTALL 2014-12-19 11:56:42 UTC (rev 12484)
@@ -0,0 +1,38 @@
+XMLRPC for PHP
+
+Requirements
+------------
+
+The following requirements should be met prior to using 'XMLRPC for PHP':
+. PHP 5.1.0 or later
+. the php "curl" extension is needed if you wish to use SSL or HTTP 1.1 to
+ communicate with remote servers
+
+The php "xmlrpc" native extension is not required, but if it is installed,
+there will be no interference with the operation of this library.
+
+
+Installation instructions
+-------------------------
+
+Installation of the library is quite easy:
+
+1. copy the contents of the lib/ folder to any location required by your
+ application (it can be inside the web server root or not).
+
+2. make sure your app can include those files. This can be achieved by setting
+ the PHP include path, either in the php.ini file or directly in the php code
+ of your application, using the 'set_include_path' function
+
+
+Example of php code allowing an application to import the library:
+
+set_include_path(get_include_path() . PATH_SEPARATOR .
'/path/to/phpxmlrpc/lib/');
+require_once( 'xmlrpc.inc' );
+require_once( 'xmlrpcs.inc' );
+require_once( 'xmlrpc_wrappers.inc' );
+
+
+Please note that usage of the 'make' command for installation of the library is
+not recommended, as it will generally involve editing of the makefile for a
+succesfull run.
Modified: trunk/phpgwapi/inc/xmlrpc/Makefile
===================================================================
--- trunk/phpgwapi/inc/xmlrpc/Makefile 2014-12-18 23:28:36 UTC (rev 12483)
+++ trunk/phpgwapi/inc/xmlrpc/Makefile 2014-12-19 11:56:42 UTC (rev 12484)
@@ -1,5 +1,4 @@
# Makefile for phpxmlrpc library
-# $Id: Makefile,v 1.37 2008/03/06 22:37:19 ggiunta Exp $
### USER EDITABLE VARS ###
@@ -70,7 +69,7 @@
all: install
install:
- cd lib && cp ${LIBFILES} ${PHPINCLUDEDIR}
+ cp ${LIBFILES} ${PHPINCLUDEDIR}
@echo Lib files have been copied to ${PHPINCLUDEDIR}
cd doc && $(MAKE) install
@@ -109,7 +108,7 @@
cp ${INFOFILES} xmlrpc-${VERSION}
cd doc && $(MAKE) dist
# on unix shells last char should be \;
- ${FIND} xmlrpc-${VERSION} -type f ! -name "*.fttb" ! -name "*.pdf" !
-name "*.gif" -exec dos2unix {} ;
+ ${FIND} xmlrpc-${VERSION} -type f ! -name "*.fttb" ! -name "*.pdf" !
-name "*.gif" -exec dos2unix "{}" \;
-rm xmlrpc-${VERSION}.zip xmlrpc-${VERSION}.tar.gz
tar -cvf xmlrpc-${VERSION}.tar xmlrpc-${VERSION}
gzip xmlrpc-${VERSION}.tar
Modified: trunk/phpgwapi/inc/xmlrpc/NEWS
===================================================================
--- trunk/phpgwapi/inc/xmlrpc/NEWS 2014-12-18 23:28:36 UTC (rev 12483)
+++ trunk/phpgwapi/inc/xmlrpc/NEWS 2014-12-19 11:56:42 UTC (rev 12484)
@@ -1,3 +1,22 @@
+XML-RPC for PHP version 3.0.1 - 201X/Y/Z
+
+Taking baby steps to modern-world php, this release is now tested using Travis
( https://travis-ci.org/ ).
+
+Improved: no need to call anymore $client->setSSLVerifyHost(2) to silence a
curl warning when using https with recent curl builds
+
+
+XML-RPC for PHP version 3.0.0 - 2014/6/15
+
+This release corrects all bugs that have been reported and successfully
reproduced since
+version 3.0.0 beta.
+
+The requirements have increased to php 5.1.0 - which is still way older than
what you should be running for any serious purpose, really.
+
+It also is the first release to be installable via composer.
+
+See the Changelog file or the pdf docs for a complete list of changes.
+
+
XML-RPC for PHP version 3.0.0 beta - 2009/09/05
This is the first release of the library to only support PHP 5.
@@ -28,6 +47,7 @@
Regardless of the intimidating message about dropping PHP 4 support, it still
does
support that ancient, broken and insecure platform.
+
* fixed: php warning when receiving 'false' in a bool value
* fixed: improve robustness of the debugger when parsing weird results from
non-compliant servers
* fixed: format floating point values using the correct decimal separator even
when php locale is set to one that uses comma
@@ -44,7 +64,7 @@
This release corrects all bugs that have been reported and sucesfully
reproduced.
It is the last release of the library that will support PHP 4.
-* fixed: work aroung bug in php 5.2.2 which broke support of HTTP_RAW_POST_DATA
+* fixed: work around bug in php 5.2.2 which broke support of HTTP_RAW_POST_DATA
* fixed: is_dir parameter of setCaCertificate() method is reversed
* fixed: a php warning in xmlrpc_client creator method
* fixed: parsing of '1e+1' as valid float
@@ -78,7 +98,7 @@
It has been tested with PHP 4.0.5 up to 4.4.4 and 5.1.5.
Please note that 404pl1 is NOT supported, and has not been since 2.0.
-*** PLASE READ CAREFULLY BELOW ***
+*** PLEASE READ CAREFULLY BELOW ***
CHANGES THAT MIGHT AFFECT DEPLOYED APPLICATIONS:
Modified: trunk/phpgwapi/inc/xmlrpc/README
===================================================================
--- trunk/phpgwapi/inc/xmlrpc/README 2014-12-18 23:28:36 UTC (rev 12483)
+++ trunk/phpgwapi/inc/xmlrpc/README 2014-12-19 11:56:42 UTC (rev 12484)
@@ -1,13 +1,15 @@
-NAME: XMLRPC FOR PHP
+NAME: XMLRPC for PHP
DESCRIPTION: A php library for building xmlrpc clients and servers
-HTML documentation can be found in the doc/ directory.
+Installation instructions are in the INSTALL file.
-Recent changes in the ChangeLog
+The manual, in HTML and pdf versions, can be found in the doc/ directory.
+Recent changes in the ChangeLog file.
+
Use of this software is subject to the terms in doc/index.html
The passphrase for the rsakey.pem certificate is 'test'.
Added: trunk/phpgwapi/inc/xmlrpc/composer.json
===================================================================
--- trunk/phpgwapi/inc/xmlrpc/composer.json (rev 0)
+++ trunk/phpgwapi/inc/xmlrpc/composer.json 2014-12-19 11:56:42 UTC (rev
12484)
@@ -0,0 +1,13 @@
+{
+ "name": "phpxmlrpc/phpxmlrpc",
+ "description": "A php library for building xmlrpc clients and servers",
+ "license": "BSD-3-Clause",
+ "homepage": "http://gggeek.github.io/phpxmlrpc/",
+ "keywords": [ "xmlrpc", "webservices" ],
+ "require": {
+ "php": ">=5.1.0"
+ },
+ "autoload": {
+ "classmap": [ "lib/xmlrpc.inc", "lib/xmlrpcs.inc" ]
+ }
+}
\ No newline at end of file
Modified: trunk/phpgwapi/inc/xmlrpc/debugger/action.php
===================================================================
--- trunk/phpgwapi/inc/xmlrpc/debugger/action.php 2014-12-18 23:28:36 UTC
(rev 12483)
+++ trunk/phpgwapi/inc/xmlrpc/debugger/action.php 2014-12-19 11:56:42 UTC
(rev 12484)
@@ -1,8 +1,7 @@
<?php
/**
- * @version $Id$
* @author Gaetano Giunta
- * @copyright (C) 2005-2009 G. Giunta
+ * @copyright (C) 2005-2014 G. Giunta
* @license code licensed under the BSD License:
http://phpxmlrpc.sourceforge.net/license.txt
*
* @todo switch params for http compression from 0,1,2 to values to be used
directly
@@ -37,7 +36,7 @@
<body>
<?php
- include(getcwd().'/common.php');
+ include(dirname(__FILE__).'/common.php');
if ($action)
{
Modified: trunk/phpgwapi/inc/xmlrpc/debugger/common.php
===================================================================
--- trunk/phpgwapi/inc/xmlrpc/debugger/common.php 2014-12-18 23:28:36 UTC
(rev 12483)
+++ trunk/phpgwapi/inc/xmlrpc/debugger/common.php 2014-12-19 11:56:42 UTC
(rev 12484)
@@ -1,8 +1,7 @@
<?php
/**
- * @version $Id$
* @author Gaetano Giunta
- * @copyright (C) 2005-2009 G. Giunta
+ * @copyright (C) 2005-2014 G. Giunta
* @license code licensed under the BSD License:
http://phpxmlrpc.sourceforge.net/license.txt
*
* @todo switch params for http compression from 0,1,2 to values to be used
directly
Modified: trunk/phpgwapi/inc/xmlrpc/debugger/controller.php
===================================================================
--- trunk/phpgwapi/inc/xmlrpc/debugger/controller.php 2014-12-18 23:28:36 UTC
(rev 12483)
+++ trunk/phpgwapi/inc/xmlrpc/debugger/controller.php 2014-12-19 11:56:42 UTC
(rev 12484)
@@ -1,8 +1,7 @@
<?php
/**
- * @version $Id$
* @author Gaetano Giunta
- * @copyright (C) 2005-2009 G. Giunta
+ * @copyright (C) 2005-2014 G. Giunta
* @license code licensed under the BSD License:
http://phpxmlrpc.sourceforge.net/license.txt
*
* @todo add links to documentation from every option caption
@@ -14,12 +13,13 @@
* @todo add http no-cache headers
**/
- include(getcwd().'/common.php');
+ include(dirname(__FILE__).'/common.php');
if ($action == '')
$action = 'list';
// relative path to the visual xmlrpc editing dialog
- $editorpath = '../../javascript/';
+ $editorpath = '../../javascript/debugger/';
+ $editorlibs = '../../javascript/lib/';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
@@ -32,8 +32,8 @@
top.location.replace('index.php?run='+escape(self.location));
</script>
<!-- xmlrpc/jsonrpc base library -->
-<script type="text/javascript" src="<?php echo $editorpath;
?>xmlrpc_lib.js"></script>
-<script type="text/javascript" src="<?php echo $editorpath;
?>jsonrpc_lib.js"></script>
+<script type="text/javascript" src="<?php echo $editorlibs;
?>xmlrpc_lib.js"></script>
+<script type="text/javascript" src="<?php echo $editorlibs;
?>jsonrpc_lib.js"></script>
<style type="text/css">
<!--
html {overflow: -moz-scrollbars-vertical;}
Added: trunk/phpgwapi/inc/xmlrpc/debugger/index.html
===================================================================
--- trunk/phpgwapi/inc/xmlrpc/debugger/index.html
(rev 0)
+++ trunk/phpgwapi/inc/xmlrpc/debugger/index.html 2014-12-19 11:56:42 UTC
(rev 12484)
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+<html>
+<head>
+<title>XMLRPC Debugger</title>
+</head>
+<frameset rows="360,*">
+ <frame name="frmcontroller" src="controller.php" marginwidth="0"
marginheight="0" frameborder="0" />
+ <frame name="frmaction" src="action.php" marginwidth="0" marginheight="0"
frameborder="0" />
+</frameset>
+</html>
\ No newline at end of file
Modified: trunk/phpgwapi/inc/xmlrpc/debugger/index.php
===================================================================
--- trunk/phpgwapi/inc/xmlrpc/debugger/index.php 2014-12-18 23:28:36 UTC
(rev 12483)
+++ trunk/phpgwapi/inc/xmlrpc/debugger/index.php 2014-12-19 11:56:42 UTC
(rev 12484)
@@ -1,5 +1,4 @@
<?php
-// $Id$
$query = '';
if (isset($_GET['run']))
{
Modified: trunk/phpgwapi/inc/xmlrpc/demo/client/agesort.php
===================================================================
--- trunk/phpgwapi/inc/xmlrpc/demo/client/agesort.php 2014-12-18 23:28:36 UTC
(rev 12483)
+++ trunk/phpgwapi/inc/xmlrpc/demo/client/agesort.php 2014-12-19 11:56:42 UTC
(rev 12484)
@@ -1 +1,61 @@
-<html><head><title>xmlrpc</title></head><body><h1>Agesort demo</h1><h2>Send an
array of 'name' => 'age' pairs to the server that will send it back
sorted.</h2><h3>The source code demonstrates basic lib usage, including
handling of xmlrpc arrays and
structs</h3><p></p><?phpinclude("../../lib/xmlrpc.inc");$inAr=array("Dave" =>
24, "Edd" => 45, "Joe" => 37, "Fred" => 27);reset($inAr);print "This is the
input data:<br/><pre>";while (list($key, $val)=each($inAr)) { print $key . ",
" . $val . "\n";}print "</pre>";// create parameters from the input array: an
xmlrpc array of xmlrpc structs$p=array();foreach($inAr as $key => $val) {
$p[]=new xmlrpcval(array("name" => new xmlrpcval($key),
"age" => new xmlrpcval($val, "int")), "struct");}$v=new xmlrpcval($p,
"array");print "Encoded into xmlrpc format it looks like this: <pre>\n" .
htmlentities($v->serialize()). "</pre>\n";// create client and message
objects$f=new xmlrpcmsg('examples.sortByAge', array($v));$c=new
xmlrpc_client("/server.php", "phpxmlrpc.sourceforge.net", 80);// set maximum
debug level, to have the complete communication printed to
screen$c->setDebug(2);// send requestprint "Now sending request (detailed debug
info follows)";$r=&$c->send($f);// check response for errors, and take
appropriate actionif (!$r->faultCode()) { print "The server gave me these
results:<pre>"; $v=$r->value(); $max=$v->arraysize(); for($i=0; $i<$max;
$i++) { $rec=$v->arraymem($i); $n=$rec->structmem("name");
$a=$rec->structmem("age"); print htmlspecialchars($n->scalarval()) . ", " .
htmlspecialchars($a->scalarval()) . "\n"; } print "<hr/>For nerds: I got this
value back<br/><pre>" . htmlentities($r->serialize()). "</pre><hr/>\n";}
else { print "An error occurred:<pre>"; print "Code: " .
htmlspecialchars($r->faultCode()) . "\nReason: '" .
htmlspecialchars($r->faultString()).'\'</pre><hr/>';}?><em>$Id$</em></body></html>
+<html>
+<head><title>xmlrpc</title></head>
+<body>
+<h1>Agesort demo</h1>
+<h2>Send an array of 'name' => 'age' pairs to the server that will send it
back sorted.</h2>
+<h3>The source code demonstrates basic lib usage, including handling of xmlrpc
arrays and structs</h3>
+<p></p>
+<?php
+include("xmlrpc.inc");
+
+$inAr=array("Dave" => 24, "Edd" => 45, "Joe" => 37, "Fred" => 27);
+reset($inAr);
+print "This is the input data:<br/><pre>";
+while (list($key, $val)=each($inAr)) {
+ print $key . ", " . $val . "\n";
+}
+print "</pre>";
+
+// create parameters from the input array: an xmlrpc array of xmlrpc structs
+$p=array();
+foreach($inAr as $key => $val) {
+ $p[]=new xmlrpcval(array("name" => new xmlrpcval($key),
+ "age" => new xmlrpcval($val, "int")), "struct");
+}
+$v=new xmlrpcval($p, "array");
+print "Encoded into xmlrpc format it looks like this: <pre>\n" .
htmlentities($v->serialize()). "</pre>\n";
+
+// create client and message objects
+$f=new xmlrpcmsg('examples.sortByAge', array($v));
+$c=new xmlrpc_client("/server.php", "phpxmlrpc.sourceforge.net", 80);
+
+// set maximum debug level, to have the complete communication printed to
screen
+$c->setDebug(2);
+
+// send request
+print "Now sending request (detailed debug info follows)";
+$r=&$c->send($f);
+
+// check response for errors, and take appropriate action
+if (!$r->faultCode()) {
+ print "The server gave me these results:<pre>";
+ $v=$r->value();
+ $max=$v->arraysize();
+ for($i=0; $i<$max; $i++) {
+ $rec=$v->arraymem($i);
+ $n=$rec->structmem("name");
+ $a=$rec->structmem("age");
+ print htmlspecialchars($n->scalarval()) . ", " .
htmlspecialchars($a->scalarval()) . "\n";
+ }
+
+ print "<hr/>For nerds: I got this value back<br/><pre>" .
+ htmlentities($r->serialize()). "</pre><hr/>\n";
+} else {
+ print "An error occurred:<pre>";
+ print "Code: " . htmlspecialchars($r->faultCode()) .
+ "\nReason: '" . htmlspecialchars($r->faultString()).'\'</pre><hr/>';
+}
+
+?>
+</body>
+</html>
Modified: trunk/phpgwapi/inc/xmlrpc/demo/client/client.php
===================================================================
--- trunk/phpgwapi/inc/xmlrpc/demo/client/client.php 2014-12-18 23:28:36 UTC
(rev 12483)
+++ trunk/phpgwapi/inc/xmlrpc/demo/client/client.php 2014-12-19 11:56:42 UTC
(rev 12484)
@@ -5,7 +5,7 @@
<h2>Send a U.S. state number to the server and get back the state name</h2>
<h3>The code demonstrates usage of the php_xmlrpc_encode function</h3>
<?php
- include("../../lib/xmlrpc.inc");
+ include("xmlrpc.inc");
// Play nice to PHP 5 installations with REGISTER_LONG_ARRAYS off
if(!isset($HTTP_POST_VARS) && isset($_POST))
@@ -20,9 +20,7 @@
array(php_xmlrpc_encode($stateno))
);
print "<pre>Sending the following request:\n\n" .
htmlentities($f->serialize()) . "\n\nDebug info of server data follows...\n\n";
- $server = substr($_SERVER['PHP_SELF'], 0,
-strlen('/client/client.php')) . '/server/server.php';
- $c=new xmlrpc_client($server, "localhost", 80);
-// $c=new xmlrpc_client("/server.php",
"phpxmlrpc.sourceforge.net", 80);
+ $c=new xmlrpc_client("/server.php",
"phpxmlrpc.sourceforge.net", 80);
$c->setDebug(1);
$r=&$c->send($f);
if(!$r->faultCode())
@@ -50,7 +48,5 @@
<p>Enter a state number to query its name</p>";
?>
-<hr/>
-<em>$Id$</em>
</body>
</html>
Modified: trunk/phpgwapi/inc/xmlrpc/demo/client/comment.php
===================================================================
--- trunk/phpgwapi/inc/xmlrpc/demo/client/comment.php 2014-12-18 23:28:36 UTC
(rev 12483)
+++ trunk/phpgwapi/inc/xmlrpc/demo/client/comment.php 2014-12-19 11:56:42 UTC
(rev 12484)
@@ -1,5 +1,5 @@
<?php
-include("../../lib/xmlrpc.inc");
+include("xmlrpc.inc");
$mydir="/demo";
@@ -180,6 +180,6 @@
src="http://meerkat.oreillynet.com/icons/meerkat-powered.jpg"
height="31" width="88" alt="Meerkat powered, yeah!"
border="0" hspace="8" /></a>
-<em>$Id$</em></p>
+</p>
</body>
</html>
Modified: trunk/phpgwapi/inc/xmlrpc/demo/client/introspect.php
===================================================================
--- trunk/phpgwapi/inc/xmlrpc/demo/client/introspect.php 2014-12-18
23:28:36 UTC (rev 12483)
+++ trunk/phpgwapi/inc/xmlrpc/demo/client/introspect.php 2014-12-19
11:56:42 UTC (rev 12484)
@@ -1,110 +1,212 @@
-<html>
-<head><title>xmlrpc</title></head>
-<body>
-<h1>Introspect demo</h1>
-<h2>Query server for available methods and their description</h2>
-<h3>The code demonstrates usage of multicall and introspection methods</h3>
-<?php
- include("../../lib/xmlrpc.inc");
-
- function display_error($r)
- {
- print "An error occurred: ";
- print "Code: " . $r->faultCode()
- . " Reason: '" .$r->faultString()."'<br/>";
- }
-
- // 'new style' client constuctor
- $server = 'http://' . $_SERVER['HTTP_HOST'] .
substr($_SERVER['PHP_SELF'], 0, -strlen('/client/introspect.php')) .
'/server/server.php';
- $c = new xmlrpc_client($server);
-// $c = new xmlrpc_client("http://phpxmlrpc.sourceforge.net/server.php");
- print "<h3>methods available at http://" . $c->server . $c->path .
"</h3>\n";
-
- $m = new xmlrpcmsg('system.listMethods');
- $r =& $c->send($m);
- if($r->faultCode())
- {
- display_error($r);
- }
- else
- {
- $v=$r->value();
- for($i=0; $i<$v->arraysize(); $i++)
- {
- $mname=$v->arraymem($i);
- print "<h4>" . $mname->scalarval() . "</h4>\n";
-
- // build messages first, add params later
- $m1 = new xmlrpcmsg('system.methodHelp');
- $m2 = new xmlrpcmsg('system.methodSignature');
- $val = new xmlrpcval($mname->scalarval(), "string");
- $m1->addParam($val);
- $m2->addParam($val);
-
- // send multiple messages in one pass.
- // If server does not support multicall, client will
fall back to 2 separate calls
- $ms = array($m1, $m2);
- $rs =& $c->send($ms);
-
- if($rs[0]->faultCode())
- {
- display_error($rs[0]);
- }
- else
- {
- $val=$rs[0]->value();
- $txt=$val->scalarval();
- if($txt != "")
- {
- print
"<h4>Documentation</h4><p>${txt}</p>\n";
- }
- else
- {
- print "<p>No documentation
available.</p>\n";
- }
- }
-
- if($rs[1]->faultCode())
- {
- display_error($rs[1]);
- }
- else
- {
- print "<h4>Signature</h4><p>\n";
- $val = $rs[1]->value();
- if($val->kindOf()=="array")
- {
- for($j=0; $j<$val->arraysize(); $j++)
- {
- $x = $val->arraymem($j);
- $ret = $x->arraymem(0);
- print "<code>" .
$ret->scalarval() . " "
- . $mname->scalarval() .
"(";
- if($x->arraysize()>1)
- {
- for($k=1;
$k<$x->arraysize(); $k++)
- {
- $y =
$x->arraymem($k);
- print
$y->scalarval();
- if($k <
$x->arraysize()-1)
- {
- print
", ";
- }
- }
- }
- print ")</code><br/>\n";
- }
- }
- else
- {
- print "Signature unknown\n";
- }
- print "</p>\n";
- }
- }
- }
-?>
-<hr/>
-<em>$Id$</em>
-</body>
-</html>
+<html>
+
+<head><title>xmlrpc</title></head>
+
+<body>
+
+<h1>Introspect demo</h1>
+
+<h2>Query server for available methods and their description</h2>
+
+<h3>The code demonstrates usage of multicall and introspection methods</h3>
+
+<?php
+
+ include("xmlrpc.inc");
+
+
+
+ function display_error($r)
+
+ {
+
+ print "An error occurred: ";
+
+ print "Code: " . $r->faultCode()
+
+ . " Reason: '" .$r->faultString()."'<br/>";
+
+ }
+
+
+
+ // 'new style' client constuctor
+
+ $c = new xmlrpc_client("http://phpxmlrpc.sourceforge.net/server.php");
+
+ print "<h3>methods available at http://" . $c->server . $c->path .
"</h3>\n";
+
+
+
+ $m = new xmlrpcmsg('system.listMethods');
+
+ $r =& $c->send($m);
+
+ if($r->faultCode())
+
+ {
+
+ display_error($r);
+
+ }
+
+ else
+
+ {
+
+ $v=$r->value();
+
+ for($i=0; $i<$v->arraysize(); $i++)
+
+ {
+
+ $mname=$v->arraymem($i);
+
+ print "<h4>" . $mname->scalarval() . "</h4>\n";
+
+
+
+ // build messages first, add params later
+
+ $m1 = new xmlrpcmsg('system.methodHelp');
+
+ $m2 = new xmlrpcmsg('system.methodSignature');
+
+ $val = new xmlrpcval($mname->scalarval(), "string");
+
+ $m1->addParam($val);
+
+ $m2->addParam($val);
+
+
+
+ // send multiple messages in one pass.
+
+ // If server does not support multicall, client will
fall back to 2 separate calls
+
+ $ms = array($m1, $m2);
+
+ $rs =& $c->send($ms);
+
+
+
+ if($rs[0]->faultCode())
+
+ {
+
+ display_error($rs[0]);
+
+ }
+
+ else
+
+ {
+
+ $val=$rs[0]->value();
+
+ $txt=$val->scalarval();
+
+ if($txt != "")
+
+ {
+
+ print
"<h4>Documentation</h4><p>${txt}</p>\n";
+
+ }
+
+ else
+
+ {
+
+ print "<p>No documentation
available.</p>\n";
+
+ }
+
+ }
+
+
+
+ if($rs[1]->faultCode())
+
+ {
+
+ display_error($rs[1]);
+
+ }
+
+ else
+
+ {
+
+ print "<h4>Signature</h4><p>\n";
+
+ $val = $rs[1]->value();
+
+ if($val->kindOf()=="array")
+
+ {
+
+ for($j=0; $j<$val->arraysize(); $j++)
+
+ {
+
+ $x = $val->arraymem($j);
+
+ $ret = $x->arraymem(0);
+
+ print "<code>" .
$ret->scalarval() . " "
+
+ . $mname->scalarval() .
"(";
+
+ if($x->arraysize()>1)
+
+ {
+
+ for($k=1;
$k<$x->arraysize(); $k++)
+
+ {
+
+ $y =
$x->arraymem($k);
+
+ print
$y->scalarval();
+
+ if($k <
$x->arraysize()-1)
+
+ {
+
+ print
", ";
+
+ }
+
+ }
+
+ }
+
+ print ")</code><br/>\n";
+
+ }
+
+ }
+
+ else
+
+ {
+
+ print "Signature unknown\n";
+
+ }
+
+ print "</p>\n";
+
+ }
+
+ }
+
+ }
+
+?>
+
+</body>
+
+</html>
+
Modified: trunk/phpgwapi/inc/xmlrpc/demo/client/mail.php
===================================================================
--- trunk/phpgwapi/inc/xmlrpc/demo/client/mail.php 2014-12-18 23:28:36 UTC
(rev 12483)
+++ trunk/phpgwapi/inc/xmlrpc/demo/client/mail.php 2014-12-19 11:56:42 UTC
(rev 12484)
@@ -14,7 +14,7 @@
<p>You can find the source to this page here: <a
href="mail.php?showSource=1">mail.php</a><br/>
And the source to a functionally identical mail-by-XML-RPC server in the file
<a href="../server/server.php?showSource=1">server.php</a> included with the
library (look for the 'mail_send' method)</p>
<?php
-include("../../lib/xmlrpc.inc");
+include("xmlrpc.inc");
// Play nice to PHP 5 installations with REGISTER_LONG_ARRAYS off
if (!isset($HTTP_POST_VARS) && isset($_POST))
@@ -65,7 +65,5 @@
Body <textarea rows="7" cols="60" name="mailmsg">Your message
here</textarea><br/>
<input type="Submit" value="Send"/>
</form>
-<hr/>
-<em>$Id$</em>
</body>
</html>
Modified: trunk/phpgwapi/inc/xmlrpc/demo/client/simple_call.php
===================================================================
--- trunk/phpgwapi/inc/xmlrpc/demo/client/simple_call.php 2014-12-18
23:28:36 UTC (rev 12483)
+++ trunk/phpgwapi/inc/xmlrpc/demo/client/simple_call.php 2014-12-19
11:56:42 UTC (rev 12484)
@@ -2,8 +2,7 @@
/**
* Helper function for the terminally lazy
*
- * @version $Id$
- * @copyright (c) 2006-2009 G. Giunta
+ * @copyright (c) 2006-2014 G. Giunta
* @license code licensed under the BSD License:
http://phpxmlrpc.sourceforge.net/license.txt
*/
Modified: trunk/phpgwapi/inc/xmlrpc/demo/client/which.php
===================================================================
--- trunk/phpgwapi/inc/xmlrpc/demo/client/which.php 2014-12-18 23:28:36 UTC
(rev 12483)
+++ trunk/phpgwapi/inc/xmlrpc/demo/client/which.php 2014-12-19 11:56:42 UTC
(rev 12484)
@@ -1,34 +1,60 @@
-<html>
-<head><title>xmlrpc</title></head>
-<body>
-<h1>Which toolkit demo</h1>
-<h2>Query server for toolkit information</h2>
-<h3>The code demonstrates usage of the php_xmlrpc_decode function</h3>
-<?php
- include("../../lib/xmlrpc.inc");
-
- $f = new xmlrpcmsg('interopEchoTests.whichToolkit', array());
- $server = substr($_SERVER['PHP_SELF'], 0,
-strlen('/client/which.php')) . '/server/server.php';
- $c = new xmlrpc_client($server, $_SERVER['HTTP_HOST'], 80);
-// $c = new xmlrpc_client("/server.php", "phpxmlrpc.sourceforge.net", 80);
- $r = $c->send($f);
- if(!$r->faultCode())
- {
- $v = php_xmlrpc_decode($r->value());
- print "<pre>";
- print "name: " . htmlspecialchars($v["toolkitName"]) . "\n";
- print "version: " . htmlspecialchars($v["toolkitVersion"]) .
"\n";
- print "docs: " . htmlspecialchars($v["toolkitDocsUrl"]) . "\n";
- print "os: " . htmlspecialchars($v["toolkitOperatingSystem"]) .
"\n";
- print "</pre>";
- }
- else
- {
- print "An error occurred: ";
- print "Code: " . htmlspecialchars($r->faultCode()) . " Reason:
'" . htmlspecialchars($r->faultString()) . "'\n";
- }
-?>
-<hr/>
-<em>$Id$</em>
-</body>
-</html>
+<html>
+
+<head><title>xmlrpc</title></head>
+
+<body>
+
+<h1>Which toolkit demo</h1>
+
+<h2>Query server for toolkit information</h2>
+
+<h3>The code demonstrates usage of the php_xmlrpc_decode function</h3>
+
+<?php
+
+ include("xmlrpc.inc");
+
+
+
+ $f = new xmlrpcmsg('interopEchoTests.whichToolkit', array());
+
+ $c = new xmlrpc_client("/server.php", "phpxmlrpc.sourceforge.net", 80);
+
+ $r = $c->send($f);
+
+ if(!$r->faultCode())
+
+ {
+
+ $v = php_xmlrpc_decode($r->value());
+
+ print "<pre>";
+
+ print "name: " . htmlspecialchars($v["toolkitName"]) . "\n";
+
+ print "version: " . htmlspecialchars($v["toolkitVersion"]) .
"\n";
+
+ print "docs: " . htmlspecialchars($v["toolkitDocsUrl"]) . "\n";
+
+ print "os: " . htmlspecialchars($v["toolkitOperatingSystem"]) .
"\n";
+
+ print "</pre>";
+
+ }
+
+ else
+
+ {
+
+ print "An error occurred: ";
+
+ print "Code: " . htmlspecialchars($r->faultCode()) . " Reason:
'" . htmlspecialchars($r->faultString()) . "'\n";
+
+ }
+
+?>
+
+</body>
+
+</html>
+
Modified: trunk/phpgwapi/inc/xmlrpc/demo/client/wrap.php
===================================================================
--- trunk/phpgwapi/inc/xmlrpc/demo/client/wrap.php 2014-12-18 23:28:36 UTC
(rev 12483)
+++ trunk/phpgwapi/inc/xmlrpc/demo/client/wrap.php 2014-12-19 11:56:42 UTC
(rev 12484)
@@ -8,12 +8,10 @@
2) wrapping of remote methods into php functions
</h3>
<?php
- include("../../lib/xmlrpc.inc");
- include("../../lib/xmlrpc_wrappers.inc");
+ include("xmlrpc.inc");
+ include("xmlrpc_wrappers.inc");
- $server = substr($_SERVER['PHP_SELF'], 0, -strlen('/client/wrap.php'))
. '/server/server.php';
@@ Diff output truncated at 153600 characters. @@
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [12484] update xmlrpc from upstream,
Sigurd Nes <=