You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by pq...@apache.org on 2009/10/03 21:28:14 UTC
svn commit: r15 [3/6] - in /release/apr: ./ binaries/ binaries/netware/
binaries/pkg/ binaries/pkg/sparc8/ binaries/rpm/ binaries/rpm/SRPMS/
binaries/rpm/i386/ binaries/rpm/ppc/ binaries/rpm/x86_64/ binaries/win32/
patches/
Added: release/apr/CHANGES-APR-1.3
==============================================================================
--- release/apr/CHANGES-APR-1.3 (added)
+++ release/apr/CHANGES-APR-1.3 Sat Oct 3 15:28:09 2009
@@ -0,0 +1,2402 @@
+ -*- coding: utf-8 -*-
+Changes for APR 1.3.8
+
+ *) SECURITY: CVE-2009-2412 (cve.mitre.org)
+ Fix overflow in pools and rmm, where size alignment was taking place.
+ [Matt Lewis <ma...@google.com>, Sander Striker]
+
+ *) Make sure that "make check" is used in the RPM spec file, consistent
+ with apr-util. [Graham Leggett]
+
+ *) Pass default environment to testflock, testoc and testpipe children,
+ so that tests run when APR is compiled with Intel C Compiler.
+ [Bojan Smojver]
+
+Changes for APR 1.3.7
+
+ *) More elaborate detection for dup3(), accept4() and epoll_create1().
+ [Chetan Reddy <chetanreddy gmail.com>, Bojan Smojver]
+
+Changes for APR 1.3.6
+
+ *) On Linux/hppa flock() returns EAGAIN instead of EWOULDBLOCK. This
+ causes proc mutex failures.
+ [Stefan Fritsch <sf sfritsch.de>]
+
+ *) Set CLOEXEC flags where appropriate. Either use new O_CLOEXEC flag and
+ associated functions, such as dup3(), accept4(), epoll_create1() etc.,
+ or simply set CLOEXEC flag using fcntl(). PR 46425. [Stefan Fritsch
+ <sf sfritsch.de>, Arkadiusz Miskiewicz <arekm pld-linux.org>]
+
+Changes for APR 1.3.5
+
+ *) Dropped kqueue and apr_poll detection from Mac OS/X 10.5/Darwin 9
+ due to various reported problems. [William Rowe]
+
+Changes for APR 1.3.4
+
+ *) apr_strerror() on OS/2: Fix problem with calculating buffer size.
+ PR 45689. [Erik Lax <apache datahack.se>]
+
+ *) Prefer glibtool1/glibtoolize1. [Jim Jagielski]
+
+ *) Fix buildconf with libtool 2.2. [Joe Orton]
+
+ *) Fix a bug with the APR_DELONCLOSE flag. Child processes were (also)
+ unlinking the file. [Greg Stein]
+
+ *) Fix compilation error on systems that do not have IPV6.
+ PR 46601 [Julien Charbon <jch 4js.com>]
+
+ *) apr_socket_sendfile() on Solaris: Fix handling of files truncated
+ after the sender determines the length. (This fixes a busy loop in
+ httpd when a file being served is truncated.) [Jeff Trawick]
+
+ *) Fix documentation for apr_temp_dir_get().
+ PR 46303 [Carlo Marcelo Arenas Belon <carenas sajinet.com.pe>]
+
+ *) Add AC_MSG_RESULT after AC_MSG_CHECKING.
+ PR 46427 [Rainer Jung <rainer.jung kippdata.de>]
+
+ *) Reset errno to zero in apr_strtoi64 to prevent returning an errno not
+ equal zero in cases where the operation worked fine. [Ruediger Pluem]
+
+ *) Win32: Do not error out on apr_pollset_poll() when there are no sockets.
+ [Justin Erenkrantz]
+
+ *) Fix apr_tokenize_to_argv parsing. PR 46128
+ [Edward Rudd <eddie omegaware.com>]
+
+Changes for APR 1.3.3
+
+ *) Rename apr_pool_create_core to apr_pool_create_unmanaged and
+ deprecate the old API name. It better reflects the scope and usage
+ of this function. [Mladen Turk]
+
+ *) Use proper return code for fcntl-based apr_proc_mutex_trylock()
+ on platforms that return EACCES instead of EAGAIN when the lock
+ is already held (AIX, HP-UX).
+ [Eric Covener]
+
+ *) Fix APR_PID_T_FMT detection on Solaris. PR 45513
+ [Rainer Jung <rainer.jung kippdata.de>]
+
+Changes for APR 1.3.2
+
+ *) Fix getservbyname_r() detection. [Ruediger Pluem]
+
+Changes for APR 1.3.1
+
+ *) Fix win32 apr.hw to pick up XP/2003 TCP/IP multicast constants and
+ revert to IPV6 disabled-by-default (a change present only in 1.3.0).
+ [William Rowe]
+
+ *) Fix autoconf cached detection of atomic builtins. [Jim Jagielski]
+
+ *) Use thread safe versions of getservbyname(). [Bojan Smojver]
+
+ *) Use thread safe getpass_r on Netware. [Guenter Knauf]
+
+Changes for APR 1.3.0
+
+ *) Fix Solaris poll failure. PR 43000
+ [Henry Jen <henryjen ztune.net>]
+
+ *) apr_getservbyname(): Use proper method for converting port
+ to host byte order. PR 44903.
+ [Chris Taylor <ctaylor wadeford.plus.com>]
+
+ *) Use /dev/urandom in preference to /dev/random as entropy source
+ for apr_generate_random_bytes. PR 44881. [Bojan Smojver]
+
+ *) Implement apr_proc_wait_all_procs for windows.
+ The implementation uses tool help library present
+ on Windows 2000 and later. APR_ENOTIMPL is returned
+ on platforms missing tool help from kernel32.dll.
+ [Mladen Turk]
+
+ *) Introduce apr_pool_pre_cleanup_register() for registering
+ a cleanup that is called before any subpool is destroyed
+ within apr_pool_clear or apr_pool_destroy.
+ This allows to register a cleanup that will notify subpools
+ about its inevitable destruction.
+ [Mladen Turk]
+
+ *) Introduce apr_pool_create_core_ex() for creation of standalone
+ pools without parent. This function should be used for short
+ living pools, usually ones that are created and destroyed
+ either in a loop or inside function call. Since the pools
+ created with this function doesn't have a parent they must
+ be explicitly destroyed when done.
+ [Mladen Turk]
+
+ *) Fix return value when apr_pollset_poll interrupted.
+ PR 42580 [Basant Kumar Kukreja <basant.kukreja sun.com>]
+
+ *) Add missing semi-colon in Win9x code path of apr_file_open that breaks
+ Win9X Debug builds. PR 44329. [Curt Arnold]
+
+ *) z/OS: return standard apr_status_t codes from apr_dso_load()
+ and apr_dso_sym(). [David Jones <oscaremma gmail.com>]
+
+ *) Fix the make test target in the spec file. [Graham Leggett]
+
+ *) Fix DSO-related crash on z/OS caused by incorrect memory
+ allocation. [David Jones <oscaremma gmail.com>]
+
+ *) Implement Darwin-semantic (9.0.0 and later) sendfile support.
+ Use writev in lieu of hdtr vecs since how Darwin counts the
+ data is undocumented. [Geoff Greer <angryparsley mipsisrisc.com>,
+ William Rowe, Jim Jagielski]
+
+ *) Implemented the APR_FOPEN_SPARSE flag, permits win32 to create
+ sparse data files. Also bestow apr_fileinfo_t csize field for
+ Windows versions 2000 and later, which helps in the detection
+ that a sparse file is truly in use (see test/testlfs.c for an
+ example, because different filesystems can vary in behavior
+ even on an OS supporting sparse files). [William Rowe]
+
+ *) Corrected for Darwin and others to toggle APR_HAS_LARGE_FILES
+ where large off_t's are enabled without any extra defines, hints
+ or additional functions. This is binary compatible, but apps
+ may need to be recompiled to take full advantage depending on how
+ they detect this feature. [William Rowe]
+
+ *) Implement apr_atomic_casptr() and apr_atomic_xchgptr() for z/OS.
+ [David Jones <oscaremma gmail.com>]
+
+ *) Introduce apr_file_pipe_create_ex() to portably permit one pipe
+ end or another to be entirely blocking for non-APR applications
+ (e.g. stdio streams) and the other (or both ends) non blocking,
+ with a timeout of 0 by default.
+ [William Rowe]
+
+ *) apr_procattr_io_set() on Windows: Set non-blocking pipe handles
+ to a default timeout of 0, following the Unix default. No effect
+ on pipe handles configured to block. PR 43522.
+ [Eric Covener <covener gmail.com>]
+
+ *) apr_file_write() on Windows: Fix return code when writing to a non-
+ blocking pipe would have blocked. PR 43563.
+ [Eric Covener <covener gmail.com>]
+
+ *) Introduce APR_NO_FILE as an option to apr_procattr_io_set() for any
+ of the three stdio streams to cause the corresponding streams to be
+ closed to the child process. This becomes effective in 1.3.0 across
+ platforms (equivilant to APR_NO_PIPE in 1.2.x except on Win32.)
+ [William Rowe]
+
+ *) Solve WinNT inherited pipe leaks by mutexing apr_proc_create calls,
+ on WinNT (not WinCE, nor 9x) so that we toggle the inherited state
+ of the stdin/out/err pipes. All other file handles are treated as
+ not-inherited until apr_file_dup2'ed a std handle of this process,
+ or while they are used by apr_proc_create. [William Rowe]
+
+ *) Define the Mac OS/X filesystem_encoding as utf-8 (in previous
+ releases the interpretation would vary). [Branko Äibej]
+
+ *) Add table cloning (deep copy) convenience function.
+ [Davi Arnaut]
+
+ *) Rework the WIN32 CV code to signal the condition only if one or
+ more threads are blocked on the condition variable. If no threads
+ are waiting on the condition variable, nothing happens. The change
+ also eliminates the thundering-herd problem of the manual-reset
+ event, which (theoretically) wakes up all threads waiting on. Now
+ the behavior of the CV's should be the same on Unix and win32
+ platforms. PR 42305. [Davi Arnaut]
+
+ *) Define SEM_FAILED if it isn't already defined, as the proc mutex
+ code already does it. Also search for the sem_open function in
+ the realtime library. (This fixes HP-UX sem_open detection).
+ [Davi Arnaut]
+
+ *) Define the _HPUX_SOURCE feature test macro to obtain maximum
+ functionality.
+ PR 42261. [Davi Arnaut]
+
+ *) Stop invoking the testshm* helpers upon 'make test' invocation.
+ [Kurt Miller <kurt intricatesoftware.com>]
+
+ *) Register a cleanup only if APR_FILE_NOCLEANUP was not flagged in
+ apr_file_mktemp. [Brian J. France <list firehawksystems.com>]
+
+ *) Numerous build fixes for non-GCC builds and GCC builds on Win32,
+ as well as WinCE builds. [Davi Arnaut <davi haxent.com.br>,
+ Curt Arnold <carnold apache.org>, John Mark Vandenberg,
+ Kouhei Sutou <kou cozmixng.org>, William Rowe]
+
+ *) Discard file buffers when running cleanups for exec.
+ PR 41119. [Davi Arnaut <davi haxent.com.br>, Bojan Smojver]
+
+ *) Improve thread safety of assorted file_io functions.
+ PR 42400. [Davi Arnaut <davi haxent.com.br>]
+
+ *) Add the apr_pollcb API as an alternative more efficient method
+ of polling sockets, compared to apr_pollset. [Paul Querna]
+
+ *) Fix possible crash in apr_pool_initialize() when built with
+ verbose pool debugging. PR 41063.
+ [Peter Steiner <peter.steiner+apache hugwi.ch>]
+
+ *) Fix --disable-ipv6 build on platforms with getifaddrs().
+ PR 39199. [Joe Orton]
+
+ *) Correctly retrieve 'empty' environment values with apr_env_get
+ on Win32 (e.g. "VAR="), and added validation to testall suite.
+ PR 40764. [Issac Goldstand <margol beamartyr.net>]
+
+ *) Portably check for EEXIST in mktemp code. PR 40818
+ [Kenneth Golomb <KGolomb TradeCard.com>]
+
+ *) Fix apr_socket_recvfrom() to ensure the peer's address is returned
+ through the "from" parameter. [Joe Orton]
+
+ *) Fix error checking in kqueue, epoll and event port versions of
+ apr_pollset_create. PR 40660, 40661, 40662
+ [Larry Cipriani <lvc lucent.com>]
+
+ *) Add some documentation on the format matched by apr_fnmatch.
+ [David Glasser <glasser mit.edu>]
+
+ *) Add apr_hash_clear. [Daniel L. Rall <dlr apache.org>]
+
+ *) Don't try to build apr_app.c on MinGW.
+ [Matthias Miller <Blog outofhanwell.com>]
+
+ *) Fix the timeout converstion in apr_pollset with the KQueue
+ backend. [Marco Molteni <mmolteni cisco.com>]
+
+ *) Support MinGW. [John Vandenberg, Justin Erenkrantz]
+
+ *) Implement apr_thread_yield on Unix in terms of pthread_yield or
+ sched_yield. [Keisuke Nishida <keisuke.nishida gmail.com>]
+
+ *) Provide folding in autogenerated .manifest files for Win32 builders
+ using VisualStudio 2005 [William Rowe]
+
+ *) Utilise Solaris' native atomic_* functions for apr_atomics
+ where appropriate. [Colm MacCárthaigh]
+
+ *) Make apr_socket_recvfrom initialize the port field in the from
+ sockaddr. PR 39325 [Anthony Minessale <anthmct yahoo.com>]
+
+ *) NetBSD: Avoid leaving zombie process when using apr_signal()
+ to ignore SIGCHLD. PR 36750. [Todd Vierling <tv pobox.com>]
+
+ *) Implement support for apr_proc_mutex_trylock() on Unix platforms.
+ PR 38785. [Chris Darroch <chrisd pearsoncmg.com>]
+
+ *) APR_FIND_APR macro now supports customisable detailed checks on
+ each installed apr. [Justin Erenkrantz, Colm MacCárthaigh]
+
+ *) APR_FIND_APR macro no longer checks /usr/local/apache2/
+ [Colm MacCárthaigh]
+
+ *) Add APR_POLLSET_NOCOPY option to apr_pollset API to eliminate
+ O(n)-time lookup in apr_pollset_remove() (currently implemented
+ only for epoll). [Brian Pane]
+
+ *) Add apr_file_buffer_set() and apr_file_buffer_size_get() functions
+ to support variable buffer sizes with APR file handles.
+ [Colm MacCárthaigh]
+
+ *) Add apr_file_open_flags_std[err|out|in]() functions.
+ [Colm MacCárthaigh]
+
+ *) stdio: apr_file_open_std[err|out|in]() functions now set the APR_WRITE
+ or APR_READ flag as appropriate. [Colm MacCárthaigh]
+
+ *) multicast: apr_mcast_*() no longer return APR_ENOTIMPL when invoked
+ for non-UDP/RAW sockets. The caller is expected to ensure that the
+ socket-type is suitable for multicast. [Colm MacCárthaigh]
+
+ *) Add apr_sockaddr_ip_getbuf() function. [Joe Orton]
+
+ *) Fix handling of %pI in apr_psprintf. [Joe Orton]
+
+ *) Provide APR_VERSION_AT_LEAST() macro for applications which
+ want to enable features based on a required level of APR.
+ [Jeff Trawick]
+
+ *) jlibtool: Teach to use static libraries with -static.
+ [Justin Erenkrantz]
+
+ *) Fix checks for alloca() support in configure. PR 13037.
+ [Noah Misch <noah cs.caltech.edu>]
+
+ *) Add %pm support to apr_snprintf() for printing the error string
+ corresponding to an apr_status_t value. [Joe Orton]
+
+ *) Add APR_ARRAY_IDX() and APR_ARRAY_PUSH() convenience macros to
+ apr_tables.h. [Garrett Rooney]
+
+Changes for APR 1.2.12
+
+ *) Define apr_ino_t in such a way that it doesn't change definition
+ based on the library consumer's -D'efines to the filesystem.
+ [Lucian Adrian Grijincu <lucian.grijincu gmail.com>]
+
+ *) Fill in apr_fileinfo_t member st_csize on Netware and Unix (PR 41678),
+ and refine the file times down to apr_time_t resolution if supported
+ by a st_atimensec or st_atim.tv_nsec value by the OS. Additional
+ msec implementations are possible if exposed through autoconf.
+ [William Rowe, Nicklas Edmundsson <nikke acc.umu.se>]
+
+ *) Fix apr_socket_recvfrom() to ensure the peer's address is returned
+ through the "from" parameter on Win32. [William Rowe]
+
+ *) Cause apr_file_dup2() on Win32 to update the MSVCRT psuedo-stdio
+ handles for fd-based and FILE * based I/O. [William Rowe]
+
+Changes for APR 1.2.7
+
+ *) Netware - add missing apu_version.c parsing for apu_version_string()
+ to the Netware specific builds. Unix platforms support this API
+ since 0.9.1. [Brad Nicholes]
+
+ *) Fix a regression in the updated win32 apr_file_read with timeouts
+ since 1.2.6 which would fail to return the bytes read in specific
+ edge cases. [William Rowe]
+
+Changes for APR 1.2.6
+
+ *) Fully test the detected libuuid or libc based uuid_create or
+ uuid_generate function against the detected uuid.h, uuid/uuid.h,
+ or sys/uuid.h (using only the first-found .h examined in that order)
+ for correct compilation. Resolves various apr_os_uuid issues on
+ multiple environments. [William Rowe]
+
+ *) Prevent detection of robust mutex support with glibc 2.4,
+ fixing APR_LOCK_PROC_PTHREAD locks. PR 38442. [Joe Orton]
+
+ *) Correct bug in kqueue backend for apr_pollset where we would
+ erroneously indicate that a socket was readable or writeable.
+ [Garrett Rooney]
+
+ *) Make the filePtr in apr_file_t an apr_off_t on Unix, to avoid issues
+ truncating offsets down to 32 bits on large file systems.
+ [Garrett Rooney]
+
+ *) Fix seeks with files opened in xthread mode for append on win32.
+ [M Joonas Pihlaja <jpihlaja cc.helsinki.fi>, Garrett Rooney]
+
+ *) Keep testpipe.c from hanging on win32. [Garrett Rooney]
+
+ *) Cause apr_file_write_full on win32 to consider the timeout value set by
+ apr_file_pipe_timeout_set. PR 30182
+ [<eholyat olf.com>]
+
+ *) Fix assertion from double close of a handle with a rwlock on win32.
+ [Evgueni Brevnov <evgueni.brevnov gmail.com>]
+
+ *) Fix EOF handling for unbuffered reads on win32.
+ [Konstantin Sharenkov <Konstantin.Sharenkov enterra-inc.com>]
+
+ *) Documented that apr_stat and apr_dir_read can return APR_INCOMPLETE,
+ and how to determine which parts of the resulting apr_finfo_t can be
+ used in such a case.
+ [Garrett Rooney]
+
+ *) Fix passing "" as an argument to the program started by apr_proc_create
+ on Win32.
+ [Philip Martin <philip codematters.co.uk>
+
+ *) Bugfix for apr_pollset_poll() on systems that implement pollsets
+ using select(2): properly compute the number of signalled desciptors
+ when one or more of them are both readable and writable.
+ [Dror Shilo <Dror.Shilo ericom.com>, Gerry <gerry everythingsucks.co.uk>]
+
+ *) Fix apr_file_seek() to catch write failures when flushing
+ pending writes for a buffered file. [Joe Orton]
+
+Changes for APR 1.2.2
+
+ *) Fix crash in apr_dir_make_recursive() for relative path
+ when the working directory has been deleted. [Joe Orton]
+
+ *) Win32: fix apr_proc_mutex_trylock() to handle WAIT_TIMEOUT,
+ returning APR_EBUSY. [Ronen Mizrahi <ro...@tversity.com>]
+
+ *) Fix apr_socket_opt_set() issue where TCP_NODELAY would be
+ set when TCP_DEFER_ACCEPT was set. [Brian Pane]
+
+ *) Allow TCP_NODELAY and TCP_CORK to be set concurrently on
+ Linux 2.6 and later. [Joe Orton]
+
+ *) Fix apr_socket_addr_get(,APR_REMOTE,) after a non-blocking
+ connection is completed. PR 32737. [Joe Orton]
+
+ *) Fix apr_file_gets() and apr_file_read() to catch write failures
+ when flushing pending writes for a buffered file. [Joe Orton]
+
+ *) Fix apr_file_write() infinite loop on write failure for buffered
+ files. [Erik Huelsmann <ehuels gmail.com>]
+
+ *) Fix error handling where apr_uid_* and apr_gid_* could return
+ APR_SUCCESS in failure cases. PR 34053 continued. [Joe Orton]
+
+Changes for APR 1.2.1
+
+ *) Refactor Win32 condition variables code to address bugs 27654, 34336.
+ [Henry Jen <henryjen ztune.net>, E Holyat <eholyat yahoo.com>]
+
+Changes for APR 1.2.0
+
+ *) If getpwuid_r or getgrgid_r set their results to NULL, it is an error.
+ PR 34053. [Paul Querna]
+
+ *) Switch to lazy initialization of the pollset that's used within
+ apr_file_t on platforms where apr_wait_for_io_or_timeout() doesn't
+ use poll(2). (This fixes a performance problem observed in httpd-2.x
+ on OS X due to the use of poll now being disabled by default on that
+ platform.) [Brian Pane]
+
+ *) Fix Pollset corruption on Solaris 10. [Paul Querna]
+
+ *) Add %pt support to apr_snprintf() for printing an apr_os_thread_t
+ in hex format. [Jeff Trawick]
+
+ *) Support APR_SO_SNDBUF and APR_SO_RCVBUF on Windows. PR 32177.
+ [Sim <sgobbi datamanagement.it>, Jeff Trawick]
+
+ *) Fix apr_table_overlap()'s handling of tables allocated from
+ different pools. [Joe Schaefer <joe+gmane sunstarsys.com>]
+
+ *) Add support for uuid_generate on OS X 10.4. [Paul Querna]
+
+ *) Include the C preprocessor flags in --cflags for pkg-config.
+ [Paul Querna]
+
+ *) Fix issue with poll() followed by net I/O yielding EAGAIN on
+ Mac OS 10.4 (Darwin 8). [Wilfredo Sanchez]
+
+Changes for APR 1.1.1
+
+ *) Disable sendfile support for S/390 only in kernel versions < 2.4.0.
+ [Joe Orton]
+
+ *) Fix posix rwlock detection on Darwin. [Aaron Bannert]
+
+ *) Build fix for Multicast support on HP-UX 11.00 and Tru64 [Joe Orton]
+
+ *) Fix libapr.rc for Win32 builds [William Rowe]
+
+ *) Rewrite apr_file_writev_full using apr_file_write_full. [Paul Querna]
+
+ *) Use APR_RING_CONCAT for moving dead list in KQueue, sys_epoll, and
+ Event Ports. [Paul Querna]
+
+ *) find_apr.m4: Try installed APR before bundled copy if --with-apr not
+ passed to configure. [Justin Erenkrantz]
+
+Changes for APR 1.1.0
+
+ *) Added apr_procattr_user_set and apr_procattr_group_set
+ setting the user and group for new processes. [Mladen Turk]
+
+ *) Add APR Multicast functions; including support for
+ Source-Specific Multicast from Colm MacCárthaigh. [Paul Querna]
+
+ *) Add a build script to create a solaris package. [Graham Leggett]
+
+ *) Add support for APR_TCP_DEFER_ACCEPT. [Paul Querna]
+
+ *) Rename the apr_file_permissions macros (APR_UREAD, APR_UWRITE etc.)
+ to have prefix APR_FPROT_ (old names kept for compatibility).
+ [Stas Bekman]
+
+ *) Emit the run-time link path option in apr-config after installation
+ if the user is linking with libtool. [Justin Erenkrantz]
+
+ *) Add apr_file_writev_full to ensure an entire iovec is writen to a file.
+ [Paul Querna]
+
+ *) Remove the runtime test for Sendfile versions on FreeBSD. PR 25718.
+ [Mike Silbersack <silby silby.com>, Paul Querna]
+
+ *) Rename the apr_file_open macros (APR_READ, APR_WRITE, etc.) to
+ have prefix APR_FOPEN_ (old names kept for compatibility).
+ [Stas Bekman]
+
+ *) Added apr_os_uuid_get() support for Linux via libuuid and for modern
+ BSDs which have uuid_create as part of their libc. [Paul Querna]
+
+ *) Added Solaris 10 'Event Ports' as a backend for APR Pollset. This
+ backend also supports the APR_POLLSET_THREADSAFE flag. [Paul Querna]
+
+ *) Added the APR_POLLSET_THREADSAFE flag. This allows multiple threads
+ to call the Pollset Add or Remove functions in a thread safe manner.
+ Currently only EPoll and KQueue support this flag. [Paul Querna]
+
+ *) Split poll/unix/poll.c into separate files for each Poll or Pollset
+ implementation. [Paul Querna]
+
+ *) Rewrite apr_file_printf to handle arbitrary length strings.
+ PR 28029. [Chris Knight <Christopher.D.Knight nasa.gov>,
+ Garrett Rooney <rooneg electricjellyfish.net>]
+
+Changes for APR 1.0.2
+
+ *) [NetWare] Fixed some type mismatches in threadproc/netware/proc.c and
+ locks/netware/thread_mutex.c that prevented APR from building with the
+ latest release of the LibC SDK. [Brad Nicholes]
+
+Changes for APR 1.0.1
+
+ *) apr_password_get(): Fix the check for buffer overflow. [Jeff Trawick]
+
+ *) Fix HUP return codes in pollset when using KQueue.
+ [Paul Querna]
+
+ *) Prevent unbounded memory use during repeated operations on a hash table.
+ [Julian Foad <julianfoad btopenworld.com>
+
+ *) Moved repository to SVN
+ [Hackathon]
+
+ *) jlibtool: Ignore '-export-symbols-regexp' option.
+ [Justin Erenkrantz]
+
+ *) fix apr_file_dup and apr_file_dup2 win32 implementations
+ to create a mutex [Steve Hay <steve.hay uk.radan.com>]
+
+ *) Makes the threads to behave like on posix. If the thread is created
+ without APR_DETACH expect that the thread_join will be called, so don't
+ close the handle in advance, if the thread has already finished.
+ [Mladen Turk]
+
+ *) The apr/test/Makefile.win is missing a target to build a
+ readchild.exe that test is depending on but is never built.
+ [Mladen Turk]
+
+ *) Improve apr_file_gets() performance on buffered files. [Justin Erenkrantz]
+
+ *) Win32: Fix bug in apr_socket_sendfile that interferred with
+ Win32 LSPs. PR 23982 [Jan Bilek, Bill Stoddard]
+
+ *) Win32: Fix bug tracking the file pointer on a file opened for
+ overlapped/APR_XTHREAD io. [Bill Stoddard]
+
+Changes with APR 1.0
+
+ *) Only install apr-$MAJOR-config and add appropriate detection code to
+ find_apr.m4 (APR_FIND_APR). [Max Bowsher <maxb ukf.net>]
+
+ *) Remove APR_STATUS_IS_SUCCESS() macro. [Justin Erenkrantz]
+
+ *) apr_proc_create() on Unix: Remove unnecessary check for read
+ access to the working directory of the child process.
+ PR 30137. [Jeremy Chadwick <apache jdc.parodius.com>]
+
+ *) Add jlibtool - enabled with '--enable-experimental-libtool' option.
+ [Justin Erenkrantz]
+
+ *) Add support for KQueue and sys_epoll to apr_pollset. [Paul Querna]
+
+ *) Support threading on FreeBSD 5.x where kern.osreldate >= 502102.
+ [Craig Rodrigues <rodrigc crodrigues.org>]
+
+ *) Add an RPM spec file derived from Fedora Core.
+ [Graham Leggett, Joe Orton]
+
+ *) Fix apr_threadattr_detach_set() on Mac OS X. PR 28472.
+ [INOUE Seiichiro <inoue ariel-networks.com>]
+
+ *) Change default inter-process locking mechanisms: POSIX semaphores
+ and pthread cross-process mutexes are not used by default; on
+ Solaris, fcntl locks are used by default. [Joe Orton]
+
+ *) Add apr_threadattr_guardsize_set() for overriding the default stack
+ guard area size for created created by apr_thread_create().
+ [Joe Orton]
+
+ *) Add apr_shm_remove() function for removing a named shared
+ memory segment. [Amit Athavale <amit_athavale persistent.co.in>]
+
+ *) Add apr_strtoff() function for converting numeric strings into
+ apr_off_t values. [André Malo <nd perlig.de>, Joe Orton]
+
+ *) Fix stack overflow with IPv6 apr_socket_accept() on Win32.
+ PR 28471. [inoue <inoue ariel-networks.com>]
+
+ *) Add new functions apr_signal_block, apr_signal_unblock to block/unblock
+ the delivery of a particular signal. [Madhusudan Mathihalli]
+
+ *) Add support for developers to use their own hashing function with
+ apr_hash_make_custom. [Ami Ganguli <hse_ami yahoo.co.uk>]
+
+ *) Support "large files" by default on 32-bit Unix platforms which
+ implement the LFS standard. [Joe Orton]
+
+ *) Add apr_threadattr_stacksize_set() for overriding the default
+ stack size for threads created by apr_thread_create().
+ [Jeff Trawick]
+
+ *) The whole codebase was relicensed and is now available under
+ the Apache License, Version 2.0 (http://www.apache.org/licenses).
+ [Apache Software Foundation]
+
+ *) Switch to a single, top-level make. [Greg Stein]
+
+ *) new error status APR_STATUS_IS_ENOTENOUGHENTROPY, Doxygen fixes
+ [Sander Temme <sander at temme dot net]
+
+ *) Add apr_socket_type_get() for retrieving the type (e.g., stream)
+ of the socket. [Philippe M. Chiasson]
+
+ *) Removed deprecated interface apr_proc_other_child_check()
+ that behaved differently between win32 and unix.
+ The unix behavor is now accomplished with
+ apr_proc_other_child_refresh_all(APR_OC_REASON_RESTART)
+ The win32 behavor is now accomplished with
+ apr_proc_other_child_refresh_all(APR_OC_REASON_RUNNING)
+
+ *) Removed apr_socket_opt_{get|set}(..., APR_SO_TIMEOUT) which
+ was deprecated in favor of apr_socket_timeout_{get|set}().
+
+ *) Change i386 FreeBSD to use the asm routines in apr_atomic.h
+ to overcome issues with the FreeBSD atomic functions return
+ type on i386. [David Reid]
+
+ *) Added new versions of the apr_atomic functions for
+ use with 32-bit ints [Brian Pane]
+
+ *) The following deprecated interfaces have been removed:
+
+ apr_accept -> apr_socket_accept
+ apr_allocator_get_mutex -> apr_allocator_mutex_get
+ apr_allocator_get_owner -> apr_allocator_owner_get
+ apr_allocator_set_max_free -> apr_allocator_max_free_set
+ apr_allocator_set_mutex -> apr_allocator_mutex_set
+ apr_allocator_set_owner -> apr_allocator_owner_set
+ apr_atomic_add -> apr_atomic_add32
+ apr_atomic_cas -> apr_atomic_cas32
+ apr_atomic_dec -> apr_atomic_dec32
+ apr_atomic_inc -> apr_atomic_inc32
+ apr_atomic_read -> apr_atomic_read32
+ apr_atomic_set -> apr_atomic_set32
+ apr_bind -> apr_socket_bind
+ apr_compare_groups -> apr_gid_compare
+ apr_compare_users -> apr_uid_compare
+ apr_connect -> apr_socket_connect
+ apr_current_userid -> apr_uid_current
+ apr_explode_localtime -> apr_time_exp_lt
+ apr_explode_time -> apr_time_exp_tz
+ apr_filename_of_pathname -> apr_filepath_name_get
+ apr_file_set_inherit -> apr_file_inherit_set
+ apr_file_unset_inherit -> apr_file_inherit_unset
+ apr_getsocketopt -> apr_socket_opt_get
+ apr_get_groupid -> apr_gid_get
+ apr_get_groupname -> apr_gid_name_get
+ apr_get_home_directory -> apr_uid_homepath_get
+ apr_get_userid -> apr_uid_get
+ apr_get_username -> apr_uid_name_get
+ apr_group_name_get -> apr_gid_name_get
+ apr_implode_gmt -> apr_time_exp_gmt_get
+ apr_is_fnmatch -> apr_fnmatch_test
+ apr_listen -> apr_socket_listen
+ apr_lstat -> apr_stat
+ apr_pool_get_abort -> apr_pool_abort_get
+ apr_pool_get_parent -> apr_pool_parent_get
+ apr_pool_set_abort -> apr_pool_abort_set
+ apr_pool_sub_make -> apr_pool_create_ex
+ apr_proc_other_child_read -> apr_proc_other_child_alert
+ apr_recv -> apr_socket_recv
+ apr_recvfrom -> apr_socket_recvfrom
+ apr_send -> apr_socket_send
+ apr_sendfile -> apr_socket_sendfile
+ apr_sendto -> apr_socket_sendto
+ apr_sendv -> apr_socket_sendv
+ apr_setsocketopt -> apr_socket_opt_set
+ apr_shutdown -> apr_socket_shutdown
+ apr_signal_get_description -> apr_signal_description_get
+ apr_sockaddr_ip_set -> apr_sockaddr_info_get
+ apr_sockaddr_port_get -> (access directly)
+ apr_sockaddr_port_set -> apr_sockaddr_info_get
+ apr_socket_create_ex -> apr_socket_create
+ apr_socket_set_inherit -> apr_socket_inherit_set
+ apr_socket_unset_inherit -> apr_socket_inherit_unset
+ FNM_NOMATCH -> APR_FNM_NOMATCH
+ FNM_NOESCAPE -> APR_FNM_NOESCAPE
+ FNM_PATHNAME -> APR_FNM_PATHNAME
+ FNM_PERIOD -> APR_FNM_PERIOD
+ FNM_CASE_BLIND -> APR_FNM_CASE_BLIND
+ MAX_SECONDS_TO_LINGER -> APR_MAX_SECONDS_TO_LINGER
+
+ The following interfaces have function argument changes:
+
+ apr_mmap_dup
+ apr_socket_create
+
+ The following header files have been removed:
+
+ apr_compat.h
+
+Changes with APR 0.9.5
+
+ *) Fix apr_snprintf() to respect precision for small floating point
+ numbers. PR 29621. [Artur Zaprzala <zybi talex.pl>]
+
+ *) Add command type APR_SHELLCMD_ENV for creating a process
+ which is started by the shell and which inherits the parent's
+ environment variables. [Jeff Trawick]
+
+ *) Don't try to enable run-time linking on AIX < 4.2, as this
+ results in invalid linker options being used. PR 29170.
+ [Jeff Trawick]
+
+ *) Don't assume getnameinfo() can handle IPv4-mapped IPv6 addresses
+ on any platforms.
+ [Jeff Trawick, Joe Orton, Colm MacCárthaigh <colm stdlib.net>]
+
+ *) Support setuid, setgid and sticky file permissions bits on Unix.
+ [André Malo]
+
+ *) Fix sign error in apr_file_seek(APR_END).
+ [Greg Hudson <ghudson MIT.EDU>]
+
+ *) Provide workaround for socklen_t declaration problem with 64-bit
+ build on HP-UX. Stop setting a PA-RISC-specific compile option
+ on ia64. Look for -mt thread option, which is used with HP-UX
+ vendor compiler on ia64. [Jeff Trawick, based on idea from
+ Madhusudan Mathihalli]
+
+ *) Return an error instead of silently failing when apr_poll() is
+ used with file descriptors >= FD_SETSIZE. (Unix systems with
+ no native poll()) [Jeff Trawick, Brad Nicholes]
+
+ *) Fix handling of negative numbers in apr_strtoi64() on platforms
+ without strtoll. [Joe Orton]
+
+ *) Fix printing apr_int64_t values smaller than LONG_MIN on 32-bit
+ platforms in apr_vformatter. [Joe Orton]
+
+ *) Fix apr_socket_opt_set with APR_IPV6_V6ONLY flag. Fixes httpd
+ Listen IPv6 socket behavior on FreeBSD 5.x, OpenBSD, NetBSD.
+ [Justin Erenkrantz]
+
+ *) Fix apr_time_exp_get() for dates in 2038.
+ [Philip Martin <philip codematters.co.uk>]
+
+ *) Add APR_LARGEFILE flag to allow opening files with the
+ O_LARGEFILE flag; not recommended for general use, see
+ include/apr_file_io.h. [Joe Orton]
+
+ *) Various build fixes: thread_rwlock.c on some Solaris platforms
+ (PR 22990); filestat.c on ReliantUnix (PR 22990); config.status
+ on IRIX (PR 19251). [Various]
+
+ *) Use NI_NAMEREQD instead of NI_NUMERICHOST in
+ APR_CHECK_GETNAMEINFO_IPV4_MAPPED. PR 24469. [Justin Erenkrantz]
+
+ *) Ensure that apr_sockaddr_info_get() does not return anything
+ other than AF_INET and AF_INET6 addresses. [Joe Orton]
+
+ *) Clarify that apr_dir_read() does not guarantee order of returned
+ entries as previously claimed. [Joe Orton]
+
+ *) The whole codebase was relicensed and is now available under
+ the Apache License, Version 2.0 (http://www.apache.org/licenses).
+ [Apache Software Foundation]
+
+ *) Define apr_off_t as long rather than as off_t on platforms with a
+ 32-bit off_t to prevent incompatibility with packages such as
+ Perl which redefine the size of off_t via _FILE_OFFSET_BITS on
+ some platforms. [Ben Reser <ben reser.org>]
+
+ *) apr_socket_connect(): allow app to make subsequent call on
+ non-blocking socket. [Jeff Trawick]
+
+ *) Add apr_os_pipe_put_ex(), which allows the caller to tell APR
+ to establish a cleanup on the pipe. [Jeff Trawick, Brad Nicholes]
+
+ *) Fix make_exports.awk to work with apr-iconv. [Justin Erenkrantz]
+
+Changes with APR 0.9.4
+
+ *) win32: fix apr_file_dup() and apr_file_dup2() to dup the
+ ungetchar member [Stas Bekman]
+
+ *) Preserve leading '../' segments as when merging to an empty and
+ unrooted path - fixes a bug observed in SVN with Win32/Netware/OS2.
+ [Mike Pilato <cmpilato collab.net>, William Rowe]
+
+ *) Work around a bug in Darwin when calling getnameinfo() on IPv4-mapped
+ IPv6-addresses. [Colm MacCárthaigh <colm stdlib.net>, Jeff Trawick,
+ Justin Erenkrantz]
+
+ *) Add apr_temp_dir_get() for getting the most suitable temp directory
+ [Mike Pilato <cmpilato collab.net>, Thom May]
+
+ *) Modify apr_sockaddr_info_get to call the resolver when we
+ do not have a hostname. Also, fix bugs in the getaddrinfo()
+ implementation.
+ [Colm MacCárthaigh <colm stdlib.net>, Justin Erenkrantz]
+
+ *) Change the behavior of unix process 'trylock's to return
+ APR_ENOTIMPL instead of segfaulting, consistent with the
+ other lock implementations. [William Rowe]
+
+ *) Fix a subtle race where the ownership of a unix nested
+ thread lock could be corrupted when the prior owner released
+ the lock with another thread waiting on the same lock.
+ [William Rowe]
+
+ *) apr_socket_data_set(): allow the same key to be used for
+ multiple sockets in the same pool. [Jeff Trawick]
+
+ *) Add new table function apr_table_compress() and replace
+ red-black trees with mergesort in apr_table_overlap()
+ [Joe Schaefer <joe+gmane sunstarsys.com>, Brian Pane]
+
+ *) Win32: Adopt Brian Havard's OS/2 rwlock implementation for
+ Windows [Marc Adkins, Bill Stoddard]
+
+ *) Add apr_proc_mutex_lockfile() for retrieving the name of the
+ file associated with a mutex. [Jeff Trawick]
+
+ *) Don't require the lock file name to be passed into
+ apr_proc_mutex_child_init() or apr_global_mutex_child_init().
+ This allows child init to work when the lock file was a temp
+ file created by APR. (The problem only occurred with flock-
+ based mutexes.) [Jeff Trawick]
+
+ *) When using a temporary file for flock- and fcntl-based mutexes,
+ don't let the file be deleted on close. For flock-based mutexes,
+ this corrects a fatal problem, since the file would disappear
+ when a program was spawned and cleanup-for-exec was performed,
+ and a subsequent attempt to perform child process mutex
+ initialization would fail. For fcntl-based mutexes, this was a
+ very minor issue that resulted in a failing unlink() when the
+ file was closed, since fcntl lock initialization always removes
+ the file immediately. [Jeff Trawick]
+
+ *) When writing to pipes with a timeout set, handle the situation
+ where the kernel says the pipe is writable but an attempt to
+ write <= PIPE_BUF bytes gets EAGAIN. APR will now write whatever
+ data will fit. APR applications that relied on the atomic nature
+ of relatively small pipe write requests may be affected.
+ PR 20295 [Mark Street <mark faime.demon.co.uk>, Jeff Trawick]
+
+ *) Define _THREAD_SAFE for all compilations on AIX. Previously
+ those of us who used the vendor compiler had it defined
+ implicitly and others did not. The difference became obvious
+ with the recent thread safety fixes to apr_password_validate().
+ PR 20420 [Jeff Trawick]
+
+ *) For apr_proc_detach(APR_PROC_DETACH_FOREGROUND), don't treat
+ a setsid() failure as fatal, as the usual cause is that the
+ caller is already a process group leader. PR 18519
+ [Jeff Trawick]
+
+ *) Fix some problems with non-blocking socket handling on unix
+ that resulted in infinite timeouts being used for non-blocking
+ sockets with apr_socket_connect() and some read/write calls.
+ [Jeff Trawick]
+
+ *) Fix a bug in socket timeout handling on unix that left the
+ socket non-blocking after disabling the timeout.
+ [Jacob Craig Lewallen <jlewalle cs.ucr.edu>]
+
+ *) Added flag APR_FILE_ATTR_HIDDEN for manipulating the "hidden"
+ file attribute on Windows and OS/2. [Branko Äibej]
+
+ *) SECURITY [CAN-2003-0245]: Fixed a bug that could be triggered
+ remotely through mod_dav and possibly other mechanisms, causing
+ an Apache child process to crash. The crash was first reported
+ by David Endler <DEndler iDefense.com> and was researched and
+ fixed by Joe Orton <jorton redhat.com>. Details will be released
+ on 30 May 2003.
+
+ *) apr_proc_wait(): Handle interrupted waitpid(2) calls by calling
+ it repeatedly until it succeeds or fails with errno other than
+ EINTR. This hides this UNIX-specific behavior from APR clients.
+
+ *) Removed the solaris-specific atomic code, due to licence
+ concerns (it was MPL 1.0, and the author could not be contacted)
+ [Ian Holsman]
+
+ *) apr_file_gets(): Return APR_SUCCESS if any characters are
+ returned. Any I/O errors or EOF will be reported on the
+ next call. Callers that are coded to expect returned
+ data + APR_EOF when there is no final newline are affected
+ by this change. [Jeff Trawick]
+
+ *) apr_proc_create() on Unix: Make the APR_SHELLCMD mode work
+ when there is more than one program argument passed in.
+ [Jeff Trawick]
+
+ *) Add --cc and --cpp flags to apr-config. [Jeff Trawick]
+
+ *) Don't segfault trying to close a file in error paths of flock
+ and fcntl mutex creation. PR 19036 [Jeff Trawick]
+
+ *) Add %pT support to apr_snprintf() for printing an apr_os_thread_t.
+ [Jeff Trawick]
+
+ *) Add APR_TCP_NODELAY_INHERITED & APR_O_NONBLOCK_INHERITED to apr.hw
+ [Allan Edwards]
+
+ *) Add APR_UINT64_T_HEX_FMT. [Jeff Trawick]
+
+ *) Add parameter to APR_SUBDIR_CONFIG to drop options passed to configure
+ before the subdir's configure is invoked.
+ [Jeff Trawick, Justin Erenkrantz]
+
+ *) Implement APR_SO_RCVBUF socket option on Unix.
+ [Adam Sussman <myddryn vishnu.vidya.com>]
+
+ *) Don't add the math library (-lm) if the modf() function
+ is already available via libc. [Roy Fielding]
+
+ *) Solaris cc: Don't use the -mt option for threaded builds. That
+ is for non-Posix threading, and the use of it prevented us from
+ linking with -lpthread, which in turn caused weird problems for
+ APR applications. [Kristofer Spinka <kspinka style.net>]
+
+ *) OS/2: apr_stat() fixes - When a character device is stat'ed,
+ fill in finfo.name if it was asked for. Return APR_INCOMPLETE
+ when appropriate. Addresses httpd incident [CAN-2003-0134].
+ [Brian Havard]
+
+Changes with APR 0.9.3
+
+ *) Don't enable posixsem, at build time, on systems where sem_t *
+ won't "fit" into an int (sizeof-wise). Also, better error handling
+ when we fail to create a posixsem. PR 17186 [Scott Herod
+ <sherod pillardata.com>, Jim Jagielski]
+
+ *) Default hpux 10.x to disable threading, since if it exists at all
+ the pthread implementation should not be trusted, while hpux 10
+ had its own threads implementation that is no longer supported.
+ PR 9457 [William Rowe]
+
+ *) Fix error in apr-config when symlinks are involved.
+ [Garrett Rooney <rooneg electricjellyfish.net>]
+
+Changes with APR 0.9.2
+
+ *) Numerous bug fixes for file and socket inheritence by child
+ processes on Unix, correcting bugs that affected the correct
+ behavior of apr_[file|socket]_inherit_[un]set() API.
+ [Bjoern A. Zeeb <bz zabbadoz.net>, William Rowe, Joe Orton]
+
+ *) Define APR_UINT64_T_FMT and APR_UINT64_T_FMT_LEN.
+ Define APR_INT64_T_FMT_LEN on Windows and Netware. [Branko Äibej]
+
+ *) Correct apr_file_gets() on OS2 and Win32 so that '\r's are no longer
+ eaten, and apr_file_gets() -> apr_file_puts() moves the contents
+ uncorrupted. [William Rowe]
+
+ *) Alter Win32's handling of the apr_proc_t hproc member, so that we
+ close that system handle wherever an apr function would invoke the
+ final waitpid() against a zombie process on Unix. [William Rowe]
+
+ *) APR_MAX_SECONDS_TO_LINGER and APR_FNM_* #defines replace their
+ old undecorated names (missing APR_ prefix). The old names will
+ disappear with APR 1.0.0.
+ [Craig Rodrigues <ro...@attbi.com>, William Rowe]
+
+
+ *) When generating a semaphore name for posixsem locking, try to
+ be a little more robust (and unique). [Jim Jagielski]
+
+ *) Add functions apr_env_get, apr_env_set and apr_env_delete for
+ manipulating the environment. [Branko Äibej]
+
+ *) Fix APR_LAYOUT to work with layout files with no preceding blank lines
+ and emit errors when layout is not found. PR 15679.
+ [Justin Erenkrantz]
+
+ *) Add functions apr_filepath_list_split and apr_filepath_list_merge
+ for managing search paths. [Branko Äibej]
+
+ *) Introduce Release mode debugging symbols for Win32 builds of apr.
+ All library builds gain /Zi for debug symbols (which are discarded
+ at link time if some flavor of the /debug flag isn't passed to link)
+ and .dll builds gain .pdb symbols. [Allen Edwards, William Rowe]
+
+ *) Add two new proc attributes to improve diagnostics for
+ apr_proc_create() failures on platforms where fork()+exec() is used.
+ See the doc for apr_procattr_child_errfn_set() and
+ apr_procattr_error_check_set(). [Jeff Trawick]
+
+ *) Rename rules.mk to apr_rules.mk and make apr_rules.mk be installed.
+ [Thom May]
+
+ *) Fix a bug in apr_proc_create() that could cause a new child process
+ to run the parent's code if setrlimit() fails. [Jeff Trawick]
+
+ *) Disable apr_socket_sendfile() on 64-bit AIX to avoid an apparent
+ system problem. PR 11408. [Jeff Trawick]
+
+ *) Add --includedir flag to apr-config. [Justin Erenkrantz]
+
+ *) Only include sys/syslimits.h if we don't have limits.h
+ [Craig Rodrigues <ro...@attbi.com>, Garrett Rooney
+ <ro...@electricjellyfish.net>, Thom May]
+
+ *) Allow apr-config to work in symlinked install directories when
+ 'realpath' is available. [Justin Erenkrantz]
+
+ *) Namespace protect the header files in include/arch
+ [Thom May]
+
+ *) Add function apr_filepath_encoding and associated constants.
+ [Branko Äibej]
+
+ *) Allow apr_hash to have greater than int number of elements.
+ [Justin Erenkrantz]
+
+ *) Allow generation of dependencies by non-GCC compilers.
+ [Justin Erenkrantz]
+
+ *) Prevent obscenely large values of precision in apr_vformatter
+ from clobbering a buffer. [Sander Striker, Jim Jagielski]
+
+ *) limit the renames performed in apr_rename.pl to the most recent renames.
+ [Thom May]
+
+ *) Changed apr_mmap_dup() and friends so that there's no longer any
+ is_owner concept on the mmaped region, but rather something more
+ along the lines of a reference count. This allows the old apr_mmap_t
+ to still be used safely when the new apr_mmap_t is in a disjoint pool.
+ [Cliff Woolley, Sander Striker]
+
+ *) Fix a bug in apr_hash_merge() which caused the last entry in the
+ overlay hash to be lost. PR 10522 [Jeff Trawick]
+
+ *) Add DougM's apr_rename.pl script into helpers, and update for the new
+ batch of updates [Thom May]
+
+ *) Renames done (deprecated functions wrapped):
+ apr_filename_of_pathname -> apr_filepath_name_get
+ apr_get_groupid -> apr_gid_get
+ apr_get_groupname -> apr_gid_name_get
+ apr_compare_groups -> apr_gid_compare
+ apr_parse_addr_port -> apr_port_addr_parse
+ apr_shutdown -> apr_socket_shutdown
+ apr_bind -> apr_socket_bind
+ apr_listen -> apr_socket_listen
+ apr_accept -> apr_socket_accept
+ apr_connect -> apr_socket_connect
+ apr_send -> apr_socket_send
+ apr_sendv -> apr_socket_sendv
+ apr_sendto -> apr_socket_sendto
+ apr_implode_gmt -> apr_time_exp_gmt_get
+ apr_get_home_directory -> apr_uid_homepath_get
+ apr_get_userid -> apr_uid_get
+ apr_current_userid -> apr_uid_current
+ apr_compare_users -> apr_uid_compare
+ apr_get_username -> apr_uid_name_get
+ apr_recvfrom -> apr_socket_recvfrom
+ apr_sendfile -> apr_socket_sendfile
+ apr_recv -> apr_socket_recv
+ [Thom May]
+
+ *) Add APR_IPV6_V6ONLY socket option. [Jeff Trawick]
+
+ *) Update timeout algorithm in free_proc_chain. If a subprocess
+ did not exit immediately, the thread would sleep for 3 seconds
+ before checking the subprocess exit status again. In a very
+ common case when the subprocess was an HTTP server CGI script,
+ the CGI script actually exited a fraction of a second into the 3
+ second sleep, which effectively limited the server to serving one
+ CGI request every 3 seconds across a persistent connection.
+ [Bill Stoddard, Kai.Risku@arrak.fi]
+
+ *) Update doxygen tags. [Justin Erenkrantz]
+
+ *) NetWare: implemented a file IO path context scheme to directly
+ reference directory paths and files in the file system rather
+ than having to traverse the file system on every stat() or
+ open() call. (Performance enhancement) [Brad Nicholes]
+
+ *) ReliantUnix: recognize that dlsym() is in libdl and dlopen() is in
+ libc. The check is generic so maybe this fixes some other system.
+ PR 14189 [Jeff Trawick]
+
+ *) Win32: Fix APR_APPEND file i/o. [Bill Stoddard]
+
+ *) Fix a problem retrieving the remote socket address for sockets
+ created via apr_os_sock_put() or apr_os_sock_make(). [Jeff Trawick]
+
+ *) Add recognition of and socket API support for the SCTP protocol.
+ [Randall Stewart <ra...@stewart.chicago.il.us>]
+
+ *) Win32: apr_shutdown was not honoring apr_shutdown_how_e and
+ always shutting down the socket for read. This could result
+ in Apache HTTPD 2.0 clients getting early connection closures
+ because lingering_close() was broken. [Bill Stoddard, Allan Edwards]
+
+ *) Add apr_atomic_casptr() to support atomic compare-and-swap
+ of pointers [Brian Pane]
+
+ *) Add apr_socket_create_ex() to allow protocol to be specified for the
+ socket. With APR 1.0, this function will be removed and apr_socket_create()
+ will have the additional parameter.
+ [Randall Stewart <ra...@stewart.chicago.il.us>]
+
+ *) Fix the detection of INT64_C() when defined in <stdint.h>.
+ [Joe Orton <jo...@manyfish.co.uk>]
+
+ *) Don't use whitespace before preprocessor directives in the configure
+ logic. Such whitespace breaks with some older preprocessors; a
+ particularly nasty break occurs on Tru64 4.0f where APR_CHECK_DEFINE
+ will always succeed. [Joe Orton <jo...@manyfish.co.uk>]
+
+ *) Add APR_IPV4_ADDR_OK flag to apr_sockaddr_info_get() to allow
+ apps to avoid lookup of IPv6 address if IPv4 address is sufficient.
+ (New APR_IPV6_ADDR_OK flag is similar.) [Jeff Trawick]
+
+ *) Disable IPv6 support on Darwin. The current IPv6 support has a
+ problem in getnameinfo() which breaks certain applications.
+ [Sander Temme <sc...@covalent.net>, Jeff Trawick]
+
+ *) Support for SCO OpenServer Release 5 [Kean Johnston <jk...@caldera.com>]
+
+ *) Faster (inline and mutex-free) implementations of all apr_atomic
+ operations for Linux/x86 (requires a 486 or later; to enable,
+ configure APR with --enable-nonportable-atomics=yes ) [Brian Pane]
+
+ *) Add --bindir option to apr-config. [Justin Erenkrantz]
+
+ *) Begin to rehash the test suite. There is now a new test program called
+ testall. This program currently runs testtime and teststr with the
+ CuTest framework. The stand-alone programs for testtime and teststr
+ can be built, but only if a special flag is specified when building.
+ [Ryan Bloom]
+
+ *) Fix a broken check for a failure to read from the random device file.
+ PR 12615 [tenthumbs@cybernex.net]
+
+ *) Print informative link errors on Darwin. [Justin Erenkrantz]
+
+Changes with APR 0.9.1
+
+ *) Fixed usage of alloca in apr_poll() on Tru64
+ [Dave Hill <dd...@zk3.dec.com>]
+
+ *) Running "make check" in the toplevel directory or the test/ directory
+ will build and run all test programs. [Aaron Bannert]
+
+ *) Add apr_array_pop(). [Justin Erenkrantz]
+
+ *) Fixed the native SPARC v8plus version of apr_atomic_dec
+ to match the semantics of the default C version [Brian Pane]
+
+Changes with APR 0.9.0
+
+ *) If the length argument to apr_snprintf is 0, then we should return the
+ length that the string would be if we actually were going to fill it out.
+ However, if the length argument is 0, we can also accept a NULL string.
+ Also, added a test case for this. [Ryan Bloom]
+
+ *) Printing a string with apr_snprintf can seg fault, if a precision is
+ specified for the string, and the string being printed doesn't have a
+ trailing '\0'. Fix that seg fault by not calling strlen if a precision
+ is specified when printing a string. Also add a test to the test suite
+ for this case.
+ [R Samuel Klatchko <rs...@brightmail.com>]
+
+ *) handle leak related to threads on Windows2000/XP
+ [INOUE Seiichiro <in...@ariel-networks.com>]
+
+ *) Includes moved to INCLUDEDIR/apr-{major} (e.g. /usr/include/apr-0)
+ [Greg Stein]
+
+ *) libtool versioning is used to give the library sonames a real
+ value. The libraries will be libapr-{major}.so.0.{minor}.{patch}
+ [Greg Stein]
+
+ *) Fix apr_tokenize_to_argv() to remove the escape character
+ (backslash) from the argument tokens. PR 11793 [Paul J. Reder]
+
+ *) Add APR_PARSE_ARGUMENTS and APR_LAYOUT macros for better layout
+ support. [Thom May]
+
+ *) Add parallel-apr layout which utilizes the major version number in
+ directories and library names. [Justin Erenkrantz]
+
+ *) Add a version number to the library name (e.g. libapr-1.so) so
+ that apps can do things like: -lapr-1 or -lapr-2, depending on
+ which version they want to use and link against. [Greg Stein]
+
+ *) Add --version to apr-config so that apps can retrieve the version
+ information of the (installed) APR. [Greg Stein]
+
+ *) Remove the APRVARS system; apps should use apr-config. [Greg Stein]
+
+ *) EBCDIC: fix compile failure in strings/apr_strings.c in
+ httpd-2.0.40 with the following error message:
+ CANNOT COMPILE apr_strtoi64(), only ASCII and EBCDIC supported
+
+ *) In apr_signal_thread() remove synchronous signals from the mask
+ passed to sigwait(). It is never valid for them to be there.
+ Some platforms silently ignore them, some return EINVAL, some
+ don't process it as desired. [Jeff Trawick]
+
+ *) Change config.nice generation to always expand variables.
+ [Justin Erenkrantz]
+
+ *) Renamed apr_strtoll()/apr_atoll() to follow int64 convention,
+ so these new helpers are apr_strtoi64/apr_atoi64(), since
+ 'll' (long long) is a nonportable and aspecific construct.
+ Used ac/m4 tests to choose the appropriate fn behind strtoi64.
+ [William Rowe]
+
+ *) don't perform a strlen on that name value without checking for NULL
+ first (in getopt)
+ [David Waite <ma...@akuma.org>, Ian Holsman]
+
+ *) Added apr_strtoll() and apr_atoll() to strings lib.
+ [Shantonu Sen <ss...@apple.com>, Wilfredo Sanchez]
+
+ *) Added a lightweight internal index to apr_table_t to speed up
+ table lookup operations [Brian Pane]
+
+ *) initalize handle members to invalid before calling createprocess
+ on win32 [Rob Saccoccio <ro...@fastcgi.com>]
+
+ *) Removed apr/i18n to apr-util/xlate for inclusion of apr-iconv
+ as required by missing libiconv. [William Rowe]
+
+ *) Removed apr/md5 and apr/uuid into apr-util/crypto. [William Rowe]
+
+ *) Add APR_BUFFERED support to apr_os_file_put(). [Justin Erenkrantz]
+
+ *) Fix misinterpretation of timeout for select() on Win32/Netware.
+ Identified by [TANAKA Koichi <ta...@ariel-networks.com>]
+
+ *) Re-write apr_poll() on Unix. This improves the performance by
+ giving the user back control over the memory in the pollset.
+ [Ryan Bloom]
+
+ *) Added APR_LIMIT_NOFILE option to apr_procattr_limit_set() to
+ control the file descriptor limit on platforms that support
+ RLIMIT_NOFILE. [Brian Pane]
+
+ *) FreeBSD: change apr_sendfile to accomodate a 4.6 kernel patch.
+ [Greg Ames]
+
+ *) Faster code for the apr_table get/set functions [Brian Pane]
+
+ *) Fix the userid functions on Irix to handle the way that Irix
+ reports a failure from getpwnam_r(). PR 10095.
+ [Robert I. Cowles <ri...@cs.uregina.ca>, Jeff Trawick]
+
+ *) apr_table_do() and apr_table_vdo() now return an int rather than
+ void to indicate whether or not any of its iterations returned 0.
+ [Cliff Woolley]
+
+ *) Fix the definition of union semun so that it is valid on systems
+ where sizeof(long) != sizeof(int). This resolves a hang on
+ HP-UX/Itanium.
+ [Madhusudan Mathihalli <ma...@hp.com>]
+
+ *) Correct shared library support on Darwin to not fatally error out
+ when a shared library does not exist. [Justin Erenkrantz]
+
+ *) Added optimized atomic CAS support for Linux/x86 (available only
+ when APR is configured with --enable-nonportable-atomics=yes)
+ [Brian Pane]
+
+ *) Fix a compile error in the EGD support in rand.c on older Solaris
+ versions. PR 9976 [Jim Morris <jm...@sunflower.com>]
+
+ *) Fixed apr_file_seek() to unset the eof_hit flag. [Stas Bekman]
+
+ *) Removed --disable-atomics flag and added --enable-nonportable-atomics,
+ thereby defaulting to portable binaries on those systems that could
+ be optimized at the expense of portability. PR: 9507 [Aaron Bannert]
+
+ *) Added 2 additional lock functions: apr_proc_mutex_name and
+ apr_proc_mutex_defname which returns the type name of the mutex
+ (eg: "sysvsem") as well as the default mutex type (APR_LOCK_DEFAULT).
+ Mostly useful under Unix were the locktypes are selectable.
+ [Jim Jagielski]
+
+ *) Fixed apr_generate_random_bytes() for Win32 on Win NT or 9x by
+ dropping the 0x40 bit (CRYPT_SILENT) for earlier OS'es.
+ PR 9286 [William Rowe]
+
+ *) Added --with-devrandom=[DEV] configure flag which allows a particular
+ "/dev/random"-compatible device to be specified, overriding the
+ default search path (/dev/random then /dev/arandom then /dev/urandom).
+ Also, if --with-egd=<path> is specified, it now implies
+ --without-devrandom. [Cliff Woolley]
+
+ *) Darwin/Mac OS X: Don't leave zombie processes when the app calls
+ apr_signal(SIGCHLD, SIG_IGN). This fixes a problem with Apache's
+ mod_cgid. PR 9168. [Jeff Trawick]
+
+ *) Win32: Fix bug where apr_sendfile() was incorrectly returning
+ APR_SUCCESS on a TransmitFile call that was interrupted by
+ the client closing its end of the connection. Always call
+ GetOverlappedResults() to get results of async TransmitFile()
+ completion notification. [Bill Stoddard]
+
+ *) Renamed APR_XtOffset -> APR_OFFSET and APR_XtOffsetOf -> APR_OFFSETOF.
+ [Cliff Woolley]
+
+ *) Cygwin: the unix version of apr_file_open() must respect the
+ APR_BINARY flag if the underlying platform requires it (in
+ which case we assume O_BINARY is defined). PR 9185.
+ [Cliff Woolley]
+
+ *) Linux, AIX: Use crypt_r() instead of crypt() because the native
+ crypt() is not thread-safe. The misuse of crypt() led to
+ intermittent failures with Apache basic authentication when crypt
+ passwords were being used. [Jeff Trawick]
+
+ *) AIX: Global mutexes don't need an intraprocess mutex when SysV
+ sems are used for the crossprocess mutex.
+ Darwin: The same optimization was applied for Posix sems.
+ [Jeff Trawick]
+
+ *) Fix a problem with global mutexes on OS/390 when something other
+ than the default mechanism (SysV sem) was used. The mutexes didn't
+ necessarily block out other threads in the same process.
+ [Jeff Trawick]
+
+ *) Fixed apr_strfsize formatting of values over 1 gig
+ [Matsuzaki Yoshinobu <ma...@iij.ad.jp>]
+
+ *) Renamed --disable-atomics as --disable-optimized-atomics,
+ since it doesn't really disable the atomics. [Aaron Bannert]
+
+ *) Converted apr_pcalloc to a macro [Brian Pane]
+
+ *) Fixed APR_STATUS_IS_ETIMEDOUT macro.
+ [Dagfinn Aarvaag <da...@beepscience.com>]
+
+ *) Add --disable-atomics switch to override our handcoded assembly
+ optimizations. Note that this has no effect if your operating
+ system has a userspace atomic interface. [Justin Erenkrantz]
+
+ *) Remove Linux atomic support since it does not have a usable
+ userspace atomic interface. [Justin Erenkrantz]
+
+ *) Don't require that the DNS can map 127.0.0.1 when checking for
+ the presence/usability of getnameinfo(). PR 7642. [Jeff Trawick]
+
+ *) Remove APR_WANT_SIGNAL from apr_want.h because code must include
+ apr_signal.h in order to get consistent definitions. [Roy Fielding]
+
+ *) Don't try to use /dev/zero and mmap on platforms that don't
+ support that (such as HP-UX). PR 8537. [Justin Erenkrantz]
+
+ *) Reduce the number of apr_sendfile calls on AIX and OS/390 by
+ remembering when the kernel tells us the next one will block.
+ [Jeff Trawick]
+
+ *) Reduce the number of apr_sendfile calls on FreeBSD by remembering
+ when the kernel tells us the next one will block. [Greg Ames]
+
+ *) To support modules like PHP, which implement their own
+ loaded extensions, Darwin needs to place their public
+ symbols in the global table. [Marko Karppinen <ma...@php.net>,
+ Jim Jagielski]
+
+ *) Rename apr_get_groupname to apr_group_name_get.
+ [Thom May <th...@planetarytramp.net>]
+
+ *) Allow VPATH builds to properly build dependencies and switch to
+ a .deps dependency model to mimic httpd-2.0. [Justin Erenkrantz]
+
+ *) Tru64: Stop leaving zombies in APR apps like mod_cgid which
+ tell APR to ignore SIGCHLD.
+ [Dave Hill <Da...@Compaq.com>]
+
+ *) Ensure that the ATOMIC_HASH can not be negative.
+ [Joe Orton <jo...@redhat.com>]
+
+ *) Fix a problem with eof reporting with Unix file I/O on
+ unbuffered files. [Stas Bekman <st...@stason.org>]
+
+ *) Rename apr_explode_time to apr_time_exp_tz.
+ [Thom May <th...@planetarytramp.net>]
+
+ *) Rename apr_explode_localtime to apr_time_exp_lt.
+ [Thom May <th...@planetarytramp.net>]
+
+ *) Set precompiler for Solaris atomics when using GNU binutils.
+ PR 7876. [solomon@conceptshopping.com (Marvin Solomon)]
+
+ *) AIX: Fix breakage with 64-bit builds on versions of AIX prior
+ to 5L. PR 7957 [Jeff Trawick]
+
+ *) On socket write functions (apr_sendfile, apr_send, apr_sendv),
+ added a select to wait for writability on the socket if the
+ previous write was incomplete. [Jeff Trawick, Brian Pane]
+
+ *) Deprecated the apr_lock.h API. Please see the following files
+ for the improved thread and process locking and signaling:
+ apr_proc_mutex.h, apr_thread_mutex.h, apr_thread_rwlock.h,
+ apr_thread_cond.h, and apr_global_mutex.h. [Aaron Bannert]
+
+ *) Fix some daylight savings time breakage on (at least) AIX,
+ Solaris, and HP-UX. [Jeff Trawick]
+
+ *) Added support for Posix semaphores (sem_open, et.al.) for mutex
+ locking. We use named semaphores in this implementation. The
+ default priority is between pthread and sysvsem.
+ [Jim Jagielski]
+
+ *) Get flock-based mutexes to work in apps like Apache. Use the
+ same permissions on flock- and fcntl-based mutexes as Apache
+ 1.3. [Jeff Trawick]
+
+ *) Fix apr-config so that it will not attempt to cd to a non-existent
+ directory. [Justin Erenkrantz]
+
+ *) Change the ordering of the apr_lock implementation method to
+ better match what's done in Apache 1.3. The ordering is
+ now (highest to lowest): pthread -> sysvsem -> fcntl -> flock.
+ [Jim Jagielski]
+
+ *) Improve detection of the INT64_C macro to prevent problems
+ with HP-UX's ANSI C compiler. PR 8932. [Justin Erenkrantz]
+
+ *) Make sure gethostbyname() can handle 255.255.255.255 if we
+ are to trust it to handle numeric address strings in
+ apr_sockaddr_info_get(). This fixes a problem on HP-UX
+ which led to an assertion failure at Apache startup when
+ using vhosts. [Jeff Trawick]
+
+ *) Don't mask SIGUSR2 [Jin Hong <ji...@cnet.com>]
+
+ *) Load libraries if they not MH_BUNDLE, but if they are not, it
+ just attempts to link them as shared libs.
+ [Pier Fumagalli <pi...@betaversion.org>]
+
+ *) apr_atomic_dec now returns a zero value if the value of
+ the atomic is zero, non-zero otherwise [Ian Holsman]
+
+ *) When opening a file, only create an internal thread mutex
+ if APR_XTHREAD is set. [Brian Pane]
+
+ *) Move the kill_conditions enum in apr_thread_proc.h into the
+ APR namespace. kill_after_timeout et al have been renamed
+ appropriately (e.g., APR_KILL_AFTER_TIMEOUT). [Jeff Trawick]
+
+ *) Fix a segfault in apr_thread_rwlock_destroy() on Win32.
+ [INOUE Seiichiro <in...@ariel-networks.com>]
+
+ *) configure now checks to see if we can change DNS timeout values
+ [Ian Holsman]
+
+ *) Fix a bug in apr_file_seek() on Unix when using buffered
+ files. PR 10003 [Jeff Trawick]
+
+ *) Small table performance optimization: eliminate the
+ zero-fill of newly allocated elements when expanding
+ a table's size. [Brian Pane]
+
+ *) Allow APR to install its generated libtool(s) via the
+ --with-installbuilddir option (defaults to ${datadir}/build).
+ [Justin Erenkrantz]
+
+ *) renames: apr_ansi_time_to_apr_time becomes apr_time_ansi_put
+ ap_exploded_time_t becomes apr_time_exp_t
+ [Thom May <th...@planetarytramp.net>]
+
+ *) Add the APR_FILE_NOCLEANUP flag to apr_file_open().
+ Adding the flag will prevent the file from being closed
+ when the pool passed in on apr_file_open() is destroyed.
+ This feature is useful when using apr_os_file_get|put()
+ to manage the apr_os_file_t in apr_file_t (ie, file handle
+ caching in the HTTP server) [Bill Stoddard]
+
+ *) Win32: Fix APR_XTHREAD problems in apr_file_read()
+ and apr_file_write(). Multiple threads were using the
+ same overlapped structure and io event handle created
+ in the open call, which could cause unpredictable
+ file i/o results. [Bill Stoddard]
+
+ *) Win32: apr_proc_mutex_trylock and apr_proc_mutex_lock were
+ incorrectly returning APR_BUSY if the lock was previously
+ held by a thread that exited before releasing the lock
+ (ie, if the process holding the lock segfaults). The MSDN
+ doc says when WaitForSingleObject returns WAIT_ABANDONED,
+ the calling thread takes ownership of the mutex, so these
+ two routines should return APR_SUCCESS in this case, not
+ APR_BUSY. [Bill Stoddard]
+
+ *) Added a new m4 function APR_EXPAND_VAR that will iteratively
+ interpolate the contents of a variable, such as $sysconfdir,
+ for use in a borne script. [Aaron Bannert]
+
+ *) apr-atomic support for old-sparc's and gas on solaris
+ [Dale Ghent <da...@elemental.org>, jean-frederic clere, Ian Holsman]
+
+ *) Change apr_proc_detach to take a parameter that can enable/disable
+ automatic forking (aka, to "daemonize").
+ [Jos Backus <jo...@cncdsl.com>, Aaron Bannert]
+
+ *) Implement apr_global_lock_foo() on Win32
+ [Bill Stoddard]
+
+ *) Fix select() argument call when waiting for IO. PR 9674.
+ [David MacKenzie <dj...@pix.net>]
+
+ *) Add a new lock API (apr_global_mutex_t) to provide guaranteed
+ cross-process AND cross-thread mutual exclusion. [Aaron Bannert]
+
+ *) Note: We are in the process of deprecating the apr_lock.h API.
+ The new and improved lock/synchronization APIs now reside
+ in apr_thread_mutex.h, apr_proc_mutex.h, apr_thread_rwlock.h,
+ and apr_thread_cond.h. [Aaron Bannert]
+
+ *) Enable autoconf 2.52{f,g} build support.
+ [Blair Zajac <bl...@orcaware.com>]
+
+ *) Added new functions for atomic operations. These are experimental
+ at the moment, so use in apps is discouraged [Ian Holsman]
+
+ *) Correct serious problems with the Win32 apr_file_dup2
+ and apr_file_open_stdxxx() fns. [William Rowe]
+
+ *) Begin implementation of the WinCE port.
+ [Mladen Turk <mt...@mappingsoft.com>]
+
+ *) Disable SHMEM_MMAP_ZERO on HPUX 11.x where it is not supported.
+ Use SHMEM_SHMGET_ANON instead. [Aaron Bannert]
+
+ *) Fix a few attempts to add to a void * ptr in the Unix shared
+ memory support code. PR #9710 Per Ekman [pek@pdc.kth.se]
+
+ *) In the Linux apr_sendfile(), fix the types of some parameters
+ to apr_send() and apr_recv(). Breakage was seen in 64-bit mode
+ on s/390. PR #9712 [Neale.Ferguson@SoftwareAG-usa.coom]
+
+ *) added APR_PROGRAM_ENV and APR_PROGRAM_PATH options for starting
+ processes via apr_proc_create() [Greg Stein]
+
+ *) Deprecated apr_pool_free_blocks_num_bytes() [Sander Striker]
+
+ *) Add --enable-pool-debug to make it easier for people to
+ enable pool debug mode. Removed the APR_POOL_DEBUG_VERBOSE
+ define that was previously being used. [Sander Striker]
+
+ *) Changed the apr_file_dup2() function prototype. It can only
+ take and reuse an apr_file_t*, and will no longer create one
+ if *new_file == NULL (use apr_file_dup() for that). [Aaron Bannert]
+
+ *) Implemented name-based shared memory on Unix. [Aaron Bannert]
+
+ *) Fix spelling mistakes in APRDesign.
+ [Blair Zajac <bl...@orcaware.com>]
+
+ *) Ensure that apr_file_mktemp creates the temp file if it isn't there.
+ [John Sterling <st...@covalent.net>]
+
+ *) Make sure to pre-mark anon SysV shared memory segments as
+ removed. [Jim Jagielski]
+
+ *) Add --with-efence to allow usage of Electric Fence.
+ [Justin Erenkrantz]
+
+ *) Updated the pools debug code. Check if a pool is still
+ valid on the most common apr_pool_xxx functions.
+ Fix the way APR_POOL_DEBUG_VERBOSE was using stderr.
+ Make the output somewhat nicer in this debug mode. [Sander Striker]
+
+ *) Add new define APR_POOL_DEBUG_VERBOSE which spits out info
+ about pool creation/destruction [Ian Holsman]
+
+ *) Fix GMT offset adjustments for platforms that do not have native
+ GMT offset adjustments. [Jon Travis <jt...@covalent.net>]
+
+ *) Add new apr_shm_t API and remove old apr_shmem_t API. The new
+ API handles both anonymous and name-based shared memory. Anonymous
+ shared memory segments are only usable on systems with process
+ inheritance, and so the new API with name-based segments is
+ usable on platforms like Win32. [Aaron Bannert and William Rowe
+ with much help from Justin Erenkrantz and Sander Striker]
+
+ *) Add --with-egd to support EGD-compatible entropy gatherers for
+ those platforms without native support. [Justin Erenkrantz]
+
+ *) apr_lock_create() and apr_proc_mutex_create() now have an
+ additional parameter for specifying the lock mechanism.
+ apr_lock_create_np() and apr_proc_mutex_create_np() have been
+ removed. [Jeff Trawick]
+
+ *) Change the prototype of apr_thread_exit() so that the apr_status_t
+ is no longer a pointer. It was difficult and sometimes hazardous
+ to return a apr_status_t* at times, and this allows us to return
+ the APR_* error codes directly. [Aaron Bannert]
+
+ *) Add apr_sockaddr_equal() for comparing APR sockaddrs.
+ [Jeff Trawick]
+
+ *) Win32: apr_sendfile() should return APR_ENOTIMPL if
+ oslevel < WINNT. [Bill Stoddard]
+
+ *) Put new pools code in place which allows applications to
+ switch off locking on pools operations in case a pool is
+ guaranteed to never being used in more than one thread
+ at the same time. We've seen a significant performance
+ improvement over the old code. [Sander Striker]
+
+ *) Add apr-config - a shell script to allow third-party programs
+ easy access to APR configuration parameters. [Justin Erenkrantz]
+
+ *) Add find_apr.m4 to allow third-party programs that use APR to
+ have a standard m4 macro for detection. [Greg Stein]
+
+ *) SEGV in apr_table_overlap [Brian Pane]
+
+ *) apr_array_copy speedup by removing the zero-fill [Brian Pane]
+
+ *) Fix build breakage on systems with getaddrinfo() but not
+ gai_strerror() (e.g., RedHat 5.2). [Jeff Trawick]
+
+ *) Fix a problem in Unix apr_file_dup() which caused 0 to be returned
+ by the first read. [Stas Bekman <st...@stason.org>]
+
+ *) Fix a buglet that caused APR_FILE_BASED_SHM to be set inadvertently
+ on some platforms (e.g., Linux, AIX). [Jeff Trawick]
+
+ *) Speed up apr_table operations by using a cache/checksum and a
+ red-black tree in the overlay.
+ [Brian Pane <bp...@pacbell.net>, Cliff Woolley]
+
+ *) Speed up apr_pool_userdata_set[n] by letting hash_set figure out
+ the strings length. [Brian Pane <bp...@pacbell.net>]
+
+ *) New function apr_mmap_dup. This is called in the mmap_setaside.
+ [Brian Pane <bp...@pacbell.net>]
+
+ *) Speed up the apr_hash_t implementation's handling of APR_HASH_KEY_STRING.
+ [Brian Pane <bp...@pacbell.net>]
+
+ *) Tweak apr_gethostname() so that it detects truncation of the
+ name and returns an error. [Jeff Trawick]
+
+ *) Fix bug in Darwin DSO code. [Sander Temme]
+
+ *) Fix apr_setup_signal_thread() to grab the right error code from
+ a sigprocmask() failure. This only affects platforms that use
+ sigprocmask() in lieu of pthread_sigmask(). [Jeff Trawick]
+
+ *) Fix the Unix HAVE_POLL flavor of apr_poll_socket_mask() so that
+ it doesn't segfault. Avoid some wasted storage in a poll-related
+ APR structure. [INOUE Seiichiro <in...@ariel-networks.com>]
+
+ *) Fix apr_setup_signal_thread() so that threads don't block
+ synchronous signals (e.g., SIGSEGV). It is a programming error
+ to do so, and some platforms (e.g., Solaris, AIX) don't call any
+ registered signal handler when such signals are blocked.
+ [Jeff Trawick]
+
+ *) Change the apr_table_elts macro so that it provides access via
+ a const pointer instead of a non-const pointer.
+ [Brian Pane <bp...@pacbell.net>]
+
+ *) Use strerror_r() where available, since strerror() isn't always
+ thread-safe. Example systems where strerror() isn't thread-safe:
+ Linux+glibc, AIX [Jeff Trawick]
+
+ *) Fix some file cleanup problems in apr_proc_create() which could
+ result in the pipes for stdin/stdout/stderr being closed
+ immediately. [Jeff Trawick]
+
+ *) New functions apr_hash_[merge|copy], change to overlay fn
+ so that it calls merge, which does a inline iteration instead
+ of calling the iterator function. [Brian Pane <bp...@pacbell.net>]
+
+ *) Introduce the apr_pool_userdata_setn() variant that doesn't
+ strdup the key. Allows both the _setn() and _set() variant to
+ accept NULL for the cleanup. [Brian Pane <bp...@pacbell.net>]
+
+ *) Re-vamp the apr_proc_wait and apr_proc_wait_all functions. We
+ now return the exit code from the program and a reason that the
+ program died, either normal exit or signalled.
+ [Jeff Trawick and Ryan Bloom]
+
+ *) Implement portable accessors for proc mutex. These are equivalent
+ to apr_os_lock_get/set, but they work for apr_proc_mutex_t types
+ instead. [Aaron Bannert]
+
+ *) Added a new parameter to apr_thread_mutex_init(). Now, by default,
+ thread mutexes are not nested (sometimes called "recursive"). To
+ enable nested mutexes, a flag must be passed to the init script.
+ Non-nested mutexes are much faster than nested ones.
+ [Aaron Bannert]
+
+ *) read_with_timeout in apr/file_io/win32/readwrite.c incorrectly
+ returned APR_SUCCESS instead of APR_EOF when PeekNamedPipe failed
+ and the result from GetLastError() was ERROR_BROKEN_PIPE. Because
+ of this, the pipe wasn't closed as soon as it could be.
+ [Tim Costello <ti...@zcmgroup.com.au>]
+
+ *) Fix a problem in the Win32 pipe creation code called by
+ apr_proc_create(): It didn't register cleanups for either the
+ read or the write ends of the pipe, so file handles (and event
+ handles for pipes with asynchronous I/O mode set) are never
+ closed. [Tim Costello <ti...@zcmgroup.com.au>]
+
+ *) Add support for QNX 6. [J.T. Conklin <jt...@acorntoolworks.com>]
+
+ *) We now create exports.c and export_vars.h, which in turn create
+ exports.c. From this we generate two more files with different
+ purposes: apr.exp - list of exported symbols; and exports.lo
+ (exports.o) - an object file that can be linked with an executable
+ to force resolution of all apr symbols. [Aaron Bannert]
+
+ *) Add the apr_thread_cond_timedwait function to the condition
+ variable API. [Aaron Bannert]
+
+ *) Fixed apr_file_mktemp on systems without mkstemp (Win32, etc).
+ [Mladen Turk, Cliff Woolley]
+
+ *) Fix a segfault in apr_poll_clear on Unix. Also fix the logic
+ for the case where there are multiple events ORed together in
+ the events list. [Jamshid Mahdavi <ma...@volera.com>]
+
+ *) Files opened on Unix with the flag APR_DELONCLOSE are now
+ not unlinked until they are actually closed, rather than as
+ soon as they're opened. The old approach worked but made
+ handling temp files harder. [Cliff Woolley]
+
+ *) Fix potential segfault when closing a file on Unix. If
+ apr_file_close() was called and it failed, it would not
+ deregister the file cleanup. Therefore the cleanup would
+ be run again later on a now-invalid descriptor. [Cliff Woolley]
+
+ *) Introduce apr_pool_lock for debugging, in combination with
+ ALLOC_USE_MALLOC + DEBUG_WITH_MPROTECT. Only implemented
+ on Win32 today, very effective for debugging pool constness.
+ [William Rowe]
+
+ *) Optimize apr_pstrcat by caching lengths of first 6 strings
+ [Brian Pane <bp...@pacbell.net>]
+
+ *) Add pool accessors to the apr_thread_mutex_t datatype.
+ [Aaron Bannert <aa...@clove.org>]
+
+ *) Add the apr_file_mktemp function. This creates and opens a
+ temporary file, for use by the program. This file is created
+ delete_on_close. The initial implementation only works on
+ Unix, but Windows is coming soon. [Ryan Bloom]
+
+ *) Make the unix version of apr_proc_wait_all_procs a simple wrapper
+ around apr_proc_wait, and which extracts the exit code from the
+ status returned by waitpid.
+ [Kevin Pilch-Bisson <ke...@pilch-bisson.net>]
+
+ *) Add process locking API to APR. [Aaron Bannert <aa...@clove.org>]
+
+ *) Add condition variables for Windows. [Ryan Bloom]
+
+ *) Add condition variables to the APR set of locking functions.
+ This does Unix, and provides stubs for all other platforms.
+ [Aaron Bannert <aa...@clove.org>]
+
+ *) Don't search for IPv6 names in apr_sockaddr_info_get() if the
+ application doesn't specify the family (i.e., the application
+ passes in AF_UNSPEC) and APR isn't built with IPv6 support.
+ [Jeff Trawick]
+
+ *) Fix the API for the apr_proc_create() call on Win32. Several
+ bad assumptions are gone, including a mismatch between unix and
+ win32, where win32 was defaulting to create detached. Also fixes
+ the apr_proc_t's pid member to a real pid (identity that works
+ across processes) instead of the handle (which is a new hproc
+ member value.) [William Rowe]
+
+ *) Modify the external apr_filepath_get() fn to take a flags arg,
+ currently only for APR_FILEPATH_NATIVE. This returns c:\foo
+ format on Win32, and should do the same on OS2, or sys\vol:\foo
+ on Netware. Primarily for internals, but possibly useful to
+ others (and it mirrors some of the other apr_filepath_*() calls.)
+ [William Rowe]
+
+ *) Add the new thread read/write lock API to APR.
+ [Aaron Bannert <aa...@clove.org>]
+
+ *) Add the new thread mutex lock API to APR.
+ [Aaron Bannert <aa...@clove.org>]
+
+ *) Cache GMT offset on platforms that don't store it in the tm struct.
+ This offset is normalized to be independent of daylight savings
+ time. [Brian Pane <bp...@pacbell.net>]
+
+ *) Initial support for cygwin. [Stipe Tolj <to...@wapme-systems.de>]
+
+ *) Fix a problem with buffered files on Unix. [Brian Havard]
+
+ *) Fix the bungling of getaddrinfo() error codes. [Jeff Trawick]
+
+ *) Add an apr_thread_once function to APR. This allows a
+ program to ensure that a function is only called once.
+ [Ryan Bloom]
+
+ *) APR Documentation is now in Doxygen format.
+ [Ian Holsman]
+
+ *) Get apr_ungetc() to work with buffered files on Unix.
+ [Jeff Trawick]
+
+ *) Fixed apr_filepath_root on Unix [William Rowe, Cliff Woolley].
+
+ *) Rename XtOffset to APR_XtOffset. This namespace protection
+ is important to keep from conflicting with other packages.
+ [Perl]
+
+ *) Introduce a new --disable-ipv6 option to disable IPv6 support.
+ [Sterling Hughes <st...@designmultimedia.com>, Jeff
+ Trawick]
+
+ *) Fix the new shared memory code. We need to pass a pointer to
+ an apr_file_t to apr_file_open. Also, apr_os_file_get returns
+ a status value, not the OS file descriptor. [Ryan Bloom]
+
+ *) Fix the new shared memory configure script. The APR_DECIDE
+ macros go in order, so the last set of dependancies that are
+ met are the ones used. That means that when using those macros,
+ options should be listed with the least desirable option first,
+ and the most desirable last. The new shared memory routines did
+ the opposite, so we chose the wrong shared memory option on Linux.
+ [Ryan Bloom]
+
+ *) Move the necessary shared memory code from MM into APR and remove
+ our dependency upon MM. [Justin Erenkrantz]
+
+ *) Get apr_lock_file and apr_unlock_file working on Windows 9x.
+ [Mladen Turk, Bill Stoddard]
+
+ *) Make all APR pools be allocated out of the permanent pool.
+ This brings APR pools back to a tree structure. There are
+ no longer any way to create a pool that is not a decendant
+ of the permanent_pool. [Ryan Bloom]
+
+ *) Wrap all functions in APR_DECLARE macro.
+ [Sterling Hughes <st...@designmultimedia.com>]
+
+ *) Non-blocking connects shouldn't be calling connect a second
+ time. According to Single Unix, a non-blocking connect has
+ succeeded when the select pops successfully. It has failed
+ if the select failed. The second connect was causing 502's
+ in the httpd-proxy. [John Barbee barbee@veribox.net]
+
+ *) Fix apr_dir_rewind() for Win32 to avoid returning a bogus error.
+ [Jeff Trawick, William Rowe]
+
+ *) Detect required libraries first. This minimizes the libraries
+ needed in apr_hints.m4. [Justin Erenkrantz]
+
+ *) Support the AIX, glibc2, and Solaris variants of gethostby{name|addr}_r.
+ Use gethostbyaddr_r function when available.
+ [Sterling Hughes <st...@designmultimedia.com>]
+
+ *) Add new socket option, APR_INCOMPLETE_READ, that should be
+ set when you expect the first non-blocking read to fail with
+ EAGAIN. Setting APR_INCOMPLETE_READ prior to calling apr_read
+ will cause select() to be called first to wait for bytes
+ to read. [Brian Pane, Dean Gaudet]
+
+ *) Better installation. This makes us install the APRVARS file,
+ as well as MM. [Ryan Bloom]
+
+ *) Provide new number conversion functions apr_itoa, apr_ltoa, and
+ apr_off_t_toa, and inline code in inet_ntop4, to reduce CPU
+ consumption. [Brian Pane]
+
+ *) Updated APR to pass the thread worker_function prototype
+ (apr_thread_start_t) two parameters, the apr private data
+ (apr_thread_t*) and the application private data (void*).
+ Applications' worker_thread() routines may use apr_thread_pool_get
+ to access the pool (implemented using APR_POOL_*_ACCESSOR() macros.)
+ [Aaron Bannert <aa...@ebuilt.com>]
+
+ *) Add Solaris 8's sendfilev() support. This requires the following
+ patches from Sun: 111297 (Sparc), 111298 (x86). You'll need the
+ other patches listed in the patch description. [Justin Erenkrantz]
+
+ *) Close file descriptor when we are done with fcntl or flock-based
+ cross-process lock. Otherwise, we leak descriptors.
+ [Justin Erenkrantz]
+
+ *) Fix a possible data corruption problem with the use of getpwnam_r() on
+ all platforms where that function is used.
+ Use getpwnam_r() and getgrgid_r() instead of getpwnam() and getgrgid()
+ with threaded builds on glibc (2.1, at least) to avoid thread safety
+ issues. [Jeff Trawick]
+
+ *) Added apr_lock_tryacquire. It will attempt to acquire the lock, but
+ will not block if it can not acquire the lock. Returns APR_EBUSY if
+ acquistion can not happen. [Justin Erenkrantz]
+
+ *) Added an inherit flag to apr_socket_create and other socket creation
+ functions. This allows APR programs to specify that a socket should
+ be passed to any child processes that are created. The inherit flag
+ is only meaningful if programs use apr_process_create(). This
+ also adds a couple of macros that allow APR types to set and unset
+ the inherit flag. [Ryan Bloom]
+
+ *) apr_connect()on Windows: Handle timeouts and returning the proper
+ status code when a connect is in progress. [Bill Stoddard]
+
+ *) apr_connect() on Unix: Handle EINTR during connect(). Handle timeouts.
+ [Jeff Trawick]
+
+ *) Handle the weird case where getpwnam() returns NULL but errno is zero.
+ [Jeff Trawick]
+
+ *) Add apr_file_flags_get() which returns the flags that were originally
+ passed in to apr_file_open(). [Cliff Woolley]
+
+ *) Added APR_HAS_XTHREAD_FILES macro that indicates whether or not the
+ platform handles files opened in APR_XTHREAD mode natively. Currently
+ only Win32 has such native support. [Cliff Woolley]
+
+ *) Fix gmt offset handling on Solaris. Apache log messages now show
+ local time again. PR #7902 [Taketo Kabe <ka...@sra-tohoku.co.jp>]
+
+ *) apr_pstrcat() optimizations [Doug MacEachern, Jeff Trawick]
+
+ *) Make the apr_pool_is_ancestor logic public. This is required for
+ some new logic that is going into HTTPD. I have left the join logic
+ in that function debug only. [Ryan Bloom]
+
+ *) Clean up Win32 locks when the pool goes away.
+ [Justin Erenkrantz, Jeff Trawick]
+
+ *) Implement apr_get_home_directory for Win32. [William Rowe]
+
+ *) Complete the implementation of LARGEFILE support on Win32, although
+ the mmap semantics still need a touch of work. [William Rowe]
+
+ *) Fix the APR_XTHREAD support, and apr_sendfile mechanics, so we can
+ handle cross-threaded file handles on Win32. [William Rowe]
+
+ *) Implement APR_READWRITE locks on Unix with POSIX rwlocks.
+ Introduce new apr_lock_acquire_rw() function which takes in
+ APR_READER or APR_WRITER. [Justin Erenkrantz]
+
+ *) Add apr_open_stdin. This mirrors apr_open_stderr, except it works
+ on stdin. [Aaron Bannert <ab...@ebuilt.com>]
+
+ *) Add apr_strtok(), a thread-safe flavor of strtok() which has the
+ same interface as strtok_r(). [Jeff Trawick]
+
+ *) Add other child support to Win32 [Bill Stoddard]
+
+ *) Other-child registrations are automatically removed when the
+ associated pool is destroyed. This avoids garbage in the list
+ of registrations when a pool with a registration is freed.
+ [Jeff Trawick]
+
+ *) Allow LTFLAGS to be overridden by the configure command-line
+ (default="--silent") and introduce LT_LDFLAGS. [Roy Fielding]
+
+ *) Add memory code kindly donated to APR by
+ Elrond <el...@samba-tng.org>
+ Luke Kenneth Casson Leighton <lk...@samba-tng.org>
+ Sander Striker <st...@samba-tng.org>
+ [David Reid]
+
+ *) Fix a problem with the FreeBSD flavor of apr_sendfile() where we
+ could return APR_EAGAIN+bytes_sent. [Jeff Trawick]
+
+ *) Fix a problem on unixware where clearing h_errno wouldn't work.
+ Use set_h_errno() instead. PR #7651 [Jeff Trawick]
+
+ *) Add the test and build directories (when present) to the recursive
+ make process, being sure that they are run last. test is only done
+ recursively for make *clean targets. [Roy Fielding]
+
+ *) Make the apr_mmap_create() function use the native_flags variable.
+ This allows us to actually create WRITEABLE MMAPs.
+ [Ed Korthof <ed...@apache.org>]
+
+ *) Completely revamp configure so that it preserves the standard make
+ variables CPPFLAGS, CFLAGS, CXXFLAGS, LDFLAGS and LIBS by moving
+ the configure additions to EXTRA_* variables. Also, allow the user
+ to specify NOTEST_* values for all of the above, which eliminates the
+ need for THREAD_CPPFLAGS, THREAD_CFLAGS, and OPTIM. Fix the setting
+ of INCLUDES and EXTRA_INCLUDES. Check flags as they are added to
+ avoid pointless duplications. Fix the order in which flags are given
+ on the compile and link lines. [Roy Fielding]
+
+ *) Fix DSO code on HP/UX. We have to use == not =, and it makes more
[... 377 lines stripped ...]