git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_SGD/tags/3.7.0.2_original@1 eb19766c-00d9-a042-a3a0-45cb8ec72764
278 lines
14 KiB
Plaintext
278 lines
14 KiB
Plaintext
XML-RPC for PHP version 2.2 - 2007/02/25
|
|
|
|
This release corrects a couple of bugs and adds a few minor features.
|
|
|
|
* fixed: debugger errors on php installs with magic_quotes_gpc on
|
|
* fixed: support for https connections via proxy
|
|
* fixed: wrap_xmlrpc_method() generated code failed to properly encode php objects
|
|
* improved: slightly faster encoding of data which is internally UTF-8
|
|
* improved: debugger always generates a 'null' id for jsonrpc if user omits it
|
|
* new: debugger can take advantage of a graphical value builder
|
|
(it has to be downloaded separately, as part of jsxmlrpc package)
|
|
* new: support for the <NIL/> xmlrpc extension
|
|
* new: server support for the system.getCapabilities xmlrpc extension
|
|
* new: wrap_xmlrpc_method() accepts two new options: debug and return_on_fault
|
|
|
|
|
|
XML-RPC for PHP version 2.1 - 2006/08/28
|
|
|
|
This release corrects quite a few bugs and adds some interesting new features.
|
|
There is a minor security enhancement and overall speedup too.
|
|
|
|
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 ***
|
|
|
|
CHANGES THAT MIGHT AFFECT DEPLOYED APPLICATIONS:
|
|
|
|
The wrap_php_function and wrap_xmlrpc_method functions have been moved out of
|
|
the base library file xmlrpc.inc into a file of their own: xmlrpc_wrappers.inc.
|
|
You will have to include() / require() it in your scripts if you have been using
|
|
those functions.
|
|
|
|
For increased security, the automatic rebuilding of php object instances out of
|
|
received xmlrpc structs in wrap_xmlrpc_method() has been disabled (but it can be
|
|
optionally reenabled).
|
|
|
|
The constructor of xmlrpcval() values has seen major changes, and it will not
|
|
throw a php warning anymore when invoked using an unknown xmlrpc type: the
|
|
error will only be written to php error log. Also new xmlrpcval('true', 'boolean')
|
|
is not supported anymore.
|
|
|
|
MAJOR IMPROVEMENTS:
|
|
|
|
The new function php_xmlrpc_decode_xml() will take the xml representation of
|
|
either an xmlrpc request, response or single value and return the corresponding
|
|
php-xmlrpc object instance.
|
|
|
|
Both wrap_php_function() and wrap_xmlrpc_method() functions accept many more
|
|
options to fine tune their behaviour, including one to return the php code to
|
|
be saved and later used as standalone php script.
|
|
|
|
A new function wrap_xmlrpc_server() has been added, to wrap all (or some) of the
|
|
methods exposed by a remote xmlrpc server into a php class.
|
|
|
|
Lib internals have been modified to provide better support for grafting extra
|
|
functionality on top of it. Stay tuned for future releases of the EXTRAS package.
|
|
|
|
Last but not least a new file has been added: verify_compat.php, to help users
|
|
diagnose the level of compliance of the current php install with the library.
|
|
|
|
CHANGELOG IN DETAIL:
|
|
|
|
* fixed bug 1311927: client not playing nice with some proxy/firewall on ports != 80
|
|
* fixed bug 1334340: all ereg_ functions have been replaced with corresponding preg_
|
|
* fixed bug: wrong handling of 'deflate' http encoding, both server and client side
|
|
* fixed bug: sending compressed responses when php output compression is enabled was not working
|
|
* fixed bug: addarray() and addstruct() where not returning 1 when adding data to already initialized values
|
|
* fixed bug: non-ascii chars used in struct element names where not being encoded correctly
|
|
* restored compatibility with php 4.0.5 (for those poor souls still stuck on it)
|
|
* server->service() now returns either the payload or xmlrpcresp instance
|
|
* server->add_to_map() now accepts methods with no param definitions
|
|
* added new function: php_xmlrpc_decode_xml()
|
|
* added new function: wrap_xmlrpc_server()
|
|
* major improvements and security enhancements to wrap_php_function() and wrap_xmlrpc_method()
|
|
* documentation for single parameters of exposed methods can be added to the dispatch map
|
|
(and turned into html docs in conjunction with a future release of the extras package)
|
|
* full response payload is saved into xmlrpcresp object for further debugging
|
|
* stricter parsing of incmoing xmlrpc messages: two more invalid cases are now detected
|
|
(double data element inside array and struct/array after scalar inside value element)
|
|
* debugger can now generate code that wraps a remote method into php function (works for jsonrpc, too)
|
|
* debugger has better support for being activated via a single GET call (for integration into other tools?)
|
|
* more logging of errors in a lot of situations
|
|
* javadoc documentation of lib files almost complete
|
|
* the usual amount of new testcases in the testsuite
|
|
* many performance tweaks and code cleanups
|
|
* added foundation for emulating the API of the xmlrpc extension (extras package needed)
|
|
|
|
|
|
XML-RPC for PHP version 2.0 - 2006/04/24
|
|
|
|
I'm pleased to announce XML-RPC for PHP version 2.0, final.
|
|
|
|
With respect to the last release candidate, this release corrects a few small
|
|
bugs and adds a couple of new features: more authentication options (digest and
|
|
ntlm for servers, ntlm for proxies, and some https custom certificates stuff);
|
|
all the examples have been reviewed and some demo files added,
|
|
including a ready-made xmlrpc proxy (useful e.g. for ajax calls, when the xmlrpc
|
|
client is a browser); the server logs more warning messages for incorrect situations;
|
|
both client and server are more tolerant of commonly-found mistakes.
|
|
The debugger has been upgraded to reflect the new client capabilities.
|
|
|
|
In greater detail:
|
|
|
|
* fixed bug: method xmlrpcval::structmemexists($value) would not work
|
|
* fixed bug: wrap_xmlrpc_method would fail if invoked with a client object that
|
|
has return_type=phpvals
|
|
* fixed bug: in case of call to client::multicall without fallback and server error
|
|
* fixed bug: recursive serialization of xmlrpcvals loosing specified UTF8 charset
|
|
* fixed bug: serializing to ISO-8859-1 with php 5 would raise an error if non-ascii
|
|
chars where found when decoding
|
|
* new: client can use NTLM and Digest authentication methods for https and http 1.1
|
|
connections; authentication to proxy can be set to NTLM, too
|
|
* new: server tolerates user functions returning a single xmlrpcval object instead
|
|
of an xmlrpcresp
|
|
* new: server does more checks for presence and correct return type of user
|
|
coded method handling functions, and logs inconsistencies to php error log
|
|
* new: client method SetCaCertificate($cert, $is_dir) to validate server against
|
|
* new: both server and client tolerate receiving 'true' and 'false' for bool values
|
|
(which btw are not valid according to the xmlrpc spec)
|
|
|
|
|
|
XML-RPC for PHP version 2.0RC3 - 2006/01/22
|
|
|
|
This release corrects a few bugs and adds some interesting new features.
|
|
It has been tested with PHP up to 4.4.2 and 5.1.2.
|
|
|
|
* fixed bug: server not recognizing clients that declare support for http compression
|
|
* fixed bug: serialization of new xmlrpcval (8, 'string') when internal encoding
|
|
set to UTF-8
|
|
* fixed bug: serialization of new xmlrpcval ('hello', 'int') would produce
|
|
invalid xml-rpc
|
|
* new: let the server accept 'class::method' syntax in the dispatch map
|
|
* new: php_xmlrpc_decode() can decode xmlrpcmessage objects
|
|
* new: both client and server can specify a charset to be used for serializing
|
|
values instead of the default 'US-ASCII+xml-entities-for-other-characters'.
|
|
Values allowed: ISO-8859-1 and UTF-8
|
|
* new: the server object can register 'plain' php functions instead of functions
|
|
that accept a single parameter of type xmlrpcmsg. Faster, uses less memory
|
|
(but comes with minor drawbacks as well, read the manual for more details)
|
|
* new: client::setDebug(2) can be used to have the request payload printed to
|
|
screen before being sent
|
|
* new: server::service($data) lets user parse data other than POST body, for
|
|
easier testing / subclassing
|
|
* changed: framework-generated debug messages are sent back by the server base64
|
|
encoded, to avoid any charset/xml compatibility problem
|
|
* other minor fixes
|
|
|
|
The usual refactoring of a lot of (private) methods has taken place, with new
|
|
parameters added to some functions.
|
|
Javadoc documentation has been improved a lot.
|
|
The HTML documentation has been shuffled around a bit, hoping to give it a more
|
|
logical organization.
|
|
|
|
The experimental support for the JSON protocol has been removed, and will be
|
|
packaged as a separate download with some extra very interesting stuff (human
|
|
readable auto-generated documentation, anyone?).
|
|
|
|
|
|
XML-RPC for PHP version 2.0RC2 - 2005/11/22
|
|
|
|
This release corrects a few bugs and adds basically one new method for better
|
|
HTTPS support:
|
|
|
|
* fixed two bugs that prevented xmlrpc calls to take place over https
|
|
* fixed two bugs that prevented proper recognition of xml character set
|
|
when it was declared inside the xml prologue
|
|
* added xmlrpc_client::setKey($key, $keypass) method, to allow using client
|
|
side certificates for https connections
|
|
* fixed bug that prevented proper serialization of string xmlrpcvals when
|
|
$xmlrpc_internalencoding was set to UTF-8
|
|
* fixed bug in xmlrpc_server::echoInput() (and marked method as deprecated)
|
|
* correctly set cookies/http headers into xmlrpcresp objects even when the
|
|
sned() method call fails for some reason
|
|
* added a benchmark file in the testsuite directory
|
|
|
|
A couple of (private/protected) methods have been refactored, as well as a
|
|
couple of extra parameters added to some (private) functions - this has no
|
|
impact on the public API and should be of interest primarily to people extending
|
|
/ subclassing the lib.
|
|
|
|
There is also new, PARTIAL support for the JSON-RPC protocol, implemented in
|
|
two files in the extras dir (more info about json-rpc at http://json-rpc.org)
|
|
|
|
|
|
XML-RPC for PHP version 2.0RC1 - 2005/10/03
|
|
|
|
I'm pleased to announce XML-RPC for PHP version 2.0, release candidate 1.
|
|
|
|
This release introduces so many new features it is almost impossible to list them
|
|
here, making the library finally on pair with, if not more advanced than, any other
|
|
similar offer (e.g. the PEAR XMLRPC package or the Incutio IXR library).
|
|
No, really, trust me.
|
|
|
|
The minimum supported PHP version is now 4.2 - natively - or 4.0.4pl1 - by usage of
|
|
a couple of compatibility classes (code taken from PEAR php_compat package).
|
|
|
|
The placement of files and directories in the distribution has been deeply modified,
|
|
in the hope of making it more clear, now that the file count has increased.
|
|
I hope you find it easy.
|
|
|
|
Support for "advanced" HTTP features such as cookies, proxies and keep-alives has
|
|
been added at last.
|
|
|
|
It is now much easier to convert between xmlrpcval objects and php values, and
|
|
in fact php_xmlrpc_encode and php_xmlrpc_decode are now the recommended methods
|
|
for all cases, except when encoding base64 data.
|
|
|
|
Two new (experimental) functions have been added, allowing automagic conversion
|
|
of a php function into an xmlrpc method to be exposed and vice-versa.
|
|
|
|
PHP objects can be now automatically serialized as xmlrpc struct values and
|
|
correctly deserialized on the other end of the transmission, provided that the
|
|
same class definition is present on both sides and no object members are of
|
|
type resource.
|
|
|
|
A lot of the existing class methods have been overloaded with extra parameters
|
|
or new functionality, and a few added ex-novo, making usage easier than ever.
|
|
|
|
A complete debugger solution is included in the distribution. It needs a web server
|
|
to run (a freely available version of the same debugger is accessible online, it
|
|
can be found at http://phpxmlrpc.sourceforge.net).
|
|
|
|
For a more detailed list of changes, please read carefully chapter 2 of the
|
|
included documentation, or, even better, take a look at the source code, which
|
|
is commented in javadoc style quite a bit.
|
|
|
|
|
|
XML-RPC for PHP version 1.2 - 2005/08/14
|
|
|
|
This removes all use of eval(), which is a potential security problem.
|
|
All users are encouraged to upgrade as soon as possible.
|
|
As of this release we are no longer php3-compatible.
|
|
|
|
|
|
XML-RPC for PHP version 1.1.1 - 2005/06/30
|
|
|
|
This is a security vulnerability fix release.
|
|
All users are invited to upgrade as soon as possible.
|
|
|
|
|
|
XML-RPC for PHP version 1.1 - 2005/05/03
|
|
|
|
I'm pleased to announce XML-RPC for PHP version 1.1
|
|
It's taken two years to get to the this point, but here we are, finally.
|
|
|
|
This is a bugfix and maintenance release. No major new features have been added.
|
|
All known bugs have been ironed out, unless fixing would have meant breaking
|
|
the API.
|
|
The code has been tested with PHP 3, 4 and 5, even tough PHP 4 is the main
|
|
development platform (and some warnings will be emitted when runnning PHP5).
|
|
|
|
Notheworthy changes include:
|
|
|
|
* do not clash any more with the EPI xmlrpc extension bundled with PHP 4 and 5
|
|
* fixed the unicode/charset problems that have been plaguing the lib for years
|
|
* proper parsing of int and float values prepended with zeroes or the '+' char
|
|
* accept float values in exponential notation
|
|
* configurable http user-agent string
|
|
* use the same timeout on client socket reads as used for connecting
|
|
* more explicative error messages in xmlrpcresponse in many cases
|
|
* much more tolerant parsing of malformed http responses from xmlrpc servers
|
|
* fixed memleak that prevented the client to be used in never-ending scripts
|
|
* parse bigger xmlrpc messages without crashing (1MB in size or more)
|
|
* be tolerant to xmlrpc responses generated on public servers that add
|
|
javascript advertising at the end of hosted content
|
|
* the lib generates quite a few less PHP warnings during standard operation
|
|
|
|
This is the last release that will support PHP 3.
|
|
The next release will include better support for PHP 5 and (possibly) a slew of
|
|
new features.
|
|
|
|
The changelog is available at:
|
|
http://cvs.sourceforge.net/viewcvs.py/phpxmlrpc/xmlrpc/ChangeLog?view=markup
|
|
|
|
Please report bugs to the XML-RPC PHP mailing list or to the sourceforge project
|
|
pages at http://sourceforge.net/projects/phpxmlrpc/
|