Server: fix failure of default method.
Release 1.08
Released November 14, 2006.
Subversion directory release_number/1.08.00.
- Fix build with all client XML transports (and therefore all client
code) disabled.
- Fix client::start() type mismatch causing compiler warning.
- Change exported symbol names in libxmlrpc_xmltok to have
"xmlrpc_" prefix so as not to collide with separate Expat or
libwww library.
- Fix a bunch of duplicate make rule problems.
Release 1.07
Released October 11, 2006.
Subversion directory release_number/1.07.00.
New Features
- Add 64 bit integer type XMLRPC_TYPE_I8 with XML-RPC representation
<i8> (XML-RPC extension).
- A user's method function in an Abyss server can now tell the IP
address and port of the client. Added SessionGetChannelInfo(),
ServerRunChannel().
- Registry services: Add xmlrpc_method2 type, xmlrpc_registry_add_method2(),
xmlrpc_registry_process_call2(). These allow a server to pass information
about the circumstances of a call (e.g. IP address of caller) to a method
function.
- Add detail to xmlrpc_decompose_value() error messages.
- Include library prerequisite information in shared libraries. One
thing this fixes is it lets you use a program that was link-edited for
Xmlrpc-c 1.03 with a 1.07 library without unresolved references.
Fixes for Use-time Bugs
- Abyss crashes when client sends garbage instead of an HTTP
request.
- xmlrpc_decompose_value() leaks memory when it fails. (Total
rewrite).
Build Fixes, Enhancements
- Build: Add ability to build in directory separate from source.
- Build: Add some missing dependencies and some extra ones to make
parallel make work.
- Use PIC (position indepdendent code) for C++ shared libraries.
(All other shared libraries already did). This means it works on 64
bit Linux.
- Build: Fix order of -l options for xmlrpc and xmlrpc_transport.
- Build: Add missing dependency on transport_config.h to make file for
src/cpp to fix build failure.
- Build: Remove space between -L and value in make file.
- Build: De-libtool Abyss.
Release 1.06
Released July 13, 2006
Subversion directory release_number/1.06.00.
New Features
- Add system.shutdown method.
- Add ServerTerminate(), ServerResetTerminate().
- Add URI path control (i.e. it doesn't have to be "/RPC2")
to Xmlrpc-c Abyss server facilities.
- Abstract Abyss socket layer; introduce TChannel and TChanSwitch types.
Fixes for Use-time Bugs
- BJH: Fix xmlrpc_client_call_asynch(): wrong sense of env.fault_occurred
check.
- Change exported symbol names in libxmlrpc_xmlparse to have
"xmlrpc_" prefix so as not to collide with separate Expat
library.
Build Changes
- BJH: Restructure threading facility in Abyss.
- BJH: Use strsol constant to eliminate crashes due to out of memory.
- BJH: fix HAVE_UNICODE_WCHAR.
- BJH: Use xml2-config instead of pkg-config to find Libxml2.
- BJH: Make build with external libxml2 work.
- BJH: fix make rule for srcdir, blddir to work with broken Make.
- BJH: Fix distclean so it removes srcdir and blddir in cpp/ .
- BJH: Remove Expat sample program directory. Xmlrpc-c's production use
of Expat is an adequate example.
- BJH: Remove last autoconf-generated make files (expat).
- BJH: add -Wundef Gcc compile option.
Release 1.05
Released March 29, 2006
Subversion directory release_number/1.05.00.
New Features
- BJH: Add run-once and inetd forms of server.
- BJH: Add create() and availableTypes() class methods for
clientXmlTransport_http.
- BJH: Keepalive (persistent connections) works in Abyss. Before, Abyss
defaulted to single-request connnections unless the client requested
otherwise. For HTTP 1.0, that is correct, but for HTTP 1.1, the opposite
is correct. Also, there was some screwy connection between chunking
the response and keepalive, and the code was messy enough that there
could have been a variety of other bugs.
- BJH: XML-RPC Abyss request handler never chunks response. Previously,
it normally didn't, but did sometimes, depending somehow on whether the
connection was going to be kept alive.
- BJH: Abyss XML-RPC server accepts (ignores) parameters after
"text/xml" in Content-type header from client.
- BJH: serverAbyss: Add runOnce() and runConn() methods. Move most
of run() method to constructor.
- BJH: Proper global constant initialization (e.g. curl_global_init(),
curl_global_cleanup()) in client libraries. clientGlobalConstant class.
- BJH: Make C++ registry an autoobject.
- BJH: Remove old, broken RPM spec file.
- Mike Goddard: in Xmlrpc-c-config, allow libwww-client as synonym
for client, for backward compatibility.
- BJH: Abyss: Create a non-global-variable option for MIME types.
- BJH: Abyss: Add MIMEType_term to go with MIMEType_init().
- BJH: improve handling of nonprintable characters in XMLRPC_TRACE_XML
output.
- BJH: Change default minimum argument on paramList::getDouble() from
DBL_MIN to -DBL_MAX.
Fixes For Use-time Bugs
- BJH: Eliminate memory leak caused by MIMETtype_init: one leak per program.
- BJH: Fix memory leak in C++ client result value - one leak per RPC.
- BJH: Fix memory leak in C++ client parameter list - one leak per RPC.
- BJH: Fix memory leak in server method registry -- one leak per registered
method.
- Daniel Dlab: Correct INTERNET_FLAG_IGNORE_CERT_DATE_INVALID to
ERROR_INTERNET_SEC_CERT_DATE_INVALID in Wininet transport.
- BJH: Fix Abyss' identification of the server software in the web pages
it generates to reflect the fact that it is the Xmlrpc-c fork of Abyss.
- BJH: Fix memory leak in Curl transport SSL certificate password option.
- BJH: Fix memory leak in Abyss handler registration.
- BJH: Fix memory leak in method registry - one leak per RPC.
- BJH: Fix memory leaks in XML parsing (error paths).
- BJH: Fix memory leak in struct set functions.
- BJH: Fix memory leak in wide character constructor functions.
- BJH: Fix timeouts on Abyss HTTP header read.
<Miscellaneous Changes
- BJH: Fix signature in xmlrpc_sample_add_server C++ example program.
- BJH: Fix build of transport_config.h
- BJH: beginnings of libtool-less shared library building for C++
libraries. Fully implemented for Linux only.
Release 1.04
Subversion directory release_number/1.04.00.
Released November 24, 2005
New Features
- BJH: New shared (reference-counted) pointer classes for C++ client classes.
- BJH: New ServerAccessor class for C++ clients for more convenient
RPC-calling code.
- BJH: Add xmlrpc_parse_response2().
Unlike xmlrpc_parse_response(), it distinguishes between failure to
parse and a response that indicates an XML-RPC failure.
- BJH: Change Curl transport to use the Curl multi facility (Curl
internal threads) instead of pthreads. Simpler, better matched to the
Xmlrpc-c user interface, and timeouts now work.
- BJH: Remove curl_global_cleanup() so that multiple simultaneous
Curl client XML transports per process are essentially
possible and they don't interfere with other process use of
Curl.
- BJH: Add a mess of SSL detail controls for Curl: 'sslversion',
'ssl_cert', etc.
- BJH: Add ability to make an Abyss server out of an already bound
socket.
- BJH: Add d/ (double) to Xmlrpc. Thanks Alistair John Strachan
<s0348365@sms.ed.ac.uk>.
- BJH: New Curl C++ transport constructor that takes options using the
constrOpt().opt1(value1).opt2(value2) paradigm.
Fixes For Use-Time Bugs
- BJH: meerkat-app-list example program: remove NUL character from
time period parameter.
- BJH: Fix use of uninitialized 'name' member in Abyss ServerCreate().
- BJH: Serialize access to synchronous Curl session in Curl client
XML transport (to avoid crashes with multiple threads).
- BJH: fix use of pthread_mutex_t in girmem.hpp, so it can be used in
a Windows program.
- BJH: Make Abyss work with short writes to sockets. Thanks
Alistair John Strachan <s0348365@sms.ed.ac.uk>.
- BJH: Fix xmlrpc-c-config --version.
- BJH: Fix Curl transport bug: arbitrary values for SSL verify options.
- SAB: Fix for Windows what broke between 1.02 and 1.03.
- SAB: Fix incorrect result of xmlrpc_read_string_w() (wrong-size memcpy()).
- BJH: Fix xmlrpc-c-config --client missing -l options.
Build, install changes
- BJH: Include <stdlib.h> instead of <malloc.h>, which
doesn't exist in some environments.
- BJH: Fix make file so it installs libxmlrpc_abyss.
- BJH: Install client_simple.hpp interface header file.
- BJH: Add xmlrpc_c::base64FromBytes(), xmlrpc_c::bytesFromBase64().
- Mike West: Don't include tools/xmlrpc and tools/xmlrpc_transport
in the build if client library configured out.
- BJH: Remove 'cpptest' from default make.
- BJH: Always install using the bundled install program, instead of
trying to find another install program on the system. And use the
aforementioned bundled install program correctly.
- BJH: when installing legacy header symlinks, remove old names first.
- BJH: Don't try to build C++ tools if C++ libraries not built.
- BJH: Don't try to build Abyss example programs if Abyss libraries
not built.
- BJH: Fix conditional build for wide character (Unicode) stuff.
- BJH: Change a "state" to "enum state" to avoid
a mysterious AIX compile failure. Add a "const" to a prototype
to avoid erroneous AIX compile failure.
- BJH: Remove variable argument macros, not available on some AIX.
- BJH: Fix for libxml2, no curl builds. make clean cleans test directory
Internal Changes
- BJH: Privatize most of the lower layers of Abyss -- move them out
of the public interface header file abyss.h.
Release 1.03
Released June 26, 2005.
Subversion directory release_number/1.03.00.
- BJH: New C++ libraries designed for pure C++ applications
(Application never sees the underlying C structures or reference
counts).
- BJH: Make Curl do cookies (session only) and persistent connections.
This is only for calls through the synchronous interface, and the
synchronous interface is no longer thread safe -- you can have only
one thread making calls through it.
- BJH: Add Curl SSL_NO_VERIFYPEER, SSL_NO_VERIFYHOST control.
- BJH: Add User-Agent to Curl transport, Xmlrpc program.
- BJH: libwww transport does not do the weird handling of the "auth"
cookie. It used to have a global cookie (one cookie shared by all
servers) called "auth", which it maintained in an environment
variable.
- BJH: interface header files renamed from xmlrpc_xxx to xmlrpc-c/xxx
(old names installed a symbolic links for backward compatibility).
- BJH: libxmlrpc_server_abyss: Add ability to set the /RPC2 handler
without also setting default handler, and to set handlers for files
other than /RPC2.
- BJH: libxmlrpc_server_abyss: Eliminate global variable for registry
handle.
- BJH: Abyss: allow user's request handlers to have context
(Add URIHandler2 type).
- BJH: Add xmlrpc_datetime_new_sec(), xmlrpc_read_datetime_sec().
- BJH: Builds on AIX - new __inline definition, uint32_t instead of uint32,
et al.
- BJH: Don't build client library if not building any client XML
transport.
- BJH: Fix bug: xmlrpc_serialize_base64_data() doesn't free working
storage.
- BJH: Fix mysterious disablement of forking Abyss (ServerRunForked()).
- BJH: Fix bug: 'make install' doesn't install libxmlrpc_xmltok.
- BJH: Renamed CGI stuff, add non-builtin-registry style of CGI server.
- BJH: Break up 'rpctest', rename to 'test'.
Release 1.02
Released April 4, 2005.
Subversion directory release_number/1.02.00.
- SAB: Win32 http.sys server: Add new project and sample as
an alternative to Abyss on current Win32 platforms. Does
basic authentication and SSL. Requires recent Platform SDK to
build.
- BJH: Add xmlrpc_int_new(), xmlrpc_read_int(), etc.,
xmlrpc_decompose_value()
- BJH: Add nil (<nil>>, XMLRPC_TYPE_NIL) capability.
- SAB: WinInet Transport: Add Ignore Invalid SSL certs option.
- BJH: Add 'network_interface' option to Curl transport.
- BJH: Add basic authentication to 'xmlrpc' program.
- BJH: Add 'xmlrpc_transport' tool.
- SAB: Improve use of libCurl in Win32. Add documentation
and alter some project and configuration files.
- BJH: Add transport-specific options.
- BJH: Use GNUmakefile to catch non-GNU make
- BJH: Fix usage message in xmlrpc-c-config.
- BJH: Curl transport: check for failure of Winsock startup.
- BJH: Fix memory leak in Curl - not freeing curlTransaction.
- SAB: WinInet Transport: Fix bad authentication header.
Release 1.01
Released January 8, 2005.
Subversion directory release_number/1.01.00.
- SAB: Windows works again; new build strategy.
- BJH: Abyss: Add ConnCreate2() with foreground capability.
- BJH: Abyss: Add ServerRunOnce2() with foreground capability.
- BJH: Abyss: Fix ServerRunOnce().
- BJH: Add xmlrpc_server_abyss().
- BJH: Abyss pthreads is default
- BJH: Clean up client transport multiplexor
- BJH: Separate out server registry stuff into new libxml_server.
- BJH: Examples/Makefile uses new xmlrpc-c-config.test so as to be a
better example.
- BJH: Fail when structure format specifier does not end in
"*" instead of just asserting that it does.
- BJH: Fail when structure format specifier is not closed by "}"
instead of just asserting that it is.
- BJH: Add xmlrpc_array_read_item().
Release 1.00
Released October 25, 2004.
Subversion directory release_number/1.00.00.
- New modular client XML transport structure. Curl and Wininet transports
(in addition to existing libwww).
- Bryan Henderson: create Makefile.config; make examples/ directory use
static make file.
- Bryan Henderson: replace Makefile.am with already built Makefile.in.
- Peter Astrand: make it compile with Gcc 3.1.1.
- Joe Shaw: Can use libxml2 instead of libexpat.
- Bernhard Herzog: const fixes
- Stephen Blackheath: ./configure piece of building Abyss
with pthreads.
- Jeff Dubrule: Removed C++ comments from expat.
- Patrick Boykin: Facility to copy xmlrpc_server_info structs.
Release 0.9.10
Released June 30, 2001.
All work by Eric Kidd except where specified otherwise.
- Man pages!
- Debian packages!
- Jeff Stewart: NT CGI fixes.
- Andy Maloney: Win32 xmlrpc_win32_config.h fixes.
- Mike Bytnar: Solaris build fixes. Thanks!
- No more 'CVS' directories lurking in the dist tarball.
- Disabled rpath stuff so we comply with Debian policy.
- wchar_t code can now be disabled.
- New interop server.
- Parts of an interop client.
- Lots of interop fixes.
- Other stuff.
Release 0.9.9
Released April 30, 2001
All work by Eric Kidd except where specified otherwise.
- xml-rpc-api2cpp now generates usable proxy classes.
- Luke Howard: Default method capability.
- Abstract XML parser API (but you'll need to edit makefiles to use it).
- Implemented a configurable size limit for XML data off the network.
- Ability to build and parse XML-RPC values using wchar_t strings.
- Basic UTF-8 handling: Refuse to process invalid UTF-8 from network,
print warnings when sending invalid UTF-8 *to* network.
- Highly robust UTF-8 validator, decoder, encoder.
- Modularized the build system--build only what you need.
- Integrated Electric Fence into build system (optional).
- Fixed all recent, reproducible bugs in CVS. These were generally
Windows build bugs.
- Andy Maloney: Build fixes for Windows.
- Mike Bytnar: Build fixes for Solaris.
- RedHat 7 warning fixes.
Release 0.9.8
Released February 19, 2001.
All work by Eric Kidd except where specified otherwise.
- J. Alan Eldridge, Rosimildo daSilva: Build fixes.
- Send 'encoding="UTF-8"' in XML prologue.
Release 0.9.7
Released February 14, 2001.
All work by Eric Kidd except where specified otherwise.
- SECURITY: Configurable nesting limits (see advisory 1) to prevent
denial-of-service attacks and stack overflow.
- Alex Olugbile: Win32 build fixes.
- Luke Howard: Function name fix.
Release 0.9.6w
Released February 02, 2001.
All work by Eric Kidd except where specified otherwise.
- Merged Win32 VC/C++ changes from Alex and Ian.
- Merged Win32 Cygwin changes from Rosimildo daSilva
Release 0.9.6
Released January 30, 2001.
All work by Eric Kidd except where specified otherwise.
- Fixed lots of gcc warnings.
- Added a new 'xmlrpc_server_info' class, which allows you to
set options on a per-server basis.
- HTTP Basic authentication.
- Added internal implementation of system.multicall, lots of brutal test
cases, and stubs for other system.* commands.
- Added APIs for accessing CGI and Abyss method registries.
- Implemented system.listMethods, system.methodHelp, system.methodSignature.
- Fixed stupid bug in parsing of "(ss*)"-style array descriptions
where there were no extra elements.
- Added highly experimental hacked copy of mod_gzip into the
tools/turbocharger directory. This version does gzip *and* deflate!
- Added xml-rpc-api2txt, since XML-RPC doesn't have any IDL language.
- Merged in Ilya Goldberg's libwww/SSL setup code.
Release 0.9.5
Released January 20, 2001.
All work by Eric Kidd except where specified otherwise.
- Bug fix: Make sure CGI-based servers send correct content-length.
Release 0.9.4
Released January 18, 2001.
All work by Eric Kidd except where specified otherwise.
- Services for CGI-based servers.
Release 0.9.3
Released January 14, 2001.
All work by Eric Kidd except where specified otherwise.
- Works with Libwww 5.2.8, even when linked against expat.
- Added xmlrpc_value_type and XmlRpcValue::getType functions.
- Miscellaneous API tweaks to discourage writing of incorrect programs.
Should not affect any correct programs.
Release 0.9.2
Released January 12, 2001.
All work by Eric Kidd except where specified otherwise.
- Improved error messages.
- Refuse to link against libwww if it was built with expat.
Release 0.9.1
Released January 09, 2001.
All work by Eric Kidd except where specified otherwise.
- Integrated Rick Blair's fix to speed up libwww client.
- Added informative URLs to Meerkat example programs.
- Hid the implementation details of xmlrpc_value, just to keep
people honest. (No more dangerous allocation on the stack!)
- Minor C++ code cleanup after buying modern C++ books.
- Documentation improvements.
Contributors
These contributors are referred to above by initials:
- BJH
- Bryan Henderson <bryanh@giraffe-data.com>
- SAB
- Steven A. Bone <sbone@pobox.com>
These contributors are referred to above by full name:
- Peter Astrand
- Joe Shaw
- Bernhard Herzon
- Stephen Blackheath
- Jeff Dubrule
- Patrick Boykin
- Jeff Stewart
- Andy Maloney
- Mike Bytnar
- Luke Howard
- J. Alan Eldridge
- Rosimildo daSilva
- Alex Olugbile
- Ilya Goldberg
- Rick Blair
These are other contributors of unknown date:
-
Adrian Likins made lots of good, real-world suggestions for improvement.
-
Ian MacLean made patches from Alex's Windows port.
-
Brian Quinlan of the Active State company made lots of cool patches,
including preliminary wchar_t capability.