2 Changes with APR-util 1.4.0
4 *) Add DTrace Probes to Hooks, making it easier to inspect APR Hook based
5 applications with DTrace. [Theo Schlossnagle <jesus omniti.com>]
7 *) Add ODBC DBD driver [Tom Donovan]
9 *) Older OpenLDAP implementations may have ldap_set_rebind_proc() with two
10 args. Provide detection code and alternative implementation.
13 *) Add Berkeley DB 4.7 support.
14 [Arfrever Frehtes Taifersar Arahesis <arfrever.fta gmail.com>]
16 *) PostgreSQL rows (internally) start from zero, not one. Account for it in
17 row fetching function. [Bojan Smojver]
19 *) Detection of PostgreSQL may fail if LIBS contains all libs returned by
20 pg_config. Use it only as the last resort. [Bojan Smojver]
22 *) When searching for DSOs, look in apr-util-APU_MAJOR_VERSION subdirectory
23 of each component of APR_DSOPATH. PR 45327
24 [Joe Orton, William Rowe, Bojan Smojver]
26 *) Give MySQL DBD driver reconnect option. PR 45407
29 *) Implement resource list when threads are unavailable. PR 24325
32 Changes with APR-util 1.3.0
34 *) apr_reslist: destroy all resources in apr_cleanup.
37 *) Add apr_brigade_split_ex for reusing existing brigades in situation where
38 brigades need to be split often during the lifetime of a pool.
41 *) Amend apr_reslist to expire resources whose idle time exceeds ttl.
42 PR 42841 [Tom Donovan, Nick Kew, Ruediger Pluem]
44 *) Modularize ldap's stub with the dbd dso modular structure, and teach
45 the apu dso's to respect the system specific shared lib path var.
46 To link to an application without ldap libs, query
47 `apu-1-config --avoid-ldap --libs` (in addition to the usual linker
48 queries for compiling and linking). [William Rowe]
50 *) Support building DBD drivers as DSOs by default; use --disable-util-dso
51 flag to configure to use static link. [Joe Orton, Bojan Smojver]
53 *) All DBD drivers now count rows from 1, which affects PostgreSQL and MySQL
54 drivers in particular. Using row number zero is an error.
57 *) Add support for OpenLDAP's ability to support a directory of
58 certificate authorities. [Eric Covener]
60 *) Ensure that the LDAP code can compile cleanly on platforms that do
61 not define the LDAP_OPT_REFHOPLIMIT symbol, most specifically Windows.
62 [Victor <victorjss@gmail.com>, Graham Leggett]
64 *) Fix the setting of LDAP_OPT_SSL on Win2k, which expects a pointer to
65 the value LDAP_OPT_ON, and not the value itself. XP works with both.
66 [Victor <victorjss@gmail.com>]
68 *) Fix a regression in apr_brigade_partition that causes integer overflows
69 on systems where apr_off_t > apr_size_t. [Ruediger Pluem]
71 *) Ensure that apr_uri_unparse does not add scheme to URI if
72 APR_URI_UNP_OMITSITEPART flag is set. PR 44044
73 [Michael Clark <michael metaparadigm.com>]
75 *) Add an LDAP rebind implementation so that authentication can be
76 carried through referrals. [Paul J. Reder]
78 *) Fix the make test target in the spec file. [Graham Leggett]
80 *) Expose the SSL EVP interface to encrypt and decrypt arbitrary
81 blocks of data, using symmetrical keys. Experimental support for
82 asymmetrical public/private keys as supported by OpenSSL v0.9.9.
85 *) Introduce apr_dbd_open_ex() [Bojan Smojver]
87 *) Make md5 hash files portable between EBCDIC and ASCII platforms
90 *) Add limited apr_dbd_freetds driver (MSSQL and Sybase) [Nick Kew]
92 *) Commit relicensed apr_dbd_mysql driver to /trunk/ [Nick Kew]
94 *) Support BerkeleyDB 4.6. [Arfrever Frehtes Taifersar Arahesis]
96 *) Support Tivoli ITDS LDAP client library. [Paul Reder]
98 *) Portably implement testdate's long-time constants to solve
99 compilation faults where #LL isn't valid. [Curt Arnold]
101 *) Use buffered I/O with SDBM. [Joe Schaefer]
103 *) Unify parsing of prepared statements and add binary argument functions
104 to DBD [Bojan Smojver with help from many on the APR list]
106 *) Rewrite detection of expat in configure to fix build on e.g. biarch
107 Linux platforms. PR 28205. [Joe Orton]
109 *) Add apr_thread_pool implementation. [Henry Jen <henryjen ztune.net>]
111 *) Add support for Berkeley DB 4.5 to the configure scripts.
114 *) Allow apr_queue.h to be included before other APR headers.
115 PR 40891 [Henry Jen <henryjen ztune.net>]
117 *) Fix precedence problem in error checking for sdbm dbm back end.
118 PR 40659 [Larry Cipriani <lvc lucent.com>]
120 *) Add an apr_reslist_acquired_count, for determining how many outstanding
121 resources there are in a reslist. [Ryan Phillips <ryan trolocsis.com>]
123 *) Provide folding in autogenerated .manifest files for Win32 builders
124 using VisualStudio 2005 [William Rowe]
126 *) Implement DBD transaction modes
127 [Bojan Smojver with help from many on the APR list]
129 *) Implement prepared statement support in SQLite3 DBD driver
132 *) Add get (column) name to apr_dbd API
133 [Bojan Smojver <bojan rexursive.com>] and
134 [Chris Darroch <chrisd pearsoncmg com>]
136 *) Make the DBD autoconf-glue use LDFLAGS instead of LIBS in several
137 places, fixing some configure issues on Solaris.
138 [Henry Jen <henryjen ztune.net>]
140 *) Make apr_dbd.h work as a stand alone header, without needing other
141 files to be included before it. [Henry Jen <henryjen ztune.net>]
143 *) On platforms that use autoconf stop automatically linking against
144 apr-iconv when an apr-iconv source dir is found in ../apr-iconv.
145 Instead, add a --with-apr-iconv option to configure that lets you
146 specify the relative path to your apr-iconv source directory.
149 *) APR_FIND_APU macro now supports customisable detailed checks on
150 each installed apr-util. [Justin Erenkrantz, Colm MacCárthaigh]
152 *) APR_FIND_APU macro no longer checks /usr/local/apache2/
155 *) Add apr_dbd_oracle driver [Nick Kew and Chris Darroch]
157 Changes with APR-util 1.2.8
159 *) Fix incorrect byte order (PR 37342) and incorrect timestamp type
160 in the fallback UUID generator used when no external UUID generator
164 Changes with APR-util 1.2.7
166 *) Fix apr_dbd_init to be safe to call multiple times
167 [Bojan Smojver <bojan rexursive com>, Nick Kew]
169 *) Win32 / Netware - add missing apu_version.c for apu_version_string()
170 to the Windows and Netware specific builds. Unix platforms supported
171 this API since 0.9.1. [William Rowe, Brad Nicholes].
173 Changes with APR-util 1.2.6
175 *) Stop trying to link against Berkeley DB by default. To enable use
176 of Berkeley DB users must now explicitly pass --with-berkeley-db to
177 configure, since Berkeley DB is released under a viral license that
178 requires distribution of source code for any program that uses it.
181 *) Stop trying to link against GDBM by default. To enable use of GDBM
182 users must now explicitly pass --with-gdbm to configure, since GDBM
183 is licensed under the GPL.
186 *) Fix VPATH builds, and symlink builds where apr and apr-util
187 reside in parallel as symlinks to directories with more explicit
188 names, e.g. apr-1.x and apr-util-1.x. This solves various breakage
189 on Solaris in particular with ./buildconf and ./configure. Also
190 eliminated the nested ../apr-iconv/buildconf, given that apr-util
191 didn't bother with ../apr/buildconf, and this was inconsistant.
194 *) Fix the escape implementations for the sqlite2 and sqlite3 dbd
196 [Ronen Mizrahi <ronen tversity.com>, Garrett Rooney]
198 *) Add support for Berkeley DB 4.4 to the configure scripts.
201 *) Fix bug in test suite that cause testbuckets to write 8GB file
202 on Mac OS X. [Justin Erenkrantz]
204 Changes with APR-util 1.2.2
206 *) Teach configure how to find the Novell LDAP SDK. [Graham Leggett]
208 *) Fix usage of ldapssl_init/ldap_sslinit on platforms that support
209 these API's including Win32. Support APR_HAS_LDAP_START_TLS_S
210 flag in the Win32 LDAP API, to drop usage of ldap_start_ssl_s
211 and ldap_stop_ssl_s on Win32 by default (change the flag in apr_ldap.hw
212 to enable if supported on a given OS level). [William Rowe]
214 Changes with APR-util 1.2.1
216 *) Fix apr_rmm_realloc() offset calculation bug. [Keith Kelleman
217 <keith.kelleman oracle.com>]
219 *) Add sqlite3 support to APR DBD. [Rick Keiner <rick_keiner yahoo.com>]
221 *) Fix build failure with non-threaded APR on AIX. PR 34655.
222 [Ryan Murray <rmurray+apache cyberhqz.com>]
224 *) Add sqlite2 support to APR DBD. [Ryan Phillips <ryan trolocsis.com>]
226 *) Introduction of APR DBD layer. [Nick Kew]
228 Changes with APR-util 1.1.2
230 *) Fix libaprutil.rc for Win32 builds [William Rowe, Justin Erenkrantz]
232 Changes with APR-util 1.1.1
234 *) Fix memory leak in buckets when using APR_POOL_DEBUG mode. [Joe Schaefer]
236 *) find_apu.m4: Try installed APR-util before bundled copy if --with-apr-util
237 not passed to configure. [Justin Erenkrantz]
239 Changes with APR-util 1.1.0
241 *) LDAP: Move all certificate initialisation, and the creation of SSL
242 and TLS connections into the apr_ldap_set_option() API. Add support
243 for client certificates. [Graham Leggett]
245 *) Emit the run-time link path option in apu-config after installation
246 if the user is linking with libtool. [Justin Erenkrantz]
248 *) Port testmd4 and testmd5 to the new test suite. [Thom May]
250 *) Allow passing NULL inbuf/inbytes_left parameters to
251 apr_xlate_conv_buffer(), required to correctly terminate the
252 output buffer for some stateful character set encodings.
255 *) Link libaprutil against the libraries on which it depends.
256 PR 11122. [Joe Orton]
258 *) Add apr_brigade_insert_file() function, to safely insert a file
259 into a brigade, regardless of size. [Joe Orton]
261 Changes with APR-util 1.0.2
263 *) Teach apr_ldap_init() how to handle STARTTLS in addition to the existing
264 SSL support. Add apr_ldap_option API. [Graham Leggett]
266 *) Rework the LDAP toolkit detection to be more accurate than "OpenLDAP
267 detected regardless", while remaining backwards compatible with v1.0.
270 *) Added the apr_ldap_ssl_add_cert() API to allow multiple certificates
271 to be stored and used when establishing an SSL connection to different
272 LDAP servers. [Brad Nicholes]
274 *) Fix the detection of ldap.h on Solaris - it needs lber.h to be
275 defined first. [Graham Leggett]
277 *) Add a build script to create a solaris package. [Graham Leggett]
279 Changes with APR-util 1.0.1
281 *) Add support for Berkeley DB 4.3. [Jani Averbach <jaa jaa.iki.fi>]
283 *) SECURITY: CAN-2004-0786 (cve.mitre.org)
284 Fix input validation in apr_uri_parse() to avoid passing negative
285 length to memcpy for malformed IPv6 literal addresses.
288 Changes with APR-util 1.0
290 *) Only install apu-$MAJOR-config and add appropriate detection code to
291 find_apu.m4 (APU_FIND_APU). [Max Bowsher <maxb ukf.net>]
293 *) Overhaul support for LDAP URL parsing. Instead of using incompatible
294 URL parsers and memory that needs freeing, apr-util provides a parser
295 which parses the URL and allocates memory from a pool. [Graham Leggett]
297 *) Remove support for LDAP v2.0 SDK toolkits. This will be added
298 back properly later assuming there is demand for it. In the mean
299 time, please use an LDAP v3.0 SDK toolkit. [Graham Leggett]
301 *) Add an apr_ldap_err_t structure to handle the return of LDAP
302 specific error codes. [Graham Leggett, Brad Nicholes]
304 *) Add APR functions to do the job of ldap_init(), hiding toolkit
305 specific SSL/TLS handling. Code derived from httpd util_ldap.
308 *) Add an RPM spec file derived from Fedora Core.
309 [Graham Leggett, Joe Orton]
311 *) The whole codebase was relicensed and is now available under
312 the Apache License, Version 2.0 (http://www.apache.org/licenses).
313 [Apache Software Foundation]
315 *) A new function, apr_reslist_invalidate, was added so that invalid
316 resources can be removed from a reslist instead of being returned
317 to the reslist in a broken state. [Nick Kew <nick webthing.com>]
319 *) Switch to a single, top-level make. [Greg Stein]
321 *) Add timeout feature to apr_reslist_acquire().
322 [Mladen Turk <mturk apache.org>]
324 *) Pass error codes returned from constructors all the way back to
325 the reslist consumer. Also fix a minor reslist memory leak that could
326 happen when a constructor returns an error code. PR 23492.
327 [Snke Tesch <st@kino-fahrplan.de>, Aaron Bannert]
329 *) The following header files have been removed:
333 Changes with APR-util 0.9.5
335 *) Fix corrupt output from the apr_xlate_* interfaces on AIX 4.x.
338 *) Change the order in which ldap.h and lber.h are defined, to fix
339 a compile bug in Solaris v2.8 which requires lber.h then ldap.h.
340 PR 27379. [Andrew Connors <andy.connors idea.com>]
342 *) Restore support for SHA1 passwords in apr_validate_password.
343 PR 17343. [Paul Querna <chip force-elite.com>]
345 *) Fix DESTDIR install for bundled expat library. PR 14076
346 [David S. Madole <david madole.net>]
348 *) Fix occasional crash in apr_rmm_realloc(). PR 22915.
349 [Jay Shrauner <shrauner inktomi.com>]
351 *) Fix apr_dbm_exists() for sdbm when sizeof(int) != sizeof(size_t).
354 *) The whole codebase was relicensed and is now available under
355 the Apache License, Version 2.0 (http://www.apache.org/licenses).
356 [Apache Software Foundation]
358 *) Fix xlate.c compile failure on AIX 5.2. PR 25701. [Jeff Trawick]
360 *) Fixed a bug in apr_rmm that would cause it to mishandle blocks of
361 a size close to the one requested from the allocator.
362 [Kevin Wang <xwang_tech yahoo.com>]
364 Changes with APR-util 0.9.4
366 *) Changed apr_bucket_alloc_create() so that it uses the allocator
367 from the pool that was passed in rather than creating its own.
368 Also, the bucket_allocator is now allocated from the apr_allocator_t
369 rather than using apr_palloc(). Added apr_bucket_alloc_create_ex()
370 which takes an apr_allocator_t* directly rather than an apr_pool_t*.
371 [Cliff Woolley, Jean-Jacques Clar]
373 *) Added debugging consistency checks to the buckets code. Add
374 -DAPR_BUCKET_DEBUG to the build flags to enable.
377 *) Make the version of the db library APU built against visible.
380 *) Fix a problem with VPATH builds copying the APR rules.mk into the
381 source directory rather than the build directory. [Justin Erenkrantz]
383 *) SECURITY [httpd incident CAN-2003-0189] Address a thread safety
384 issue with apr_password_validate() on AIX, Linux, Mac OS X, and
385 possibly other platforms. [Jeff Trawick, Justin Erenkrantz]
387 *) Fix a problem with LDAP configuration which caused subsequent
388 configure tests to fail since LIBS contained LDAP libraries for
389 subsequent tests but LDFLAGS no longer included the path to such
390 LDAP libraries. [Jeff Trawick]
392 *) Fix a problem preventing the use of the bundled Expat when APR-util
393 is built stand-alone. [Jeff Trawick]
395 *) Use the same compiler and preprocessor for the APR-util config tests
396 which were used by APR. The user can override this via CC and CPP.
397 This was done all along for the actual build, but not necessarily
398 for the config tests. [Jeff Trawick]
400 *) Fix apr_uuid_parse() on EBCDIC machines. [Jeff Trawick]
402 *) Fix alignment problem when allocating memory using apr_rmm. The problem
403 showed up while trying to write a double in the memory allocated.
404 [Madhusudan Mathihalli]
406 Changes with APR-util 0.9.3
408 *) Allow apr_date_parse_rfc to parse 'Sun, 06-Nov-1994 08:49:37 GMT' as a
409 valid date. [Dmitri Tikhonov <dmitri@netilla.com>]
411 *) Fix error in apu-config when symlinks are involved.
412 [Garrett Rooney <rooneg@electricjellyfish.net>]
414 Changes with APR-util 0.9.2
416 *) Fix the APR_BUCKET_IS_foo() macros so they parenthesize their parameter.
417 This fixes compile problems with some types of parameters.
418 [Jim Carlson <jcarlson@jnous.com>]
420 *) Queue overwrite, we now return the item pushed, not a reference to it.
421 [Paul Marquis <PMarquis@pobox.com, Jacob Lewallen <jlwalle@cs.ucr.edu>]
423 *) Remove include/apr_ldap.h on distclean. PR 15592. [Justin Erenkrantz]
425 *) Fix race conditions in apr_queue.
426 [Jacob Lewallen <jlwalle@cs.ucr.edu>]
428 *) Stop buildconf copying rules.mk, copy it at configure time.
431 *) Make buildconf copy rules.mk as well.
432 [Garrett Rooney <rooneg@electricjellyfish.net>]
434 *) Add --includedir flag to apu-config. [Justin Erenkrantz]
436 *) Fix brokenness in sdbm when sizeof(int) != sizeof(size_t)
437 (e.g., 64-bit AIX, 64-bit Solaris). PR 14861. [Jeff Trawick]
439 *) Have buildconf copy required files from apr so that apr-util can build
440 on its own. [Craig Rodrigues <rodrigc@attbi.com>]
442 *) Detect OpenLDAP when used with Solaris 9. PR 13427.
443 [Gary Algier <gaa@ulticom.com>]
445 *) Detect Berkeley DB 4.1 when compiled with --with-uniquenames
448 *) Allow apu-config to work in symlinked install directories when
449 'realpath' is available. [Justin Erenkrantz]
451 *) Fix bug in apr_strmatch when used with case-insensitive patterns.
454 *) Allow apr_queue to have greater than int number of elements.
457 *) Detect Berkeley DB 4.0 compiled with --with-uniquenames.
458 [Philip Martin <philip@codematters.co.uk>]
460 *) Allocate brigades from a bucket allocator rather than a pool. [Brian Pane]
462 *) Update with the latest APR renames [Thom May]
464 *) Update doxygen tags. [Justin Erenkrantz]
466 *) Add apr_ldap.hw for Windows build.
467 [Andre Schild <A.Schild@aarboard.ch>]
469 *) Add IPv6 literal address support to apr_uri_parse(), apr_uri_unparse(),
470 and apr_uri_parse_hostinfo(). PR 11887 [Jeff Trawick]
472 *) Add apr_brigade_writev() [Brian Pane]
474 *) Add support for Berkeley DB 4.1. [Justin Erenkrantz]
476 *) Add --bindir option to apu-config. [Justin Erenkrantz]
478 Changes with APR-util 0.9.1
480 *) Add versioning infrastructure.
483 *) Running "make check" in the toplevel directory or the test/ directory
484 will build and run all test programs. [Aaron Bannert]
486 *) Bug #9789 : NDBM support
487 [Toomas Soome <tsoome@muhv.pri.ee>, Ian Holsman]
489 *) Added a Thread safe FIFO bounded buffer (apr_queue) [Ian Holsman]
491 *) Changed file_bucket_setaside() to use apr_file_setaside() instead
492 of turning the file bucket into an mmap bucket. [Brian Pane]
494 *) Install libaprutil support libraries before installing libaprutil
495 itself, since on some platforms libaprutil is relinked during
496 make install and the support libraries need to exist already.
499 *) Added a Resource List API for threadsafe access to persistent
500 and dynamically created user-defined resources. [Aaron Bannert]
502 *) Adopted apr-util/xlate from apr/i18n for inclusion of apr-iconv
503 as required by missing libiconv. [William Rowe]
505 *) Adopted apr-util/crypto/ uuid and md5 from apr. [William Rowe]
507 *) Look for expat in lib64 directories. [Peter Poeml <poeml@suse.de>]
509 *) Faster implementation of apr_brigade_puts() [Brian Pane]
511 *) Fixed a segfault in apr_date_parse_rfc() for some date formats
512 where it was trying to overlay a potentially static input
513 string even though it didn't really need to.
514 [Cliff Woolley, Doug MacEachern]
516 *) Ensure that apu-config does not print libtool libraries when
517 using --libs. [Justin Erenkrantz]
519 *) Added apr_bucket_file_enable_mmap() function to the bucket
520 API to let an application control whether a file bucket may
521 be turned into an mmap bucket upon read. (The default remains
522 to do the mmap, but this function lets the app prevent the
523 mmap in contexts where mmap would be a bad idea. Examples
524 include multiprocessors where mmap doesn't scale well and
525 NFS-mounted filesystems where a bus error can result if
526 a memory-mapped file is removed or truncated.) [Brian Pane]
528 *) Added string-matching API (apr_strmatch.h) [Brian Pane]
530 *) Rearrange INCLUDES so that APRUTIL_PRIV_INCLUDES is always
531 first. [Garrett Rooney <rooneg@electricjellyfish.net>]
533 *) Add --old-expat option to apu-config to allow users of apr-util to
534 determine what expat it should expect to be installed. If the
535 flag is set to yes, it should include xmlparse.h. If it is set to
536 no, it should include expat.h. [Justin Erenkrantz]
538 *) Fix exporting of includes in apu-config. [Justin Erenkrantz]
540 *) Change bucket brigades API to allow a "bucket allocator" to be
541 passed in at certain points. This allows us to implement freelists
542 so that we can stop using malloc/free so frequently.
543 [Cliff Woolley, Brian Pane]
545 *) add apr_rmm_realloc() function
546 [Madhusudan Mathihalli <madhusudan_mathihalli@hp.com>]
548 *) renames: apr_ansi_time_to_apr_time becomes apr_time_ansi_put
549 ap_exploded_time_t becomes apr_time_exp_t
550 [Thom May <thom@planetarytramp.net>]
552 *) Add detection support for FreeBSD's expat and expat2 ports.
555 *) Deprecate check_brigade_flush(), which had several nasty bugs, and
556 which was causing apr_brigade_write()'s logic to be less than obvious.
557 Everything is now done in a slightly rearranged apr_brigade_write().
560 *) Don't add /usr/include to the INCLUDES variable on expat's account.
561 [Joe Orton <joe@manyfish.co.uk>]
563 *) Remove the autoconf 2.5x cache directory in buildconf.
564 [Joe Orton <joe@manyfish.co.uk>]
566 *) BerkleyDB should NULL out the key if it is @EOF in vt_db_nextkey
569 *) Add ability to natively fetch and split brigades based on LF lines.
572 *) add --with-berkeley-db=DIR & --with-gdbm configure flags
573 [Ian Holsman/Justin Erenkrantz]
575 *) Fix expat detection to recognize installed versions.
576 [Eric Gillespie, Jr. <epg@pretzelnet.org>]
578 *) Add find_apu.m4 to allow third-party programs that use APR-util
579 to have a standard m4 macro for detection. [Justin Erenkrantz]
581 *) Add apu-config - a shell script to allow third-party programs
582 easy access to APR configuration parameters. [Justin Erenkrantz]
584 *) Add GMT offset calculation to apr_date_parse_rfc().
587 *) Introduce the apr_rmm api, to allow relocatable memory management
588 of address-independent data stores, such as shared memory.
591 *) Rework and fix VPATH-build support. [Justin Erenkrantz]
593 *) Add support for Berkeley DB4. [Justin Erenkrantz]
595 *) Improve testdbm help. [Justin Erenkrantz]
597 *) Improve autoconf detection of DBMs. [Justin Erenkrantz]
599 *) BerkeleyDBM v2 now checks minor level for cursor ops [Ian Holsman]
601 *) Reading a file bucket bigger than APR_MMAP_LIMIT (4MB) now yields
602 a string of 4MB mmap buckets, rather than a string of 8KB heap buckets
603 plus a 4MB mmap bucket. To accomodate this, the mmap bucket destroy
604 function explicitly deletes the apr_mmap_t after last reference
605 to avoid having too much of a large file mapped at once if possible.
608 *) Multi-DBM support (via apr_dbm_open_ex). [Ian Holsman]
610 *) Use apr_mmap_dup in mmap_setaside(). [Brian Pane <bpane@pacbell.net>]
612 *) Dropped the "w" parameter from apr_bucket_heap_create() and
613 apr_bucket_heap_make(). That parameter was originally intended
614 to return the amount of data copied into the bucket, but it
615 ended up being unnecessary because that amount is invariant from
616 the size of the data and is available as b->length in the
617 resulting bucket anyway. [Cliff Woolley]
619 *) Fix Makefile conversion for BSD/OS. [Cliff Woolley]
621 *) Use APR_XtOffsetOf instead of offsetof() in the ring macros for
622 portability. [Cliff Woolley]
624 *) We now create exports.c and export_vars.h, which in turn create
625 exports.c. From this we generate two more files with different
626 purposes: aprutil.exp - list of exported symbols; and exports.lo
627 (exports.o) - an object file that can be linked with an executable
628 to force resolution of all apr-util symbols. [Aaron Bannert]
630 *) Fix Berkley DBM support [Ian Holsman <ianh@apache.org>]
632 *) Fix apr_brigade_vprintf so that it can handle more than
633 4k of data at one time. [Cody Sherr <csherr@covalent.net>]
635 *) prefix UNP_* flags with APR_URI_
638 apr_uri_components -> apr_uri_t
639 apr_uri_unparse_components -> apr_uri_unparse
640 apr_uri_parse_components -> apr_uri_parse
641 apr_uri_parse_hostinfo_components -> apr_uri_parse_hostinfo
643 s/APU_URI_/APR_URI_/g
646 *) Landed the link-to-LDAP to the build process, and the LDAP v2/v3
647 compatibility functions.
648 [Dave Carrigan <dave@rudedog.org>, Graham Leggett]
650 *) Fix URI unparse function to handle the case where it would place a @
651 when both the username and password were present but omitted.
652 [Jon Travis <jtravis@covalent.net]
654 *) Added apr_xml_parse_file() routine and a testxml program.
655 [Ian Holsman <ianh@cnet.com>]
657 *) Extend apr_bucket struct to add a pointer to a function used
658 to free the bucket. This change enables custom buckets to
659 completely specify how they are to be allocated and freed.
660 Before this change, custom buckets were required to use the
661 same memory allocation scheme as the standard APR buckets.
662 [Saeid Sakhitab, Bill Stoddard, Cliff Woolley, Roy Fielding]
664 *) Install Expat when installing APR-util. [Justin Erenkrantz]
666 *) Make APR-util configure script rely on APR. This removes the locally
667 generated copy of libtool and uses the one in APR. Fix up how we
668 call the expat configure script. Generate config.nice file.
671 *) The apr_bucket lengths are now consistently apr_size_t, while any
672 apr_brigade lengths (short of a read) are consistently apr_off_t.
673 This is required for APR_HAS_LARGE_FILES handling. [William Rowe]
675 *) apr_bucket_file_create() and apr_bucket_file_make() now take a pool
676 parameter which is the pool into which any needed data structures
677 should be created during file_read(). This is used for MMAPing the
678 file and reopening the file if the original apr_file_t is in XTHREAD
679 mode. [Cliff Woolley]
681 *) apr_brigade_partition() now returns an apr_status_t. [Cliff Woolley]
683 *) Add MD4 implementation in crypto. [Sander Striker, Justin Erenkrantz]
685 *) Moved httpd 2.0.18's util_date to apr_date and enhanced its parsing
686 capabilities. [Justin Erenkrantz]
688 *) Moved httpd 2.0.18's util_uri to apr_uri and name-protected its
689 symbols and functions. [Justin Erenkrantz, Roy Fielding]
691 *) Rename field "private" in struct apr_xml_elem to "priv" for C++
692 compatibility. PR #7727 [Joshua MacDonald <jmacd@cs.berkeley.edu>]
694 *) Make APR_IMPLEMENT_EXTERNAL_HOOK_BASE generate a
695 ${namespace}_hook_get_${hookname} function to fetch the
696 list of registered hooks [Doug MacEachern]
698 *) Allow LTFLAGS to be overridden by the configure command-line
699 (default="--silent") and introduce LT_LDFLAGS. [Roy Fielding]
701 *) Add APR_SHARELOCK support to apr_sdbm_open(), locking read operations
702 with a shared lock and all write ops with an excl lock. [Will Rowe]
704 *) Namespace protect apr_sdbm, and normalize the return values (including
705 the apr_sdbm_fetch, apr_sdbm_firstkey and apr_sdbm_nextkey functions).
706 Normalized the get/clear error function names, and stores the actual
707 apr error for apr_sdbm_error_get. [Will Rowe]
709 *) Introduce an apr_fileperms_t argument to apr_dbm_open(). [Will Rowe]
711 *) Removed apr_bucket_do_create() macro, which was causing warnings
712 about unreachable code in some compilers (notably MSVC). What
713 used to be done by this macro is now done inline in the various
714 apr_bucket_foo_create() functions. [Cliff Woolley]
716 *) Make clean, distclean, and extraclean consistently according to the
717 Gnu makefile guidelines. [Justin Erenkrantz <jerenkrantz@ebuilt.com>]
719 *) Migrate the --disable-libtool changes from APR to APR-util.
720 This cleans things up, and allows more flexibility when building
721 programs. [Ryan Bloom]
723 *) Allow APR-util to be compiled without libtool. The default is
724 to use libtool, but it can turned off with --disable-libtool
725 on the configure command. [Ryan Bloom]
727 *) Repair calling convention for apr_register_optional_fn to
728 eliminate GP fault on Win32. [William Rowe]
730 *) Substantial changes to correct linkage and declarations for
731 generic hooks on dso architectures. [Ben Laurie, Will Rowe]
733 *) apr_bucket_shared_destroy() now returns a boolean value.
736 *) We have to initialize the heap buckets to the correct length.
737 we were seeing heap buckets with 17 chars in them reporting
738 a length of 9017, because they were initialized to the amount
739 of memory allocated, instead of the amount of memory used.
740 This was only an issue for heap buckets created by the
741 apr_brigade_* functions. [Ryan Bloom]
743 *) apr_bucket_init_types() and apr_bucket_insert_type() have been
744 removed... they're not needed anymore. [Cliff Woolley]
746 *) The apr_bucket_shared and apr_bucket_simple structures have been
747 removed as an API simplification/optimization. This should be
748 transparent outside APR-util except to callers who attempt to
749 directly manipulate the buckets' internal structure (which is
750 not recommended anyway) and to callers who create their own
751 bucket types. [Cliff Woolley]
753 *) apr_bucket_simple_split() and apr_bucket_simple_copy() are now
754 exported functions, which could be helpful in implementing
755 external bucket types. [Cliff Woolley]
757 *) The third parameter to apr_bucket_shared_make() is now
758 'apr_off_t length' rather than 'apr_off_t end', since the
759 end usually had to be computed by the caller and all we
760 really want is the length anyway. [Cliff Woolley]