📄 changelog
字号:
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 fixes2005-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 xml2005-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 HTTP2005-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 it2005-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 RC22005-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 lib2005-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 subclassing2005-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 infrastructure2005-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, too2005-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, too2005-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 mode2005-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 release2005-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 $varname2005-07-22 Miles Lott <milos@groupwhere.org> * Removed: bug_* files2005-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 SSL2005-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 parameters2005-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 against2005-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.12005-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 clarity2005-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 too2005-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 functionality2005-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 tests2005-06-30 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it> tagged and released version 1.1.1, backporting security fixes from HEAD2005-06-28 Gaetano Giunta <giunta.gaetano@sea-aeroportimilano.it> * 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -