summaryrefslogtreecommitdiffstats
path: root/modules/xmlrpc/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'modules/xmlrpc/ChangeLog')
-rw-r--r--modules/xmlrpc/ChangeLog877
1 files changed, 857 insertions, 20 deletions
diff --git a/modules/xmlrpc/ChangeLog b/modules/xmlrpc/ChangeLog
index f24bf866..7273f893 100644
--- a/modules/xmlrpc/ChangeLog
+++ b/modules/xmlrpc/ChangeLog
@@ -1,15 +1,851 @@
+2007-02-25 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * testsuite.php: added one test for automatic encoding/decoding case
+
+2007-02-05 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
+
+ * xmlrpc.inc: slightly faster encoding of UTF8 data to ascii
+
+2007-01-11 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ xmlrpc_wrappers.inc: add two more options in wrap_xmlrpc_method and fix
+ typo to allow obj encoding
+
+2006-08-28 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * xmlrpc.inc: addscalar() and addstruct() where not returning 1 when adding
+ data to an already formed value
+
+2006-08-21 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * assorted fixes to make the suite more compatible with php 4.0.5 and 5.x
+
+2006-07-02 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * verify_compat.php: more tests
+
+2006-06-09 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * added new file: verify_compat.php, to help troubleshooting platform
+ support for the library; added it to makefile, too
+
+2006-05-24 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * minor fixes makefiles. Tagged and released as 2.0 final
+
+2006-04-22 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
+
+ * debugger/*: added option to set cainfo; improve web layout
+
+ * xmlrpc.inc: set sslverifypeer tp TRUE instaed of 1 by default
+
+ * doc/php_xmlrpc.xml: documentation updates
+
+2006-04-21 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * xmlrpc.inc: fixed bug in xmlrpcval::structmemexists()
+
+ * testsuite.php: added test case for xmlrpcval::structmemexists()
+
+2006-04-03 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * added a new demo file: simple_call.php
+
+2006-02-20 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * xmlrpc.inc: fix bug in multicall in case of no fallback and server error
+
+2006-01-30 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * benchmark.php: do not run http 1.1 tests if CURL notfound
+
+ * Released as 2.0 Rc3
+
+2006-01-19 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * testsuite.php: minor fix to expected date format in http cookie hedaer
+ to cope with PHP 5.1.2
+
+2006-01-05 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * released as 2.0 RC2
+
+2005-11-21 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
+
+ * xmlrpc.inc: fix warnings about references for PHP 4.1.X
+
+ * Whitespace cleanup on all the lib
+
+2005-11-16 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * xmlrpc.inc: fixed error that prevented usage of HTTPS (the client
+ always determined that ssl support was not present)
+
+2005-10-03 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <milos@groupwhere.org>
+
+ * 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 <milos@groupwhere.org>
+
+ * xmlrpc.inc, xmlrpcs.inc: Switched to using $GLOBALS instead of calling
+ global $varname
+
+2005-07-22 Miles Lott <milos@groupwhere.org>
+
+ * Removed: bug_* files
+
+2005-07-14 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ tagged and released version 1.1.1, backporting security fixes from HEAD
+
2005-06-28 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
- * xmlrpcs.inc: fixed security vulnerability (PHP code injection) in handling of
- BASE64 vals and NAME tags
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * xmlrpc.inc: (tentative) fix for security problem reported by
+ security@gulftech.org: 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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, xmlrpcs.inc: catch errors in evaluated PHP code and return an
- error to the calling code in case any are found
+ * xmlrpc.inc: refactored xmlrpcclient->sendpayloadHTTPS: now it calls a new
+ method (sendpayloadCURL) that could be used also for generating HTTP 1.1
+ requests
- * testsuite.php: added a test case for caling methods without params, plus
- a couple to test the code injection fixes
+ * 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
- * bumped up rev number and released as 1.1.1
+ * debugger/*: added initial revision of a 'universal xmlrpc debugger'
+
+2005-06-20 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * 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 <giunta.gaetano@sea-aeroportimilano.it>
+
+ * release of version 1.1
2005-04-24 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
@@ -122,7 +958,7 @@
* xmlrpc.inc: set hdrs field into response object in case of XML parsing error
(uniform behaviour with other responses)
-
+
2005-02-26 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it>
* xmlrpc.inc: use global var $xmlrpcVersion as number for user agent string
@@ -166,7 +1002,7 @@
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
+ 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.
@@ -224,7 +1060,7 @@
* 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
+ * 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.
@@ -288,7 +1124,7 @@
output in PRE tags.
2002-12-17 Andres Salomon <dilinger@voxel.net>
-
+
* released 1.0.99.
* Makefile: changed the tarball format/dist rule to a more
conventional form, as well as normal release updates.
@@ -306,7 +1142,7 @@
* 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.
@@ -376,7 +1212,7 @@
* 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 <varga@utcru.sk>. This means you can no longer print
during processing
@@ -398,7 +1234,7 @@
* doc/xmlrpc_php.sgml: updated documentation to reflect recent
changes
-
+
2000-07-18 Edd Dumbill <edd@usefulinc.com>
@@ -424,7 +1260,7 @@
* server.php: Added validator1 suite of tests to test against
validator.xmlrpc.com
-
+
2000-05-06 Edd Dumbill <edd@usefulinc.com>
@@ -432,7 +1268,7 @@
* 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.
@@ -514,15 +1350,16 @@
* 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 <edd@usefulinc.com>
* 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.26 2005/04/24 18:32:22 ggiunta Exp $
+
+$Id: ChangeLog,v 1.80 2007/02/25 18:42:53 ggiunta Exp $