From 0a489e13605df27bbbd65ba62b0c5a1fdd5434a5 Mon Sep 17 00:00:00 2001 From: jim Date: Fri, 25 Sep 2009 21:22:20 +0000 Subject: Changes reflect major/minor related changes. Provide links to other versions. git-svn-id: http://svn.apache.org/repos/asf/apr/apr/branches/1.0.x@819018 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES | 1667 +-------------------------------------------------------------- 1 file changed, 2 insertions(+), 1665 deletions(-) diff --git a/CHANGES b/CHANGES index 66816ed18..1d8683a0a 100644 --- a/CHANGES +++ b/CHANGES @@ -212,1670 +212,7 @@ Changes with APR 1.0 apr_compat.h -Changes with APR 0.9.5 - *) Fix apr_snprintf() to respect precision for small floating point - numbers. PR 29621. [Artur Zaprzala ] +Changes for APR 0.9.x and later/earlier: - *) 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 ] - - *) Support setuid, setgid and sticky file permissions bits on Unix. - [André Malo] - - *) Fix sign error in apr_file_seek(APR_END). - [Greg Hudson ] - - *) 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 ] - - *) 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 ] - - *) 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 , William Rowe] - - *) Work around a bug in Darwin when calling getnameinfo() on IPv4-mapped - IPv6-addresses. [Colm MacCárthaigh , Jeff Trawick, - Justin Erenkrantz] - - *) Add apr_temp_dir_get() for getting the most suitable temp directory - [Mike Pilato , 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 , 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 , 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 , 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 ] - - *) Added flag APR_FILE_ATTR_HIDDEN for manipulating the "hidden" - file attribute on Windows and OS/2. [Branko Cibej] - - *) 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 and was researched and - fixed by Joe Orton . 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 ] - - *) 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 ] - - *) 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 - , 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 ] - -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 , 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 Cibej] - - *) 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 , 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 Cibej] - - *) 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 Cibej] - - *) 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 , Garrett Rooney - , 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 Cibej] - - *) 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 ] - - *) 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 ] - - *) Fix the detection of INT64_C() when defined in . - [Joe Orton ] - - *) 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 ] - - *) 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 , Jeff Trawick] - - *) Support for SCO OpenServer Release 5 [Kean Johnston ] - - *) 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 ] - - *) 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 ] - - *) handle leak related to threads on Windows2000/XP - [INOUE Seiichiro ] - - *) 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 , Ian Holsman] - - *) Added apr_strtoll() and apr_atoll() to strings lib. - [Shantonu Sen , 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 ] - - *) 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 ] - - *) 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 , 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 ] - - *) 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 ] - - *) 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= 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 ] - - *) 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 ] - - *) 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 , - Jim Jagielski] - - *) Rename apr_get_groupname to apr_group_name_get. - [Thom May ] - - *) 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 ] - - *) Ensure that the ATOMIC_HASH can not be negative. - [Joe Orton ] - - *) Fix a problem with eof reporting with Unix file I/O on - unbuffered files. [Stas Bekman ] - - *) Rename apr_explode_time to apr_time_exp_tz. - [Thom May ] - - *) Rename apr_explode_localtime to apr_time_exp_lt. - [Thom May ] - - *) 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 ] - - *) Load libraries if they not MH_BUNDLE, but if they are not, it - just attempts to link them as shared libs. - [Pier Fumagalli ] - - *) 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 ] - - *) 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 ] - - *) 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 , jean-frederic clere, Ian Holsman] - - *) Change apr_proc_detach to take a parameter that can enable/disable - automatic forking (aka, to "daemonize"). - [Jos Backus , Aaron Bannert] - - *) Implement apr_global_lock_foo() on Win32 - [Bill Stoddard] - - *) Fix select() argument call when waiting for IO. PR 9674. - [David MacKenzie ] - - *) 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 ] - - *) 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 ] - - *) 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 ] - - *) Ensure that apr_file_mktemp creates the temp file if it isn't there. - [John Sterling ] - - *) 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 ] - - *) 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 ] - - *) 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 , Cliff Woolley] - - *) Speed up apr_pool_userdata_set[n] by letting hash_set figure out - the strings length. [Brian Pane ] - - *) New function apr_mmap_dup. This is called in the mmap_setaside. - [Brian Pane ] - - *) Speed up the apr_hash_t implementation's handling of APR_HASH_KEY_STRING. - [Brian Pane ] - - *) 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 ] - - *) 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 ] - - *) 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 ] - - *) 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 ] - - *) 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 ] - - *) 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 ] - - *) Add support for QNX 6. [J.T. Conklin ] - - *) 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 ] - - *) 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 ] - - *) Add pool accessors to the apr_thread_mutex_t datatype. - [Aaron Bannert ] - - *) 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 ] - - *) Add process locking API to APR. [Aaron Bannert ] - - *) 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 ] - - *) 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 ] - - *) Add the new thread mutex lock API to APR. - [Aaron Bannert ] - - *) 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 ] - - *) Initial support for cygwin. [Stipe Tolj ] - - *) 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 , 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 ] - - *) 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 ] - - *) 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 ] - - *) 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 ] - - *) 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 ] - - *) 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 - Luke Kenneth Casson Leighton - Sander Striker - [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 ] - - *) 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 - sense to actually return errno, so that the return code means - something. [Ryan Bloom] - - *) Clean up conditionals in unix DSO code so that we decide based on - the dynamic loading implementation, which we noticed at configure - time, instead of by operating system. - [Wilfredo Sanchez] - - *) Add DSO support for dyld platforms (Darwin/Mac OS and OpenStep). - [Wilfredo Sanchez] - - *) Amend the time code to better deal with time zones. - [David Reid] - - *) Carefully select an appropriate native type for apr_int64_t and - define its format as APR_INT64_T_FMT and literal using APR_INT64_C(). - [Justin Erenkrantz, William Rowe] - - *) Make clean, distclean, and extraclean consistently according to the - Gnu makefile guidelines. [Justin Erenkrantz ] - - *) Initial implementation of of apr_filepath (get/set/parse_root and - merge) for Windows. [William Rowe] - - *) Cleaned up implementation of of apr_filepath (get/set/parse_root - and merge) for Unix. [Greg Stein, William Rowe] - - *) Fixup the --enable-libtool option. This allows the test directory - to compile again. The test directory still doesn't work when - APR is configured without libtool. [Ryan Bloom] - - *) If we don't have sigwait() in the system, see if sigsuspend() is - available, and use that instead. [Wilfredo Sanchez] - - *) Make libtool optional at configure time. This is done with - --disable-libtool. [Ryan Bloom] - - *) Recognize systems where the TCP_NODELAY setting is inherited from - the listening socket, and optimize apr_setsockopt(APR_TCP_NODELAY) - accordingly. [Jeff Trawick] - - *) Recognize the presence of getnameinfo() on Tru64. [David Reid] - - *) Allow APR to be installed. [Ryan Bloom] - - *) Generate config.nice for easy re-run of configure. [Roy Fielding] - - *) Define preprocessor flags in CPPFLAGS instead of CFLAGS and - bring some sanity to the compiler command-lines. [Roy Fielding] - - *) Use the dso/aix subdirectory for older versions of AIX and fix - a number of bugs in the dso code in that directory. - [Victor Orlikowski] - - *) Allow libtool 1.3b to be used. [Victor Orlikowski] - - *) Misc. Win32 fixes: Set the pool pointer in apr_sockaddr_t - structures created with the apr_socket_t to prevent segfault - in certain apps. Flush unwritten buffered data when the file - is closed. [Jeff Trawick] - - *) Win32: Get APR to compile with MSVC 5.0 (a.k.a. VC97). - PR #7489 [Jeff Trawick] - - *) First draft implementation of apr_filepath (get/set/parse_root - and merge) for Unix. [William Rowe] - - *) Add apr_ipsubnet_create() and apr_ipsubnet_test() for testing - whether or not an address is within a subnet. [Jeff Trawick] - - *) Add apr_sendto and apr_recvfrom for Unix. Start of adding UDP - support. [David Reid] - - *) Add a method to get the password from the system for a given - user. [John Barbee ] - - *) Change the include path order, so that we look for included files - in the APR paths first, and the system paths second. - [jean-frederic clere ] - - *) Add a with-sendfile option, so that people on platforms without a - sendfile implementation for APR can easily disable it from the - configure line. [Ryan Bloom] - - *) Change the check for netinet/tcp.h to work around an issue with - that header file on IRIX 6.5 which prevented it from being - detected. PR #6459 [Jeff Trawick] - - *) Introduce apr_get_userid to return a named user's apr_uid_t and - apr_gid_t across platforms [Cliff Woolley, William Rowe] - - *) In apr_shm_init(), check the retcode from mm_malloc(). Previously, - we segfaulted here if mm_malloc() failed to get a lock. An example - error scenario is when the lock file lives on a filesystem which - doesn't support locking. [Jeff Trawick] - - *) Name protected the autoconf macros defined by APR. Moved the - REENTRANCY_FLAGS settings into apr_hints.m4. Inlined the - APR_PREPARE_MM_DIR macro because it could only be used once. - Removed the unused macros MY_TRY_RUN, MY_TRY_RUN_NATIVE, and - AC_USE_FUNCTION. Added some macro comments. [Roy Fielding] - - *) Cope with BSDi installations where the default make has been - replaced with GNU make. [Joe Orton ] - - *) Changed apr/helpers to apr/build to be consistent with other Apache - source trees. Added make variables to rules.mk.in that point to the - builders directory and its scripts. Updated buildconf, configure.in, - and Makefile.in files to create and use the new scripts. Moved scandoc - to scandoc.pl and its default.pl template to scandoc_template.pl. - [Roy Fielding] - - *) Updated config.guess and config.sub to GNU libtool 1.3.5 features, - with the Apache additions for OS/390 and OS/2 emx. [Roy Fielding] - - *) Moved hints.m4, apr_common.m4, and helpers/apr-conf.m4 into the - new build directory as apr_hints.m4, apr_common.m4, apr_network.m4, - and apr_threads.m4. [Roy Fielding] - - *) Get apr_sendfile() working on HP-UX. This gets APR to build on - HP-UX without having to turn off APR_HAS_SENDFILE. [Jeff Trawick] - - *) Force FreeBSD to compile without threads by default. To enable - threads, use --enable-threads on the configure line. - [Ryan Bloom] - - *) Purge system password buffer before returning from apr_password_get. - No longer abuses bufsize argument on return. [William Rowe] - - *) Moved the prototypes for apr_snprintf and apr_vsnprintf to the - apr_strings.h header, from apr_lib.h. This location makes more - sense. [Ryan Bloom] - - *) Added the APR_TRY_COMPILE_NO_WARNING configure macro for testing a - compile with -Werror as well as the APR_CHECK_ICONV_INBUF macro to - test for annoying iconv prototype differences. - [Jeff Trawick, Roy Fielding] - - *) Fix a problem with configure on NetBSD. We must include sys/types.h - for some platforms. [jun-ichiro hagino ] - - *) Some fixes in the Win32 time support. - (IsLeapYear): New macro for quickly figgerin' out if a given year is a - leap year. (SystemTimeToAprExpTime): Perform the calculation of - tm_yday. Also, negate the sign of the tm_gmtoff field to be - consistent with Unix platforms and APR header file comments. - [Mike Pilato] - - *) Implement WinNT Unix'ish permissions. [William Rowe] - - *) Corrected an OS2'ism of apr_get_home_directory. OS2 now returns the - proper directory, including the user's name. - - *) Removed private os2errno.h and integrated the OS2 network error codes - into apr_errno.h for optimized error tests (APR_STATUS_IS_EFOO(rv)). - [William Rowe] - - *) Moved inclusion of header from multiple modules into apr.h - [William Rowe] - - *) Added apr_compare_users() and apr_compare_groups() for more complex - apr_uid_t and apr_gid_t structures. Enabled both .user and .group - results from WinNT/2000 stat/getfileinfo, but expect to find that - .group is 'None' in most cases. [William Rowe] - - *) Replace configure --with-optim option by using the environment - variable OPTIM instead. This is needed because configure options - do not support multiple flags separated by spaces. [Roy Fielding] - - *) Eliminate the APR_SIG* aliases for standard signal names, - since they serve no useful purpose. [Roy Fielding] - - *) Abstracted apr_get_username and apr_get_groupname for unix and win32. - Modified Win32 apr_uid_t and apr_gid_t to use PSIDs, and elimintated - the uid_t and gid_t definitions. [William Rowe] - - *) Radically refactored apr_stat/lstat/getfileinfo/dir_read for Win32 - to assure we are retrieving what we expect to retrieve, and reporting - the correct result (APR_SUCCESS or APR_INCOMPLETE). The potential - for a bit more optimization still remains. [William Rowe] - - *) While we have the future opportunity to cache the apr_stat'ed file - handle for a very fast open (dup handle) on Win32, patched to close - that file after a stat always. Needs a new semantic before we leave - handles dangling when the user intends to rm. [William Rowe] - - *) Correct Win32 apr_stat/lstat/getfileinfo/dir_read to all zero out - the finfo buffer on success (or incomplete success). [William Rowe] - - *) Fix Win32/Unix apr_lstat to throw the .valid bit APR_FINFO_LINK to - indicate we attempted to open the link. Only the .filetype APR_LNK - reflects if the file found was, in fact, a link. [William Rowe] - - *) Fixed apr_open and apr_rename to function on Win9x. - [Mike Pilato ] - - *) Add apr_open_stdout. This mirrors apr_open_stderr, except it works - on stdout. [Mike Pilato ] - - *) Fix bug in file_io/unix/dir.c. There is no such thing as a dirent, - it must be a struct dirent. - [Kevin Pilch-Bisson ] - - *) Fix the configure script so that we can build from a different - directory. [Kevin Pilch-Bisson ] - - *) Introduce the wanted flag argument to the apr_stat/lstat/getfileinfo - family of functions. This change allows the user to determine what - platform-specific file information is retrieved, to optimize both - portability and performance. [William Rowe] - - *) Fix make depend. [Ryan Bloom] - - *) All dso implementations now register a cleanup to unload the DSO - when it is loaded. If the pool is removed, we really do need to - remove the DSO. In the past, different platforms behaved differently - it this respect. [Ryan Bloom] - - *) Add linkage declarations to the DSO code. - [Gregory Nicholls ] - - *) Some adjustment of hints.m4 setting flags (used to check if null - first) and added some verbosity. [Jim Jagielski] - - *) Specify APR_DECLARE to some of the APR functions. This helps linking - on some operating systems. [Gregory Nicholls ] - - *) Libtool'ized APR and converted all the makefiles to share rules - from helpers/rules.mk. [Greg Stein] - - *) Remove a warning on FreeBSD. FreeBSD defines TCP_NO_PUSH, but we - don't actually use it. This causes os_cork to be defined but not - used. This patch keeps us from defining os_cork and os_uncork on - FreeBSD. [Ryan Bloom] - - *) Keep apr_terminate from seg faulting on terminate. This is - happening on systems that do not NULL out locks when they are - destroyed. To keep this from happening, we set the locks to - NULL after destroying them in apr_terminate, and we have to - check for NULL in free_blocks. - [Allan Edwards and Gregory Nicholls ] - - *) Remove the ability to allocate memory out of a NULL pool. - [Ryan Bloom] - - *) Add an APR_GET_POOL macro to get a pool from any APR type that has - a pool. This requires that ALL apr types put the pool as the first - field in their structure. [Ryan Bloom] - - *) Begin to remove the ability to allocate out of NULL pools. The first - problem to solve, is that we need an apr_lock in order to allocate - pools, so that we can lock things out when allocating. So, how do we - allocate locks without a pool to allocate from? The answer is to create - a global_apr_pool, which is a bootstrapping pool. There should NEVER - be a sub-pool off this pool, and it is static to an APR file. This is - only used to allow us to allocate the locks cleanly, without using the - NULL pool hack. [Ryan Bloom] - - *) Fix a logic error in the poll code when implemented using select. - [Nick Caruso ] - - *) FreeBSD does not support sendfile() in combination with threads - before version 4.2. We no longer even try to support it. - [Ryan Bloom] - - *) On FreeBSD, it is possible for the first call to sendfile to - get EAGAIN, but still send some data. This means that we cannot - call sendfile and then check for EAGAIN, and then wait and call - sendfile again. If we do that, then we are likely to send the - first chunk of data twice, once in the first call and once in the - second. If we are using a timed write, then we check to make sure - we can send data before trying to send it. [Ryan Bloom] - - *) Cleanup to help Apache support programs build cleanly. - [Cliff Woolley ] - - *) Cleanup some compiler warnings on Solaris - [Dale Ghent ] - - *) apr_getaddrinfo() can now return multiple addresses for a host - via the next field in apr_sockaddr_t. [Jeff Trawick] - - *) Tighten up the check for getaddrinfo(). If it can't figure out - the appropriate address family for 127.0.0.1, it fails. - Unfortunately, Tru64 fails this test so we won't do IPv6 on - Tru64. [Jeff Trawick] - - *) Rename apr_opendir to apr_dir_open. [Ryan Bloom] - - *) apr_snprintf()'s %pI format string now takes apr_sockaddr_t * - instead of sockaddr_in *. [Jeff Trawick] - - *) Fix a bug in apr_accept() for Win32 and Unix where the local - apr_sockaddr_t in the new connected socket was not initialized - properly. This could result in a bad string for apr_get_ipaddr(), - among other things. [Jeff Trawick] - - *) Add apr_getnameinfo(), a replacement for apr_get_hostname() which - supports IPv6 and will be friendlier for use with eventual - SOCK_DGRAM support. apr_get_hostname() is gone. [Jeff Trawick] - - -Changes with APR a9 - - *) Removed the iconv implementation from the i18n/unix/iconv branch. - This now resides in the apr-iconv repository, and will be ported - over time to use native apr types (e.g. apr_dso) for portability. - - *) Only support IPv6 if we have sockaddr_in and a working - getaddrinfo(). [Jeff Trawick] - - *) Add apr_parse_addr_port() for parsing the hostname:port portion - of URLs and similar strings. [Jeff Trawick] - - *) Add Win32 MMAP support [William Rowe] - - *) Allow the APR programmer to specify if the MMAP is read-only or - write-able. - [Ryan Bloom and Will Rowe] - - *) Check more carefully for getaddrinfo(). Accept those that - require to be included (e.g., Tru64). Reject those that - fail a very basic operational test (e.g., AIX). [Jeff Trawick] - - *) Add apr_make_os_sock() for constructing a fully-capable APR - socket. [Jeff Trawick] - - *) Make APR's shared memory routines always allocate enough memory - for the requested segment, the MM internal types, and the APR - internal types. - [Ryan Bloom] - - *) Add APR_SIZE_T_FMT. Get the other APR_xx_T_FMT variables - defined properly on AIX. [Jeff Trawick] - - *) network API changes: get rid of apr_get_socket_inaddr(), - apr_get_remote_name(), and apr_get_local_name() [Jeff Trawick] - - *) Add a step at configure time to create a file at the top-level, - apr.exports, which lists every function exported by APR. The - file is generated by a script in helpers, that reads each header - file. - [Ryan Bloom] - - *) Lock config changes: Detect SysV sem capability by the presence of - sempaphore functions, not by the presence of union semun. New - config variable apr_lock_method can override autodetection of the - apr_lock implementation method. For now, hints.m4 uses it to select - SysV semaphores for OS/390. New config variable - apr_process_lock_is_global specifies that the selected inter-process - lock method is sufficient for APR_LOCKALL (i.e., it blocks all - threads and processes). For now, hints.m4 turns on this flag for - OS/390. [Jeff Trawick] - - *) Get APR_OFF_T_FMT defined properly on Solaris Sparc. - [Jeff Trawick] - - -Changes with APR a8 - - *) Change the name of the sa_len field in apr_sockaddr_t to salen. - Some platforms have a macro named sa_len. - [Tony Finch] - - *) apr_set_port(), apr_get_port(), apr_set_ipaddr(), and apr_get_ipaddr() - now take apr_sockaddr_t as a parameter instead of apr_socket_t + - apr_interface_e. This will allow the same routines to be used with - datagram APIs to be added later. Note that code which calls - apr_set_ipaddr() should probably be changed to call apr_getaddrinfo() - for protocol independence. [Jeff Trawick] - - *) apr_create_tcp_socket() has been removed. Use apr_create_socket() - instead. [Jeff Trawick] - - *) Source was moved from the apache-2.0 repository. For all CHANGES - prior to this time, please see the apache-2.0 repository + *) http://svn.apache.org/viewvc/apr/apr/branches/0.9.x/CHANGES?view=markup -- cgit v1.2.1