2 Changes with APR 0.9.19
4 *) SECURITY: CVE-2009-2412 (cve.mitre.org)
5 Fix overflow in pools and rmm, where size alignment was taking place.
6 [Matt Lewis <mattlewis@google.com>, Sander Striker, William Rowe]
8 *) Improve platform detection by updating config.guess and config.sub.
11 Changes with APR 0.9.18
13 *) z/OS: return standard apr_status_t codes from apr_dso_load()
14 and apr_dso_sym(). [David Jones <oscaremma gmail.com>]
16 *) Fix apr_tokenize_to_argv parsing. PR 46128
17 [Edward Rudd <eddie omegaware.com>]
19 Changes with APR 0.9.17
21 *) Fix DSO-related crash on z/OS caused by incorrect memory
22 allocation. [David Jones <oscaremma gmail.com>]
24 *) Define apr_ino_t in such a way that it doesn't change definition
25 based on the library consumer's -D'efines to the filesystem.
26 [Lucian Adrian Grijincu <lucian.grijincu gmail.com>]
28 *) Cause apr_file_dup2() on Win32 to update the MSVCRT psuedo-stdio
29 handles for fd-based and FILE * based I/O. [William Rowe]
31 *) Revert Win32 to the 0.9.14 behavior of apr_proc_create() for any
32 of the three stdio streams which are not initialized, through either
33 apr_procattr_io_set() or apr_procattr_child_XXX_set(), when given a
34 procattr_t with one or two streams which were initialized through
35 apr_procattr_child_XXX_set(). Once again, these do not inherit the
36 parent process stdio stream to WIN32 child processes (passing
37 INVALID_HANDLE_VALUE instead) as on Unix. Note APR 1.3.0 adopts
38 the Unix behavior of inheriting any uninitialized streams as the
39 parent's corresponding stdio stream, in such cases. [William Rowe]
41 Changes with APR 0.9.16
43 *) Win32 apr_file_read: Correctly handle completion-based read-to-EOF.
44 [Steven Naim <steven.naim googlemail.com>]
46 *) Fixed Win32 regression of StdOutput inheritance in apr_proc_create.
49 Changes with APR 0.9.15
51 *) Solve WinNT inherited pipe leaks by mutexing apr_proc_create calls,
52 on WinNT (not WinCE, nor 9x) so that we toggle the inherited state
53 of the stdin/out/err pipes. All other file handles are treated as
54 not-inherited until apr_file_dup2'ed a std handle of this process,
55 or while they are used by apr_proc_create. [William Rowe]
57 *) Define the Mac OS/X filesystem_encoding as utf-8 (in previous
58 releases the interpretation would vary). [Branko Čibej]
60 *) Fix day of year (tm_day) calculation for July. The bug only affects
61 Windows builds. PR 42953. [Davi Arnaut]
63 Changes with APR 0.9.14
65 *) Register a cleanup only if APR_FILE_NOCLEANUP was not flagged in
66 apr_file_mktemp. [Brian J. France <list firehawksystems.com>]
68 *) Numerous build fixes for non-GCC builds and GCC builds on Win32,
69 as well as WinCE builds. [Davi Arnaut <davi haxent.com.br>,
70 Curt Arnold <carnold apache.org>, John Mark Vandenberg,
71 Kouhei Sutou <kou cozmixng.org>, William Rowe]
73 *) Discard file buffers when running cleanups for exec.
74 PR 41119. [Davi Arnaut <davi haxent.com.br>, Bojan Smojver]
76 *) Improve thread safety of assorted file_io functions.
77 PR 42400. [Davi Arnaut <davi haxent.com.br>]
79 *) Fix file pointer position calculation in apr_file_writev() on
80 buffered file. PR 40963. [Davi Arnaut <davi haxent.com.br>]
82 Changes with APR 0.9.13
84 *) Fix detection of pthread cross-process robust mutexes.
85 PR 39833. [Tsuyoshi SASAMOTO <nazonazo miobox.jp>]
87 *) Correctly retrieve 'empty' environment values with apr_env_get
88 on Win32 (e.g. "VAR="), and added validation to testall suite.
89 PR 40764. [Issac Goldstand <margol beamartyr.net>]
91 *) Portably check for EEXIST in mktemp code. PR 40818
92 [Kenneth Golomb <KGolomb TradeCard.com>]
94 *) Fix apr_atomic_cas on platforms with 64 bit longs.
95 [Philip Martin <philip codematters.co.uk>]
97 *) Provide folding in autogenerated .manifest files for Win32 builders
98 using VisualStudio 2005 [William Rowe]
100 Changes with APR 0.9.12
102 *) Netware - add missing apu_version.c parsing for apu_version_string()
103 to the Netware specific builds. Unix platforms supporte this API
104 since 0.9.1. [Brad Nicholes]
106 Changes with APR 0.9.11
108 *) Synced get-version.sh to trunk to correctly retrieve 2 digit subversion,
109 which broke the 0.9.10 candidate. [William Rowe]
111 *) Fixed 'make check' target to avoid invoking sub-programs of testshm,
112 testshmconsumer and testshmproducer. [William Rowe]
114 *) Permit Win32 to seek to the point 2^32-1, by checking that result
115 against the actual error and continuing on success. [William Rowe]
117 Changes with APR 0.9.10
119 *) Minor bug fixes to address various platform build and run time issues.
121 *) Permit 'make check' binaries to run on Darwin by omitting -no-install
122 flag [William Rowe, Joe Orton]
124 Changes with APR 0.9.9
126 *) Prevent detection of robust mutex support with glibc 2.4,
127 fixing APR_LOCK_PROC_PTHREAD locks. PR 38442. [Joe Orton]
129 *) Fix apr_strerror() with glibc 2.4. [Joe Orton]
131 *) Install mkdir.sh, make_exports.awk, make_var_export.awk to the APR
132 installbuilddir, and provide working accessor variables in
136 *) Fix seeks with files opened in xthread mode for append on win32.
137 [M Joonas Pihlaja <jpihlaja cc.helsinki.fi>, Garrett Rooney]
139 *) Keep testpipe.c from hanging on win32. [Garrett Rooney]
141 *) Cause apr_file_write_full on win32 to consider the timeout value set by
142 apr_file_pipe_timeout_set. PR 30182
145 *) Fix assertion from double close of a handle with a rwlock on win32.
146 [Evgueni Brevnov <evgueni.brevnov gmail.com>]
148 *) Fix EOF handling for unbuffered reads on win32.
149 [Konstantin Sharenkov <Konstantin.Sharenkov enterra-inc.com>]
151 *) Documented that apr_stat and apr_dir_read can return APR_INCOMPLETE,
152 and how to determine which parts of the resulting apr_finfo_t can be
156 *) Fix passing "" as an argument to the program started by apr_proc_create
158 [Philip Martin <philip codematters.co.uk>
160 *) Fix warning when compiling on FreeBSD by correcting the type of
161 the final argument passed to sysctlbyname. [Garrett Rooney]
163 Changes with APR 0.9.7
165 *) Fix crash in apr_dir_make_recursive() for relative path
166 when the working directory has been deleted. [Joe Orton]
168 *) Win32: fix apr_proc_mutex_trylock() to handle WAIT_TIMEOUT,
169 returning APR_EBUSY. [Ronen Mizrahi <ronen@tversity.com>]
171 *) Fix apr_file_read() to catch write failures when flushing pending
172 writes for a buffered file. [Joe Orton]
174 *) Fix apr_file_write() infinite loop on write failure for buffered
175 files. [Erik Huelsmann <ehuels gmail.com>]
177 *) Fix error handling where apr_uid_* and apr_gid_* could segfault
178 or return APR_SUCCESS in failure cases. PR 34053. [Joe Orton,
181 *) Refactor Win32 condition variables code to address bugs 27654, 34336.
182 [Henry Jen <henryjen ztune.net>, E Holyat <eholyat yahoo.com>]
184 *) Support APR_SO_SNDBUF and APR_SO_RCVBUF on Windows. PR 32177.
185 [Sim <sgobbi datamanagement.it>, Jeff Trawick]
187 *) Fix detection of rwlocks on Mac OS X. [Aaron Bannert]
189 *) Fix issue with poll() followed by net I/O yielding EAGAIN on
190 Mac OS 10.4 (Darwin 8). [Wilfredo Sanchez]
192 Changes with APR 0.9.6
194 *) Add apr_threadattr_stacksize_set() for overriding the default
195 stack size for threads created by apr_thread_create().
198 *) Add an RPM spec file. [Graham Leggett]
200 *) Add a build script to create a solaris package. [Graham Leggett]
202 Changes with APR 0.9.5
204 *) Prevent unbounded memory use during repeated operations on a hash table.
205 [Julian Foad <julianfoad btopenworld.com>
207 *) fix apr_file_dup and apr_file_dup2 win32 implementations
208 to create a mutex [Steve Hay <steve.hay uk.radan.com>]
210 *) Makes the threads to behave like on posix. If the thread is created
211 without APR_DETACH expect that the thread_join will be called, so don't
212 close the handle in advance, if the thread has already finished.
215 *) The apr/test/Makefile.win is missing a target to build a
216 readchild.exe that test is depending on but is never built.
219 *) Fix build issues in paths containing symlinks. PR 8867.
222 *) Update config.{guess,sub} for DragonFly BSD. PR 29858.
225 *) Win32: Fix bug in apr_socket_sendfile that interferred with
226 Win32 LSPs. Bug is described in Apache 2.0 bugzilla report
227 23982 [Jan Bilek, Bill Stoddard]
229 *) apr_proc_create() on Unix: Remove unnecessary check for read
230 access to the working directory of the child process.
231 PR 30137. [Jeremy Chadwick <apache jdc.parodius.com>]
233 *) Win32: Fix bug tracking the file pointer on a file opened for
234 overlapped/APR_XTHREAD io. [Bill Stoddard]
236 *) Fix FreeBSD atomics. [Paul Querna <chip force-elite.com>]
238 *) Fix apr_snprintf() to respect precision for small floating point
239 numbers. PR 29621. [Artur Zaprzala <zybi talex.pl>]
241 *) Add command type APR_SHELLCMD_ENV for creating a process
242 which is started by the shell and which inherits the parent's
243 environment variables. [Jeff Trawick]
245 *) Change default inter-process locking mechanisms: POSIX semaphores
246 and pthread cross-process mutexes are not used by default; on
247 Solaris, fcntl locks are used by default. [Joe Orton]
249 *) Don't try to enable run-time linking on AIX < 4.2, as this
250 results in invalid linker options being used. PR 29170.
253 *) Remove apr_file_copy()'s 2Gb file size limit on some platforms.
256 *) Don't assume getnameinfo() can handle IPv4-mapped IPv6 addresses
258 [Jeff Trawick, Joe Orton, Colm MacCárthaigh <colm stdlib.net>]
260 *) Support setuid, setgid and sticky file permissions bits on Unix.
263 *) Fix sign error in apr_file_seek(APR_END).
264 [Greg Hudson <ghudson MIT.EDU>]
266 *) Provide workaround for socklen_t declaration problem with 64-bit
267 build on HP-UX. Stop setting a PA-RISC-specific compile option
268 on ia64. Look for -mt thread option, which is used with HP-UX
269 vendor compiler on ia64. [Jeff Trawick, based on idea from
270 Madhusudan Mathihalli]
272 *) Return an error instead of silently failing when apr_poll() is
273 used with file descriptors >= FD_SETSIZE. (Unix systems with
274 no native poll()) [Jeff Trawick, Brad Nicholes]
276 *) Fix handling of negative numbers in apr_strtoi64() on platforms
277 without strtoll. [Joe Orton]
279 *) Fix printing apr_int64_t values smaller than LONG_MIN on 32-bit
280 platforms in apr_vformatter. [Joe Orton]
282 *) Fix apr_socket_opt_set with APR_IPV6_V6ONLY flag. Fixes httpd
283 Listen IPv6 socket behavior on FreeBSD 5.x, OpenBSD, NetBSD.
286 *) Fix apr_time_exp_get() for dates in 2038.
287 [Philip Martin <philip codematters.co.uk>]
289 *) Add APR_LARGEFILE flag to allow opening files with the
290 O_LARGEFILE flag; not recommended for general use, see
291 include/apr_file_io.h. [Joe Orton]
293 *) Various build fixes: thread_rwlock.c on some Solaris platforms
294 (PR 22990); filestat.c on ReliantUnix (PR 22990); config.status
295 on IRIX (PR 19251). [Various]
297 *) Use NI_NAMEREQD instead of NI_NUMERICHOST in
298 APR_CHECK_GETNAMEINFO_IPV4_MAPPED. PR 24469. [Justin Erenkrantz]
300 *) Ensure that apr_sockaddr_info_get() does not return anything
301 other than AF_INET and AF_INET6 addresses. [Joe Orton]
303 *) Clarify that apr_dir_read() does not guarantee order of returned
304 entries as previously claimed. [Joe Orton]
306 *) The whole codebase was relicensed and is now available under
307 the Apache License, Version 2.0 (http://www.apache.org/licenses).
308 [Apache Software Foundation]
310 *) Define apr_off_t as long rather than as off_t on platforms with a
311 32-bit off_t to prevent incompatibility with packages such as
312 Perl which redefine the size of off_t via _FILE_OFFSET_BITS on
313 some platforms. [Ben Reser <ben reser.org>]
315 *) apr_socket_connect(): allow app to make subsequent call on
316 non-blocking socket. [Jeff Trawick]
318 *) Add apr_os_pipe_put_ex(), which allows the caller to tell APR
319 to establish a cleanup on the pipe. [Jeff Trawick, Brad Nicholes]
321 *) Fix make_exports.awk to work with apr-iconv. [Justin Erenkrantz]
323 Changes with APR 0.9.4
325 *) win32: fix apr_file_dup() and apr_file_dup2() to dup the
326 ungetchar member [Stas Bekman]
328 *) Preserve leading '../' segments as when merging to an empty and
329 unrooted path - fixes a bug observed in SVN with Win32/Netware/OS2.
330 [Mike Pilato <cmpilato@collab.net>, William Rowe]
332 *) Work around a bug in Darwin when calling getnameinfo() on IPv4-mapped
333 IPv6-addresses. [Colm MacCárthaigh <colm@stdlib.net>, Jeff Trawick,
336 *) Add apr_temp_dir_get() for getting the most suitable temp directory
337 [Mike Pilato <cmpilato@collab.net>, Thom May]
339 *) Modify apr_sockaddr_info_get to call the resolver when we
340 do not have a hostname. Also, fix bugs in the getaddrinfo()
342 [Colm MacCárthaigh <colm@stdlib.net>, Justin Erenkrantz]
344 *) Change the behavior of unix process 'trylock's to return
345 APR_ENOTIMPL instead of segfaulting, consistent with the
346 other lock implementations. [William Rowe]
348 *) Fix a subtle race where the ownership of a unix nested
349 thread lock could be corrupted when the prior owner released
350 the lock with another thread waiting on the same lock.
353 *) apr_socket_data_set(): allow the same key to be used for
354 multiple sockets in the same pool. [Jeff Trawick]
356 *) Add new table function apr_table_compress() and replace
357 red-black trees with mergesort in apr_table_overlap()
358 [Joe Schaefer <joe+gmane@sunstarsys.com>, Brian Pane]
360 *) Win32: Adopt Brian Havard's OS/2 rwlock implementation for
361 Windows [Marc Adkins, Bill Stoddard]
363 *) Add apr_proc_mutex_lockfile() for retrieving the name of the
364 file associated with a mutex. [Jeff Trawick]
366 *) Don't require the lock file name to be passed into
367 apr_proc_mutex_child_init() or apr_global_mutex_child_init().
368 This allows child init to work when the lock file was a temp
369 file created by APR. (The problem only occurred with flock-
370 based mutexes.) [Jeff Trawick]
372 *) When using a temporary file for flock- and fcntl-based mutexes,
373 don't let the file be deleted on close. For flock-based mutexes,
374 this corrects a fatal problem, since the file would disappear
375 when a program was spawned and cleanup-for-exec was performed,
376 and a subsequent attempt to perform child process mutex
377 initialization would fail. For fcntl-based mutexes, this was a
378 very minor issue that resulted in a failing unlink() when the
379 file was closed, since fcntl lock initialization always removes
380 the file immediately. [Jeff Trawick]
382 *) When writing to pipes with a timeout set, handle the situation
383 where the kernel says the pipe is writable but an attempt to
384 write <= PIPE_BUF bytes gets EAGAIN. APR will now write whatever
385 data will fit. APR applications that relied on the atomic nature
386 of relatively small pipe write requests may be affected.
387 PR 20295 [Mark Street <mark@faime.demon.co.uk>, Jeff Trawick]
389 *) Define _THREAD_SAFE for all compilations on AIX. Previously
390 those of us who used the vendor compiler had it defined
391 implicitly and others did not. The difference became obvious
392 with the recent thread safety fixes to apr_password_validate().
393 PR 20420 [Jeff Trawick]
395 *) For apr_proc_detach(APR_PROC_DETACH_FOREGROUND), don't treat
396 a setsid() failure as fatal, as the usual cause is that the
397 caller is already a process group leader. PR 18519
400 *) Fix some problems with non-blocking socket handling on unix
401 that resulted in infinite timeouts being used for non-blocking
402 sockets with apr_socket_connect() and some read/write calls.
405 *) Fix a bug in socket timeout handling on unix that left the
406 socket non-blocking after disabling the timeout.
407 [Jacob Craig Lewallen <jlewalle@cs.ucr.edu>]
409 *) Added flag APR_FILE_ATTR_HIDDEN for manipulating the "hidden"
410 file attribute on Windows and OS/2. [Branko Čibej]
412 *) SECURITY [CAN-2003-0245]: Fixed a bug that could be triggered
413 remotely through mod_dav and possibly other mechanisms, causing
414 an Apache child process to crash. The crash was first reported
415 by David Endler <DEndler@iDefense.com> and was researched and
416 fixed by Joe Orton <jorton@redhat.com>. Details will be released
419 *) apr_proc_wait(): Handle interrupted waitpid(2) calls by calling
420 it repeatedly until it succeeds or fails with errno other than
421 EINTR. This hides this UNIX-specific behavior from APR clients.
423 *) Removed the solaris-specific atomic code, due to licence
424 concerns (it was MPL 1.0, and the author could not be contacted)
427 *) apr_file_gets(): Return APR_SUCCESS if any characters are
428 returned. Any I/O errors or EOF will be reported on the
429 next call. Callers that are coded to expect returned
430 data + APR_EOF when there is no final newline are affected
431 by this change. [Jeff Trawick]
433 *) apr_proc_create() on Unix: Make the APR_SHELLCMD mode work
434 when there is more than one program argument passed in.
437 *) Add --cc and --cpp flags to apr-config. [Jeff Trawick]
439 *) Don't segfault trying to close a file in error paths of flock
440 and fcntl mutex creation. PR 19036 [Jeff Trawick]
442 *) Add %pT support to apr_snprintf() for printing an apr_os_thread_t.
445 *) Add APR_TCP_NODELAY_INHERITED & APR_O_NONBLOCK_INHERITED to apr.hw
448 *) Add APR_UINT64_T_HEX_FMT. [Jeff Trawick]
450 *) Add parameter to APR_SUBDIR_CONFIG to drop options passed to configure
451 before the subdir's configure is invoked.
452 [Jeff Trawick, Justin Erenkrantz]
454 *) Implement APR_SO_RCVBUF socket option on Unix.
455 [Adam Sussman <myddryn@vishnu.vidya.com>]
457 *) Don't add the math library (-lm) if the modf() function
458 is already available via libc. [Roy Fielding]
460 *) Solaris cc: Don't use the -mt option for threaded builds. That
461 is for non-Posix threading, and the use of it prevented us from
462 linking with -lpthread, which in turn caused weird problems for
463 APR applications. [Kristofer Spinka <kspinka@style.net>]
465 *) OS/2: apr_stat() fixes - When a character device is stat'ed,
466 fill in finfo.name if it was asked for. Return APR_INCOMPLETE
467 when appropriate. Addresses httpd incident [CAN-2003-0134].
470 Changes with APR 0.9.3
472 *) Don't enable posixsem, at build time, on systems where sem_t *
473 won't "fit" into an int (sizeof-wise). Also, better error handling
474 when we fail to create a posixsem. PR 17186 [Scott Herod
475 <sherod@pillardata.com>, Jim Jagielski]
477 *) Default hpux 10.x to disable threading, since if it exists at all
478 the pthread implementation should not be trusted, while hpux 10
479 had its own threads implementation that is no longer supported.
480 PR 9457 [William Rowe]
482 *) Fix error in apr-config when symlinks are involved.
483 [Garrett Rooney <rooneg@electricjellyfish.net>]
485 Changes with APR 0.9.2
487 *) Numerous bug fixes for file and socket inheritence by child
488 processes on Unix, correcting bugs that affected the correct
489 behavior of apr_[file|socket]_inherit_[un]set() API.
490 [Bjoern A. Zeeb <bz@zabbadoz.net>, William Rowe, Joe Orton]
492 *) Define APR_UINT64_T_FMT and APR_UINT64_T_FMT_LEN.
493 Define APR_INT64_T_FMT_LEN on Windows and Netware. [Branko Čibej]
495 *) Correct apr_file_gets() on OS2 and Win32 so that '\r's are no longer
496 eaten, and apr_file_gets() -> apr_file_puts() moves the contents
497 uncorrupted. [William Rowe]
499 *) Alter Win32's handling of the apr_proc_t hproc member, so that we
500 close that system handle wherever an apr function would invoke the
501 final waitpid() against a zombie process on Unix. [William Rowe]
503 *) APR_MAX_SECONDS_TO_LINGER and APR_FNM_* #defines replace their
504 old undecorated names (missing APR_ prefix). The old names will
505 disappear with APR 1.0.0.
506 [Craig Rodrigues <rodrigc@attbi.com>, William Rowe]
509 *) When generating a semaphore name for posixsem locking, try to
510 be a little more robust (and unique). [Jim Jagielski]
512 *) Add functions apr_env_get, apr_env_set and apr_env_delete for
513 manipulating the environment. [Branko Čibej]
515 *) Fix APR_LAYOUT to work with layout files with no preceding blank lines
516 and emit errors when layout is not found. PR 15679.
519 *) Add functions apr_filepath_list_split and apr_filepath_list_merge
520 for managing search paths. [Branko Čibej]
522 *) Introduce Release mode debugging symbols for Win32 builds of apr.
523 All library builds gain /Zi for debug symbols (which are discarded
524 at link time if some flavor of the /debug flag isn't passed to link)
525 and .dll builds gain .pdb symbols. [Allen Edwards, William Rowe]
527 *) Add two new proc attributes to improve diagnostics for
528 apr_proc_create() failures on platforms where fork()+exec() is used.
529 See the doc for apr_procattr_child_errfn_set() and
530 apr_procattr_error_check_set(). [Jeff Trawick]
532 *) Rename rules.mk to apr_rules.mk and make apr_rules.mk be installed.
535 *) Fix a bug in apr_proc_create() that could cause a new child process
536 to run the parent's code if setrlimit() fails. [Jeff Trawick]
538 *) Disable apr_socket_sendfile() on 64-bit AIX to avoid an apparent
539 system problem. PR 11408. [Jeff Trawick]
541 *) Add --includedir flag to apr-config. [Justin Erenkrantz]
543 *) Only include sys/syslimits.h if we don't have limits.h
544 [Craig Rodrigues <rodrigc@attbi.com>, Garrett Rooney
545 <rooneg@electricjellyfish.net>, Thom May]
547 *) Allow apr-config to work in symlinked install directories when
548 'realpath' is available. [Justin Erenkrantz]
550 *) Namespace protect the header files in include/arch
553 *) Add function apr_filepath_encoding and associated constants.
556 *) Allow apr_hash to have greater than int number of elements.
559 *) Allow generation of dependencies by non-GCC compilers.
562 *) Prevent obscenely large values of precision in apr_vformatter
563 from clobbering a buffer. [Sander Striker, Jim Jagielski]
565 *) limit the renames performed in apr_rename.pl to the most recent renames.
568 *) Changed apr_mmap_dup() and friends so that there's no longer any
569 is_owner concept on the mmaped region, but rather something more
570 along the lines of a reference count. This allows the old apr_mmap_t
571 to still be used safely when the new apr_mmap_t is in a disjoint pool.
572 [Cliff Woolley, Sander Striker]
574 *) Fix a bug in apr_hash_merge() which caused the last entry in the
575 overlay hash to be lost. PR 10522 [Jeff Trawick]
577 *) Add DougM's apr_rename.pl script into helpers, and update for the new
578 batch of updates [Thom May]
580 *) Renames done (deprecated functions wrapped):
581 apr_filename_of_pathname -> apr_filepath_name_get
582 apr_get_groupid -> apr_gid_get
583 apr_get_groupname -> apr_gid_name_get
584 apr_compare_groups -> apr_gid_compare
585 apr_parse_addr_port -> apr_port_addr_parse
586 apr_shutdown -> apr_socket_shutdown
587 apr_bind -> apr_socket_bind
588 apr_listen -> apr_socket_listen
589 apr_accept -> apr_socket_accept
590 apr_connect -> apr_socket_connect
591 apr_send -> apr_socket_send
592 apr_sendv -> apr_socket_sendv
593 apr_sendto -> apr_socket_sendto
594 apr_implode_gmt -> apr_time_exp_gmt_get
595 apr_get_home_directory -> apr_uid_homepath_get
596 apr_get_userid -> apr_uid_get
597 apr_current_userid -> apr_uid_current
598 apr_compare_users -> apr_uid_compare
599 apr_get_username -> apr_uid_name_get
600 apr_recvfrom -> apr_socket_recvfrom
601 apr_sendfile -> apr_socket_sendfile
602 apr_recv -> apr_socket_recv
605 *) Add APR_IPV6_V6ONLY socket option. [Jeff Trawick]
607 *) Update timeout algorithm in free_proc_chain. If a subprocess
608 did not exit immediately, the thread would sleep for 3 seconds
609 before checking the subprocess exit status again. In a very
610 common case when the subprocess was an HTTP server CGI script,
611 the CGI script actually exited a fraction of a second into the 3
612 second sleep, which effectively limited the server to serving one
613 CGI request every 3 seconds across a persistent connection.
614 [Bill Stoddard, Kai.Risku@arrak.fi]
616 *) Update doxygen tags. [Justin Erenkrantz]
618 *) NetWare: implemented a file IO path context scheme to directly
619 reference directory paths and files in the file system rather
620 than having to traverse the file system on every stat() or
621 open() call. (Performance enhancement) [Brad Nicholes]
623 *) ReliantUnix: recognize that dlsym() is in libdl and dlopen() is in
624 libc. The check is generic so maybe this fixes some other system.
625 PR 14189 [Jeff Trawick]
627 *) Win32: Fix APR_APPEND file i/o. [Bill Stoddard]
629 *) Fix a problem retrieving the remote socket address for sockets
630 created via apr_os_sock_put() or apr_os_sock_make(). [Jeff Trawick]
632 *) Add recognition of and socket API support for the SCTP protocol.
633 [Randall Stewart <randall@stewart.chicago.il.us>]
635 *) Win32: apr_shutdown was not honoring apr_shutdown_how_e and
636 always shutting down the socket for read. This could result
637 in Apache HTTPD 2.0 clients getting early connection closures
638 because lingering_close() was broken. [Bill Stoddard, Allan Edwards]
640 *) Add apr_atomic_casptr() to support atomic compare-and-swap
641 of pointers [Brian Pane]
643 *) Add apr_socket_create_ex() to allow protocol to be specified for the
644 socket. With APR 1.0, this function will be removed and apr_socket_create()
645 will have the additional parameter.
646 [Randall Stewart <randall@stewart.chicago.il.us>]
648 *) Fix the detection of INT64_C() when defined in <stdint.h>.
649 [Joe Orton <joe@manyfish.co.uk>]
651 *) Don't use whitespace before preprocessor directives in the configure
652 logic. Such whitespace breaks with some older preprocessors; a
653 particularly nasty break occurs on Tru64 4.0f where APR_CHECK_DEFINE
654 will always succeed. [Joe Orton <joe@manyfish.co.uk>]
656 *) Add APR_IPV4_ADDR_OK flag to apr_sockaddr_info_get() to allow
657 apps to avoid lookup of IPv6 address if IPv4 address is sufficient.
658 (New APR_IPV6_ADDR_OK flag is similar.) [Jeff Trawick]
660 *) Disable IPv6 support on Darwin. The current IPv6 support has a
661 problem in getnameinfo() which breaks certain applications.
662 [Sander Temme <sctemme@covalent.net>, Jeff Trawick]
664 *) Support for SCO OpenServer Release 5 [Kean Johnston <jkj@caldera.com>]
666 *) Faster (inline and mutex-free) implementations of all apr_atomic
667 operations for Linux/x86 (requires a 486 or later; to enable,
668 configure APR with --enable-nonportable-atomics=yes ) [Brian Pane]
670 *) Add --bindir option to apr-config. [Justin Erenkrantz]
672 *) Begin to rehash the test suite. There is now a new test program called
673 testall. This program currently runs testtime and teststr with the
674 CuTest framework. The stand-alone programs for testtime and teststr
675 can be built, but only if a special flag is specified when building.
678 *) Fix a broken check for a failure to read from the random device file.
679 PR 12615 [tenthumbs@cybernex.net]
681 *) Print informative link errors on Darwin. [Justin Erenkrantz]
683 Changes with APR 0.9.1
685 *) Fixed usage of alloca in apr_poll() on Tru64
686 [Dave Hill <ddhill@zk3.dec.com>]
688 *) Running "make check" in the toplevel directory or the test/ directory
689 will build and run all test programs. [Aaron Bannert]
691 *) Add apr_array_pop(). [Justin Erenkrantz]
693 *) Fixed the native SPARC v8plus version of apr_atomic_dec
694 to match the semantics of the default C version [Brian Pane]
696 Changes with APR 0.9.0
698 *) If the length argument to apr_snprintf is 0, then we should return the
699 length that the string would be if we actually were going to fill it out.
700 However, if the length argument is 0, we can also accept a NULL string.
701 Also, added a test case for this. [Ryan Bloom]
703 *) Printing a string with apr_snprintf can seg fault, if a precision is
704 specified for the string, and the string being printed doesn't have a
705 trailing '\0'. Fix that seg fault by not calling strlen if a precision
706 is specified when printing a string. Also add a test to the test suite
708 [R Samuel Klatchko <rsk@brightmail.com>]
710 *) handle leak related to threads on Windows2000/XP
711 [INOUE Seiichiro <inoue@ariel-networks.com>]
713 *) Includes moved to INCLUDEDIR/apr-{major} (e.g. /usr/include/apr-0)
716 *) libtool versioning is used to give the library sonames a real
717 value. The libraries will be libapr-{major}.so.0.{minor}.{patch}
720 *) Fix apr_tokenize_to_argv() to remove the escape character
721 (backslash) from the argument tokens. PR 11793 [Paul J. Reder]
723 *) Add APR_PARSE_ARGUMENTS and APR_LAYOUT macros for better layout
726 *) Add parallel-apr layout which utilizes the major version number in
727 directories and library names. [Justin Erenkrantz]
729 *) Add a version number to the library name (e.g. libapr-1.so) so
730 that apps can do things like: -lapr-1 or -lapr-2, depending on
731 which version they want to use and link against. [Greg Stein]
733 *) Add --version to apr-config so that apps can retrieve the version
734 information of the (installed) APR. [Greg Stein]
736 *) Remove the APRVARS system; apps should use apr-config. [Greg Stein]
738 *) EBCDIC: fix compile failure in strings/apr_strings.c in
739 httpd-2.0.40 with the following error message:
740 CANNOT COMPILE apr_strtoi64(), only ASCII and EBCDIC supported
742 *) In apr_signal_thread() remove synchronous signals from the mask
743 passed to sigwait(). It is never valid for them to be there.
744 Some platforms silently ignore them, some return EINVAL, some
745 don't process it as desired. [Jeff Trawick]
747 *) Change config.nice generation to always expand variables.
750 *) Renamed apr_strtoll()/apr_atoll() to follow int64 convention,
751 so these new helpers are apr_strtoi64/apr_atoi64(), since
752 'll' (long long) is a nonportable and aspecific construct.
753 Used ac/m4 tests to choose the appropriate fn behind strtoi64.
756 *) don't perform a strlen on that name value without checking for NULL
758 [David Waite <mass@akuma.org>, Ian Holsman]
760 *) Added apr_strtoll() and apr_atoll() to strings lib.
761 [Shantonu Sen <ssen@apple.com>, Wilfredo Sanchez]
763 *) Added a lightweight internal index to apr_table_t to speed up
764 table lookup operations [Brian Pane]
766 *) initalize handle members to invalid before calling createprocess
767 on win32 [Rob Saccoccio <robs@fastcgi.com>]
769 *) Removed apr/i18n to apr-util/xlate for inclusion of apr-iconv
770 as required by missing libiconv. [William Rowe]
772 *) Removed apr/md5 and apr/uuid into apr-util/crypto. [William Rowe]
774 *) Add APR_BUFFERED support to apr_os_file_put(). [Justin Erenkrantz]
776 *) Fix misinterpretation of timeout for select() on Win32/Netware.
777 Identified by [TANAKA Koichi <tanaka@ariel-networks.com>]
779 *) Re-write apr_poll() on Unix. This improves the performance by
780 giving the user back control over the memory in the pollset.
783 *) Added APR_LIMIT_NOFILE option to apr_procattr_limit_set() to
784 control the file descriptor limit on platforms that support
785 RLIMIT_NOFILE. [Brian Pane]
787 *) FreeBSD: change apr_sendfile to accomodate a 4.6 kernel patch.
790 *) Faster code for the apr_table get/set functions [Brian Pane]
792 *) Fix the userid functions on Irix to handle the way that Irix
793 reports a failure from getpwnam_r(). PR 10095.
794 [Robert I. Cowles <ric@cs.uregina.ca>, Jeff Trawick]
796 *) apr_table_do() and apr_table_vdo() now return an int rather than
797 void to indicate whether or not any of its iterations returned 0.
800 *) Fix the definition of union semun so that it is valid on systems
801 where sizeof(long) != sizeof(int). This resolves a hang on
803 [Madhusudan Mathihalli <madhusudan_mathihalli@hp.com>]
805 *) Correct shared library support on Darwin to not fatally error out
806 when a shared library does not exist. [Justin Erenkrantz]
808 *) Added optimized atomic CAS support for Linux/x86 (available only
809 when APR is configured with --enable-nonportable-atomics=yes)
812 *) Fix a compile error in the EGD support in rand.c on older Solaris
813 versions. PR 9976 [Jim Morris <jmorris@sunflower.com>]
815 *) Fixed apr_file_seek() to unset the eof_hit flag. [Stas Bekman]
817 *) Removed --disable-atomics flag and added --enable-nonportable-atomics,
818 thereby defaulting to portable binaries on those systems that could
819 be optimized at the expense of portability. PR: 9507 [Aaron Bannert]
821 *) Added 2 additional lock functions: apr_proc_mutex_name and
822 apr_proc_mutex_defname which returns the type name of the mutex
823 (eg: "sysvsem") as well as the default mutex type (APR_LOCK_DEFAULT).
824 Mostly useful under Unix were the locktypes are selectable.
827 *) Fixed apr_generate_random_bytes() for Win32 on Win NT or 9x by
828 dropping the 0x40 bit (CRYPT_SILENT) for earlier OS'es.
829 PR 9286 [William Rowe]
831 *) Added --with-devrandom=[DEV] configure flag which allows a particular
832 "/dev/random"-compatible device to be specified, overriding the
833 default search path (/dev/random then /dev/arandom then /dev/urandom).
834 Also, if --with-egd=<path> is specified, it now implies
835 --without-devrandom. [Cliff Woolley]
837 *) Darwin/Mac OS X: Don't leave zombie processes when the app calls
838 apr_signal(SIGCHLD, SIG_IGN). This fixes a problem with Apache's
839 mod_cgid. PR 9168. [Jeff Trawick]
841 *) Win32: Fix bug where apr_sendfile() was incorrectly returning
842 APR_SUCCESS on a TransmitFile call that was interrupted by
843 the client closing its end of the connection. Always call
844 GetOverlappedResults() to get results of async TransmitFile()
845 completion notification. [Bill Stoddard]
847 *) Renamed APR_XtOffset -> APR_OFFSET and APR_XtOffsetOf -> APR_OFFSETOF.
850 *) Cygwin: the unix version of apr_file_open() must respect the
851 APR_BINARY flag if the underlying platform requires it (in
852 which case we assume O_BINARY is defined). PR 9185.
855 *) Linux, AIX: Use crypt_r() instead of crypt() because the native
856 crypt() is not thread-safe. The misuse of crypt() led to
857 intermittent failures with Apache basic authentication when crypt
858 passwords were being used. [Jeff Trawick]
860 *) AIX: Global mutexes don't need an intraprocess mutex when SysV
861 sems are used for the crossprocess mutex.
862 Darwin: The same optimization was applied for Posix sems.
865 *) Fix a problem with global mutexes on OS/390 when something other
866 than the default mechanism (SysV sem) was used. The mutexes didn't
867 necessarily block out other threads in the same process.
870 *) Fixed apr_strfsize formatting of values over 1 gig
871 [Matsuzaki Yoshinobu <maz@iij.ad.jp>]
873 *) Renamed --disable-atomics as --disable-optimized-atomics,
874 since it doesn't really disable the atomics. [Aaron Bannert]
876 *) Converted apr_pcalloc to a macro [Brian Pane]
878 *) Fixed APR_STATUS_IS_ETIMEDOUT macro.
879 [Dagfinn Aarvaag <dagfinn.aarvaag@beepscience.com>]
881 *) Add --disable-atomics switch to override our handcoded assembly
882 optimizations. Note that this has no effect if your operating
883 system has a userspace atomic interface. [Justin Erenkrantz]
885 *) Remove Linux atomic support since it does not have a usable
886 userspace atomic interface. [Justin Erenkrantz]
888 *) Don't require that the DNS can map 127.0.0.1 when checking for
889 the presence/usability of getnameinfo(). PR 7642. [Jeff Trawick]
891 *) Remove APR_WANT_SIGNAL from apr_want.h because code must include
892 apr_signal.h in order to get consistent definitions. [Roy Fielding]
894 *) Don't try to use /dev/zero and mmap on platforms that don't
895 support that (such as HP-UX). PR 8537. [Justin Erenkrantz]
897 *) Reduce the number of apr_sendfile calls on AIX and OS/390 by
898 remembering when the kernel tells us the next one will block.
901 *) Reduce the number of apr_sendfile calls on FreeBSD by remembering
902 when the kernel tells us the next one will block. [Greg Ames]
904 *) To support modules like PHP, which implement their own
905 loaded extensions, Darwin needs to place their public
906 symbols in the global table. [Marko Karppinen <markonen@php.net>,
909 *) Rename apr_get_groupname to apr_group_name_get.
910 [Thom May <thom@planetarytramp.net>]
912 *) Allow VPATH builds to properly build dependencies and switch to
913 a .deps dependency model to mimic httpd-2.0. [Justin Erenkrantz]
915 *) Tru64: Stop leaving zombies in APR apps like mod_cgid which
916 tell APR to ignore SIGCHLD.
917 [Dave Hill <David.D.Hill@Compaq.com>]
919 *) Ensure that the ATOMIC_HASH can not be negative.
920 [Joe Orton <jorton@redhat.com>]
922 *) Fix a problem with eof reporting with Unix file I/O on
923 unbuffered files. [Stas Bekman <stas@stason.org>]
925 *) Rename apr_explode_time to apr_time_exp_tz.
926 [Thom May <thom@planetarytramp.net>]
928 *) Rename apr_explode_localtime to apr_time_exp_lt.
929 [Thom May <thom@planetarytramp.net>]
931 *) Set precompiler for Solaris atomics when using GNU binutils.
932 PR 7876. [solomon@conceptshopping.com (Marvin Solomon)]
934 *) AIX: Fix breakage with 64-bit builds on versions of AIX prior
935 to 5L. PR 7957 [Jeff Trawick]
937 *) On socket write functions (apr_sendfile, apr_send, apr_sendv),
938 added a select to wait for writability on the socket if the
939 previous write was incomplete. [Jeff Trawick, Brian Pane]
941 *) Deprecated the apr_lock.h API. Please see the following files
942 for the improved thread and process locking and signaling:
943 apr_proc_mutex.h, apr_thread_mutex.h, apr_thread_rwlock.h,
944 apr_thread_cond.h, and apr_global_mutex.h. [Aaron Bannert]
946 *) Fix some daylight savings time breakage on (at least) AIX,
947 Solaris, and HP-UX. [Jeff Trawick]
949 *) Added support for Posix semaphores (sem_open, et.al.) for mutex
950 locking. We use named semaphores in this implementation. The
951 default priority is between pthread and sysvsem.
954 *) Get flock-based mutexes to work in apps like Apache. Use the
955 same permissions on flock- and fcntl-based mutexes as Apache
958 *) Fix apr-config so that it will not attempt to cd to a non-existent
959 directory. [Justin Erenkrantz]
961 *) Change the ordering of the apr_lock implementation method to
962 better match what's done in Apache 1.3. The ordering is
963 now (highest to lowest): pthread -> sysvsem -> fcntl -> flock.
966 *) Improve detection of the INT64_C macro to prevent problems
967 with HP-UX's ANSI C compiler. PR 8932. [Justin Erenkrantz]
969 *) Make sure gethostbyname() can handle 255.255.255.255 if we
970 are to trust it to handle numeric address strings in
971 apr_sockaddr_info_get(). This fixes a problem on HP-UX
972 which led to an assertion failure at Apache startup when
973 using vhosts. [Jeff Trawick]
975 *) Don't mask SIGUSR2 [Jin Hong <jinh@cnet.com>]
977 *) Load libraries if they not MH_BUNDLE, but if they are not, it
978 just attempts to link them as shared libs.
979 [Pier Fumagalli <pier@betaversion.org>]
981 *) apr_atomic_dec now returns a zero value if the value of
982 the atomic is zero, non-zero otherwise [Ian Holsman]
984 *) When opening a file, only create an internal thread mutex
985 if APR_XTHREAD is set. [Brian Pane]
987 *) Move the kill_conditions enum in apr_thread_proc.h into the
988 APR namespace. kill_after_timeout et al have been renamed
989 appropriately (e.g., APR_KILL_AFTER_TIMEOUT). [Jeff Trawick]
991 *) Fix a segfault in apr_thread_rwlock_destroy() on Win32.
992 [INOUE Seiichiro <inoue@ariel-networks.com>]
994 *) configure now checks to see if we can change DNS timeout values
997 *) Fix a bug in apr_file_seek() on Unix when using buffered
998 files. PR 10003 [Jeff Trawick]
1000 *) Small table performance optimization: eliminate the
1001 zero-fill of newly allocated elements when expanding
1002 a table's size. [Brian Pane]
1004 *) Allow APR to install its generated libtool(s) via the
1005 --with-installbuilddir option (defaults to ${datadir}/build).
1008 *) renames: apr_ansi_time_to_apr_time becomes apr_time_ansi_put
1009 ap_exploded_time_t becomes apr_time_exp_t
1010 [Thom May <thom@planetarytramp.net>]
1012 *) Add the APR_FILE_NOCLEANUP flag to apr_file_open().
1013 Adding the flag will prevent the file from being closed
1014 when the pool passed in on apr_file_open() is destroyed.
1015 This feature is useful when using apr_os_file_get|put()
1016 to manage the apr_os_file_t in apr_file_t (ie, file handle
1017 caching in the HTTP server) [Bill Stoddard]
1019 *) Win32: Fix APR_XTHREAD problems in apr_file_read()
1020 and apr_file_write(). Multiple threads were using the
1021 same overlapped structure and io event handle created
1022 in the open call, which could cause unpredictable
1023 file i/o results. [Bill Stoddard]
1025 *) Win32: apr_proc_mutex_trylock and apr_proc_mutex_lock were
1026 incorrectly returning APR_BUSY if the lock was previously
1027 held by a thread that exited before releasing the lock
1028 (ie, if the process holding the lock segfaults). The MSDN
1029 doc says when WaitForSingleObject returns WAIT_ABANDONED,
1030 the calling thread takes ownership of the mutex, so these
1031 two routines should return APR_SUCCESS in this case, not
1032 APR_BUSY. [Bill Stoddard]
1034 *) Added a new m4 function APR_EXPAND_VAR that will iteratively
1035 interpolate the contents of a variable, such as $sysconfdir,
1036 for use in a borne script. [Aaron Bannert]
1038 *) apr-atomic support for old-sparc's and gas on solaris
1039 [Dale Ghent <daleg@elemental.org>, jean-frederic clere, Ian Holsman]
1041 *) Change apr_proc_detach to take a parameter that can enable/disable
1042 automatic forking (aka, to "daemonize").
1043 [Jos Backus <josb@cncdsl.com>, Aaron Bannert]
1045 *) Implement apr_global_lock_foo() on Win32
1048 *) Fix select() argument call when waiting for IO. PR 9674.
1049 [David MacKenzie <djm@pix.net>]
1051 *) Add a new lock API (apr_global_mutex_t) to provide guaranteed
1052 cross-process AND cross-thread mutual exclusion. [Aaron Bannert]
1054 *) Note: We are in the process of deprecating the apr_lock.h API.
1055 The new and improved lock/synchronization APIs now reside
1056 in apr_thread_mutex.h, apr_proc_mutex.h, apr_thread_rwlock.h,
1057 and apr_thread_cond.h. [Aaron Bannert]
1059 *) Enable autoconf 2.52{f,g} build support.
1060 [Blair Zajac <blair@orcaware.com>]
1062 *) Added new functions for atomic operations. These are experimental
1063 at the moment, so use in apps is discouraged [Ian Holsman]
1065 *) Correct serious problems with the Win32 apr_file_dup2
1066 and apr_file_open_stdxxx() fns. [William Rowe]
1068 *) Begin implementation of the WinCE port.
1069 [Mladen Turk <mturk@mappingsoft.com>]
1071 *) Disable SHMEM_MMAP_ZERO on HPUX 11.x where it is not supported.
1072 Use SHMEM_SHMGET_ANON instead. [Aaron Bannert]
1074 *) Fix a few attempts to add to a void * ptr in the Unix shared
1075 memory support code. PR #9710 Per Ekman [pek@pdc.kth.se]
1077 *) In the Linux apr_sendfile(), fix the types of some parameters
1078 to apr_send() and apr_recv(). Breakage was seen in 64-bit mode
1079 on s/390. PR #9712 [Neale.Ferguson@SoftwareAG-usa.coom]
1081 *) added APR_PROGRAM_ENV and APR_PROGRAM_PATH options for starting
1082 processes via apr_proc_create() [Greg Stein]
1084 *) Deprecated apr_pool_free_blocks_num_bytes() [Sander Striker]
1086 *) Add --enable-pool-debug to make it easier for people to
1087 enable pool debug mode. Removed the APR_POOL_DEBUG_VERBOSE
1088 define that was previously being used. [Sander Striker]
1090 *) Changed the apr_file_dup2() function prototype. It can only
1091 take and reuse an apr_file_t*, and will no longer create one
1092 if *new_file == NULL (use apr_file_dup() for that). [Aaron Bannert]
1094 *) Implemented name-based shared memory on Unix. [Aaron Bannert]
1096 *) Fix spelling mistakes in APRDesign.
1097 [Blair Zajac <blair@orcaware.com>]
1099 *) Ensure that apr_file_mktemp creates the temp file if it isn't there.
1100 [John Sterling <sterling@covalent.net>]
1102 *) Make sure to pre-mark anon SysV shared memory segments as
1103 removed. [Jim Jagielski]
1105 *) Add --with-efence to allow usage of Electric Fence.
1108 *) Updated the pools debug code. Check if a pool is still
1109 valid on the most common apr_pool_xxx functions.
1110 Fix the way APR_POOL_DEBUG_VERBOSE was using stderr.
1111 Make the output somewhat nicer in this debug mode. [Sander Striker]
1113 *) Add new define APR_POOL_DEBUG_VERBOSE which spits out info
1114 about pool creation/destruction [Ian Holsman]
1116 *) Fix GMT offset adjustments for platforms that do not have native
1117 GMT offset adjustments. [Jon Travis <jtravis@covalent.net>]
1119 *) Add new apr_shm_t API and remove old apr_shmem_t API. The new
1120 API handles both anonymous and name-based shared memory. Anonymous
1121 shared memory segments are only usable on systems with process
1122 inheritance, and so the new API with name-based segments is
1123 usable on platforms like Win32. [Aaron Bannert and William Rowe
1124 with much help from Justin Erenkrantz and Sander Striker]
1126 *) Add --with-egd to support EGD-compatible entropy gatherers for
1127 those platforms without native support. [Justin Erenkrantz]
1129 *) apr_lock_create() and apr_proc_mutex_create() now have an
1130 additional parameter for specifying the lock mechanism.
1131 apr_lock_create_np() and apr_proc_mutex_create_np() have been
1132 removed. [Jeff Trawick]
1134 *) Change the prototype of apr_thread_exit() so that the apr_status_t
1135 is no longer a pointer. It was difficult and sometimes hazardous
1136 to return a apr_status_t* at times, and this allows us to return
1137 the APR_* error codes directly. [Aaron Bannert]
1139 *) Add apr_sockaddr_equal() for comparing APR sockaddrs.
1142 *) Win32: apr_sendfile() should return APR_ENOTIMPL if
1143 oslevel < WINNT. [Bill Stoddard]
1145 *) Put new pools code in place which allows applications to
1146 switch off locking on pools operations in case a pool is
1147 guaranteed to never being used in more than one thread
1148 at the same time. We've seen a significant performance
1149 improvement over the old code. [Sander Striker]
1151 *) Add apr-config - a shell script to allow third-party programs
1152 easy access to APR configuration parameters. [Justin Erenkrantz]
1154 *) Add find_apr.m4 to allow third-party programs that use APR to
1155 have a standard m4 macro for detection. [Greg Stein]
1157 *) SEGV in apr_table_overlap [Brian Pane]
1159 *) apr_array_copy speedup by removing the zero-fill [Brian Pane]
1161 *) Fix build breakage on systems with getaddrinfo() but not
1162 gai_strerror() (e.g., RedHat 5.2). [Jeff Trawick]
1164 *) Fix a problem in Unix apr_file_dup() which caused 0 to be returned
1165 by the first read. [Stas Bekman <stas@stason.org>]
1167 *) Fix a buglet that caused APR_FILE_BASED_SHM to be set inadvertently
1168 on some platforms (e.g., Linux, AIX). [Jeff Trawick]
1170 *) Speed up apr_table operations by using a cache/checksum and a
1171 red-black tree in the overlay.
1172 [Brian Pane <bpane@pacbell.net>, Cliff Woolley]
1174 *) Speed up apr_pool_userdata_set[n] by letting hash_set figure out
1175 the strings length. [Brian Pane <bpane@pacbell.net>]
1177 *) New function apr_mmap_dup. This is called in the mmap_setaside.
1178 [Brian Pane <bpane@pacbell.net>]
1180 *) Speed up the apr_hash_t implementation's handling of APR_HASH_KEY_STRING.
1181 [Brian Pane <bpane@pacbell.net>]
1183 *) Tweak apr_gethostname() so that it detects truncation of the
1184 name and returns an error. [Jeff Trawick]
1186 *) Fix bug in Darwin DSO code. [Sander Temme]
1188 *) Fix apr_setup_signal_thread() to grab the right error code from
1189 a sigprocmask() failure. This only affects platforms that use
1190 sigprocmask() in lieu of pthread_sigmask(). [Jeff Trawick]
1192 *) Fix the Unix HAVE_POLL flavor of apr_poll_socket_mask() so that
1193 it doesn't segfault. Avoid some wasted storage in a poll-related
1194 APR structure. [INOUE Seiichiro <inoue@ariel-networks.com>]
1196 *) Fix apr_setup_signal_thread() so that threads don't block
1197 synchronous signals (e.g., SIGSEGV). It is a programming error
1198 to do so, and some platforms (e.g., Solaris, AIX) don't call any
1199 registered signal handler when such signals are blocked.
1202 *) Change the apr_table_elts macro so that it provides access via
1203 a const pointer instead of a non-const pointer.
1204 [Brian Pane <bpane@pacbell.net>]
1206 *) Use strerror_r() where available, since strerror() isn't always
1207 thread-safe. Example systems where strerror() isn't thread-safe:
1208 Linux+glibc, AIX [Jeff Trawick]
1210 *) Fix some file cleanup problems in apr_proc_create() which could
1211 result in the pipes for stdin/stdout/stderr being closed
1212 immediately. [Jeff Trawick]
1214 *) New functions apr_hash_[merge|copy], change to overlay fn
1215 so that it calls merge, which does a inline iteration instead
1216 of calling the iterator function. [Brian Pane <bpane@pacbell.net>]
1218 *) Introduce the apr_pool_userdata_setn() variant that doesn't
1219 strdup the key. Allows both the _setn() and _set() variant to
1220 accept NULL for the cleanup. [Brian Pane <bpane@pacbell.net>]
1222 *) Re-vamp the apr_proc_wait and apr_proc_wait_all functions. We
1223 now return the exit code from the program and a reason that the
1224 program died, either normal exit or signalled.
1225 [Jeff Trawick and Ryan Bloom]
1227 *) Implement portable accessors for proc mutex. These are equivalent
1228 to apr_os_lock_get/set, but they work for apr_proc_mutex_t types
1229 instead. [Aaron Bannert]
1231 *) Added a new parameter to apr_thread_mutex_init(). Now, by default,
1232 thread mutexes are not nested (sometimes called "recursive"). To
1233 enable nested mutexes, a flag must be passed to the init script.
1234 Non-nested mutexes are much faster than nested ones.
1237 *) read_with_timeout in apr/file_io/win32/readwrite.c incorrectly
1238 returned APR_SUCCESS instead of APR_EOF when PeekNamedPipe failed
1239 and the result from GetLastError() was ERROR_BROKEN_PIPE. Because
1240 of this, the pipe wasn't closed as soon as it could be.
1241 [Tim Costello <tim.costello@zcmgroup.com.au>]
1243 *) Fix a problem in the Win32 pipe creation code called by
1244 apr_proc_create(): It didn't register cleanups for either the
1245 read or the write ends of the pipe, so file handles (and event
1246 handles for pipes with asynchronous I/O mode set) are never
1247 closed. [Tim Costello <tim.costello@zcmgroup.com.au>]
1249 *) Add support for QNX 6. [J.T. Conklin <jtc@acorntoolworks.com>]
1251 *) We now create exports.c and export_vars.h, which in turn create
1252 exports.c. From this we generate two more files with different
1253 purposes: apr.exp - list of exported symbols; and exports.lo
1254 (exports.o) - an object file that can be linked with an executable
1255 to force resolution of all apr symbols. [Aaron Bannert]
1257 *) Add the apr_thread_cond_timedwait function to the condition
1258 variable API. [Aaron Bannert]
1260 *) Fixed apr_file_mktemp on systems without mkstemp (Win32, etc).
1261 [Mladen Turk, Cliff Woolley]
1263 *) Fix a segfault in apr_poll_clear on Unix. Also fix the logic
1264 for the case where there are multiple events ORed together in
1265 the events list. [Jamshid Mahdavi <mahdavi@volera.com>]
1267 *) Files opened on Unix with the flag APR_DELONCLOSE are now
1268 not unlinked until they are actually closed, rather than as
1269 soon as they're opened. The old approach worked but made
1270 handling temp files harder. [Cliff Woolley]
1272 *) Fix potential segfault when closing a file on Unix. If
1273 apr_file_close() was called and it failed, it would not
1274 deregister the file cleanup. Therefore the cleanup would
1275 be run again later on a now-invalid descriptor. [Cliff Woolley]
1277 *) Introduce apr_pool_lock for debugging, in combination with
1278 ALLOC_USE_MALLOC + DEBUG_WITH_MPROTECT. Only implemented
1279 on Win32 today, very effective for debugging pool constness.
1282 *) Optimize apr_pstrcat by caching lengths of first 6 strings
1283 [Brian Pane <bpane@pacbell.net>]
1285 *) Add pool accessors to the apr_thread_mutex_t datatype.
1286 [Aaron Bannert <aaron@clove.org>]
1288 *) Add the apr_file_mktemp function. This creates and opens a
1289 temporary file, for use by the program. This file is created
1290 delete_on_close. The initial implementation only works on
1291 Unix, but Windows is coming soon. [Ryan Bloom]
1293 *) Make the unix version of apr_proc_wait_all_procs a simple wrapper
1294 around apr_proc_wait, and which extracts the exit code from the
1295 status returned by waitpid.
1296 [Kevin Pilch-Bisson <kevin@pilch-bisson.net>]
1298 *) Add process locking API to APR. [Aaron Bannert <aaron@clove.org>]
1300 *) Add condition variables for Windows. [Ryan Bloom]
1302 *) Add condition variables to the APR set of locking functions.
1303 This does Unix, and provides stubs for all other platforms.
1304 [Aaron Bannert <aaron@clove.org>]
1306 *) Don't search for IPv6 names in apr_sockaddr_info_get() if the
1307 application doesn't specify the family (i.e., the application
1308 passes in AF_UNSPEC) and APR isn't built with IPv6 support.
1311 *) Fix the API for the apr_proc_create() call on Win32. Several
1312 bad assumptions are gone, including a mismatch between unix and
1313 win32, where win32 was defaulting to create detached. Also fixes
1314 the apr_proc_t's pid member to a real pid (identity that works
1315 across processes) instead of the handle (which is a new hproc
1316 member value.) [William Rowe]
1318 *) Modify the external apr_filepath_get() fn to take a flags arg,
1319 currently only for APR_FILEPATH_NATIVE. This returns c:\foo
1320 format on Win32, and should do the same on OS2, or sys\vol:\foo
1321 on Netware. Primarily for internals, but possibly useful to
1322 others (and it mirrors some of the other apr_filepath_*() calls.)
1325 *) Add the new thread read/write lock API to APR.
1326 [Aaron Bannert <aaron@clove.org>]
1328 *) Add the new thread mutex lock API to APR.
1329 [Aaron Bannert <aaron@clove.org>]
1331 *) Cache GMT offset on platforms that don't store it in the tm struct.
1332 This offset is normalized to be independent of daylight savings
1333 time. [Brian Pane <bpane@pacbell.net>]
1335 *) Initial support for cygwin. [Stipe Tolj <tolj@wapme-systems.de>]
1337 *) Fix a problem with buffered files on Unix. [Brian Havard]
1339 *) Fix the bungling of getaddrinfo() error codes. [Jeff Trawick]
1341 *) Add an apr_thread_once function to APR. This allows a
1342 program to ensure that a function is only called once.
1345 *) APR Documentation is now in Doxygen format.
1348 *) Get apr_ungetc() to work with buffered files on Unix.
1351 *) Fixed apr_filepath_root on Unix [William Rowe, Cliff Woolley].
1353 *) Rename XtOffset to APR_XtOffset. This namespace protection
1354 is important to keep from conflicting with other packages.
1357 *) Introduce a new --disable-ipv6 option to disable IPv6 support.
1358 [Sterling Hughes <sterling@designmultimedia.com>, Jeff
1361 *) Fix the new shared memory code. We need to pass a pointer to
1362 an apr_file_t to apr_file_open. Also, apr_os_file_get returns
1363 a status value, not the OS file descriptor. [Ryan Bloom]
1365 *) Fix the new shared memory configure script. The APR_DECIDE
1366 macros go in order, so the last set of dependancies that are
1367 met are the ones used. That means that when using those macros,
1368 options should be listed with the least desirable option first,
1369 and the most desirable last. The new shared memory routines did
1370 the opposite, so we chose the wrong shared memory option on Linux.
1373 *) Move the necessary shared memory code from MM into APR and remove
1374 our dependency upon MM. [Justin Erenkrantz]
1376 *) Get apr_lock_file and apr_unlock_file working on Windows 9x.
1377 [Mladen Turk, Bill Stoddard]
1379 *) Make all APR pools be allocated out of the permanent pool.
1380 This brings APR pools back to a tree structure. There are
1381 no longer any way to create a pool that is not a decendant
1382 of the permanent_pool. [Ryan Bloom]
1384 *) Wrap all functions in APR_DECLARE macro.
1385 [Sterling Hughes <sterling@designmultimedia.com>]
1387 *) Non-blocking connects shouldn't be calling connect a second
1388 time. According to Single Unix, a non-blocking connect has
1389 succeeded when the select pops successfully. It has failed
1390 if the select failed. The second connect was causing 502's
1391 in the httpd-proxy. [John Barbee barbee@veribox.net]
1393 *) Fix apr_dir_rewind() for Win32 to avoid returning a bogus error.
1394 [Jeff Trawick, William Rowe]
1396 *) Detect required libraries first. This minimizes the libraries
1397 needed in apr_hints.m4. [Justin Erenkrantz]
1399 *) Support the AIX, glibc2, and Solaris variants of gethostby{name|addr}_r.
1400 Use gethostbyaddr_r function when available.
1401 [Sterling Hughes <sterling@designmultimedia.com>]
1403 *) Add new socket option, APR_INCOMPLETE_READ, that should be
1404 set when you expect the first non-blocking read to fail with
1405 EAGAIN. Setting APR_INCOMPLETE_READ prior to calling apr_read
1406 will cause select() to be called first to wait for bytes
1407 to read. [Brian Pane, Dean Gaudet]
1409 *) Better installation. This makes us install the APRVARS file,
1410 as well as MM. [Ryan Bloom]
1412 *) Provide new number conversion functions apr_itoa, apr_ltoa, and
1413 apr_off_t_toa, and inline code in inet_ntop4, to reduce CPU
1414 consumption. [Brian Pane]
1416 *) Updated APR to pass the thread worker_function prototype
1417 (apr_thread_start_t) two parameters, the apr private data
1418 (apr_thread_t*) and the application private data (void*).
1419 Applications' worker_thread() routines may use apr_thread_pool_get
1420 to access the pool (implemented using APR_POOL_*_ACCESSOR() macros.)
1421 [Aaron Bannert <aaron@ebuilt.com>]
1423 *) Add Solaris 8's sendfilev() support. This requires the following
1424 patches from Sun: 111297 (Sparc), 111298 (x86). You'll need the
1425 other patches listed in the patch description. [Justin Erenkrantz]
1427 *) Close file descriptor when we are done with fcntl or flock-based
1428 cross-process lock. Otherwise, we leak descriptors.
1431 *) Fix a possible data corruption problem with the use of getpwnam_r() on
1432 all platforms where that function is used.
1433 Use getpwnam_r() and getgrgid_r() instead of getpwnam() and getgrgid()
1434 with threaded builds on glibc (2.1, at least) to avoid thread safety
1435 issues. [Jeff Trawick]
1437 *) Added apr_lock_tryacquire. It will attempt to acquire the lock, but
1438 will not block if it can not acquire the lock. Returns APR_EBUSY if
1439 acquistion can not happen. [Justin Erenkrantz]
1441 *) Added an inherit flag to apr_socket_create and other socket creation
1442 functions. This allows APR programs to specify that a socket should
1443 be passed to any child processes that are created. The inherit flag
1444 is only meaningful if programs use apr_process_create(). This
1445 also adds a couple of macros that allow APR types to set and unset
1446 the inherit flag. [Ryan Bloom]
1448 *) apr_connect()on Windows: Handle timeouts and returning the proper
1449 status code when a connect is in progress. [Bill Stoddard]
1451 *) apr_connect() on Unix: Handle EINTR during connect(). Handle timeouts.
1454 *) Handle the weird case where getpwnam() returns NULL but errno is zero.
1457 *) Add apr_file_flags_get() which returns the flags that were originally
1458 passed in to apr_file_open(). [Cliff Woolley]
1460 *) Added APR_HAS_XTHREAD_FILES macro that indicates whether or not the
1461 platform handles files opened in APR_XTHREAD mode natively. Currently
1462 only Win32 has such native support. [Cliff Woolley]
1464 *) Fix gmt offset handling on Solaris. Apache log messages now show
1465 local time again. PR #7902 [Taketo Kabe <kabe@sra-tohoku.co.jp>]
1467 *) apr_pstrcat() optimizations [Doug MacEachern, Jeff Trawick]
1469 *) Make the apr_pool_is_ancestor logic public. This is required for
1470 some new logic that is going into HTTPD. I have left the join logic
1471 in that function debug only. [Ryan Bloom]
1473 *) Clean up Win32 locks when the pool goes away.
1474 [Justin Erenkrantz, Jeff Trawick]
1476 *) Implement apr_get_home_directory for Win32. [William Rowe]
1478 *) Complete the implementation of LARGEFILE support on Win32, although
1479 the mmap semantics still need a touch of work. [William Rowe]
1481 *) Fix the APR_XTHREAD support, and apr_sendfile mechanics, so we can
1482 handle cross-threaded file handles on Win32. [William Rowe]
1484 *) Implement APR_READWRITE locks on Unix with POSIX rwlocks.
1485 Introduce new apr_lock_acquire_rw() function which takes in
1486 APR_READER or APR_WRITER. [Justin Erenkrantz]
1488 *) Add apr_open_stdin. This mirrors apr_open_stderr, except it works
1489 on stdin. [Aaron Bannert <abannert@ebuilt.com>]
1491 *) Add apr_strtok(), a thread-safe flavor of strtok() which has the
1492 same interface as strtok_r(). [Jeff Trawick]
1494 *) Add other child support to Win32 [Bill Stoddard]
1496 *) Other-child registrations are automatically removed when the
1497 associated pool is destroyed. This avoids garbage in the list
1498 of registrations when a pool with a registration is freed.
1501 *) Allow LTFLAGS to be overridden by the configure command-line
1502 (default="--silent") and introduce LT_LDFLAGS. [Roy Fielding]
1504 *) Add memory code kindly donated to APR by
1505 Elrond <elrond@samba-tng.org>
1506 Luke Kenneth Casson Leighton <lkcl@samba-tng.org>
1507 Sander Striker <striker@samba-tng.org>
1510 *) Fix a problem with the FreeBSD flavor of apr_sendfile() where we
1511 could return APR_EAGAIN+bytes_sent. [Jeff Trawick]
1513 *) Fix a problem on unixware where clearing h_errno wouldn't work.
1514 Use set_h_errno() instead. PR #7651 [Jeff Trawick]
1516 *) Add the test and build directories (when present) to the recursive
1517 make process, being sure that they are run last. test is only done
1518 recursively for make *clean targets. [Roy Fielding]
1520 *) Make the apr_mmap_create() function use the native_flags variable.
1521 This allows us to actually create WRITEABLE MMAPs.
1522 [Ed Korthof <ed@apache.org>]
1524 *) Completely revamp configure so that it preserves the standard make
1525 variables CPPFLAGS, CFLAGS, CXXFLAGS, LDFLAGS and LIBS by moving
1526 the configure additions to EXTRA_* variables. Also, allow the user
1527 to specify NOTEST_* values for all of the above, which eliminates the
1528 need for THREAD_CPPFLAGS, THREAD_CFLAGS, and OPTIM. Fix the setting
1529 of INCLUDES and EXTRA_INCLUDES. Check flags as they are added to
1530 avoid pointless duplications. Fix the order in which flags are given
1531 on the compile and link lines. [Roy Fielding]
1533 *) Fix DSO code on HP/UX. We have to use == not =, and it makes more
1534 sense to actually return errno, so that the return code means
1535 something. [Ryan Bloom]
1537 *) Clean up conditionals in unix DSO code so that we decide based on
1538 the dynamic loading implementation, which we noticed at configure
1539 time, instead of by operating system.
1542 *) Add DSO support for dyld platforms (Darwin/Mac OS and OpenStep).
1545 *) Amend the time code to better deal with time zones.
1548 *) Carefully select an appropriate native type for apr_int64_t and
1549 define its format as APR_INT64_T_FMT and literal using APR_INT64_C().
1550 [Justin Erenkrantz, William Rowe]
1552 *) Make clean, distclean, and extraclean consistently according to the
1553 Gnu makefile guidelines. [Justin Erenkrantz <jerenkrantz@ebuilt.com>]
1555 *) Initial implementation of of apr_filepath (get/set/parse_root and
1556 merge) for Windows. [William Rowe]
1558 *) Cleaned up implementation of of apr_filepath (get/set/parse_root
1559 and merge) for Unix. [Greg Stein, William Rowe]
1561 *) Fixup the --enable-libtool option. This allows the test directory
1562 to compile again. The test directory still doesn't work when
1563 APR is configured without libtool. [Ryan Bloom]
1565 *) If we don't have sigwait() in the system, see if sigsuspend() is
1566 available, and use that instead. [Wilfredo Sanchez]
1568 *) Make libtool optional at configure time. This is done with
1569 --disable-libtool. [Ryan Bloom]
1571 *) Recognize systems where the TCP_NODELAY setting is inherited from
1572 the listening socket, and optimize apr_setsockopt(APR_TCP_NODELAY)
1573 accordingly. [Jeff Trawick]
1575 *) Recognize the presence of getnameinfo() on Tru64. [David Reid]
1577 *) Allow APR to be installed. [Ryan Bloom]
1579 *) Generate config.nice for easy re-run of configure. [Roy Fielding]
1581 *) Define preprocessor flags in CPPFLAGS instead of CFLAGS and
1582 bring some sanity to the compiler command-lines. [Roy Fielding]
1584 *) Use the dso/aix subdirectory for older versions of AIX and fix
1585 a number of bugs in the dso code in that directory.
1588 *) Allow libtool 1.3b to be used. [Victor Orlikowski]
1590 *) Misc. Win32 fixes: Set the pool pointer in apr_sockaddr_t
1591 structures created with the apr_socket_t to prevent segfault
1592 in certain apps. Flush unwritten buffered data when the file
1593 is closed. [Jeff Trawick]
1595 *) Win32: Get APR to compile with MSVC 5.0 (a.k.a. VC97).
1596 PR #7489 [Jeff Trawick]
1598 *) First draft implementation of apr_filepath (get/set/parse_root
1599 and merge) for Unix. [William Rowe]
1601 *) Add apr_ipsubnet_create() and apr_ipsubnet_test() for testing
1602 whether or not an address is within a subnet. [Jeff Trawick]
1604 *) Add apr_sendto and apr_recvfrom for Unix. Start of adding UDP
1605 support. [David Reid]
1607 *) Add a method to get the password from the system for a given
1608 user. [John Barbee <jbarbee@covalent.net>]
1610 *) Change the include path order, so that we look for included files
1611 in the APR paths first, and the system paths second.
1612 [jean-frederic clere <jfrederic.clere@fujitsu-siemens.com>]
1614 *) Add a with-sendfile option, so that people on platforms without a
1615 sendfile implementation for APR can easily disable it from the
1616 configure line. [Ryan Bloom]
1618 *) Change the check for netinet/tcp.h to work around an issue with
1619 that header file on IRIX 6.5 which prevented it from being
1620 detected. PR #6459 [Jeff Trawick]
1622 *) Introduce apr_get_userid to return a named user's apr_uid_t and
1623 apr_gid_t across platforms [Cliff Woolley, William Rowe]
1625 *) In apr_shm_init(), check the retcode from mm_malloc(). Previously,
1626 we segfaulted here if mm_malloc() failed to get a lock. An example
1627 error scenario is when the lock file lives on a filesystem which
1628 doesn't support locking. [Jeff Trawick]
1630 *) Name protected the autoconf macros defined by APR. Moved the
1631 REENTRANCY_FLAGS settings into apr_hints.m4. Inlined the
1632 APR_PREPARE_MM_DIR macro because it could only be used once.
1633 Removed the unused macros MY_TRY_RUN, MY_TRY_RUN_NATIVE, and
1634 AC_USE_FUNCTION. Added some macro comments. [Roy Fielding]
1636 *) Cope with BSDi installations where the default make has been
1637 replaced with GNU make. [Joe Orton <joe@manyfish.co.uk>]
1639 *) Changed apr/helpers to apr/build to be consistent with other Apache
1640 source trees. Added make variables to rules.mk.in that point to the
1641 builders directory and its scripts. Updated buildconf, configure.in,
1642 and Makefile.in files to create and use the new scripts. Moved scandoc
1643 to scandoc.pl and its default.pl template to scandoc_template.pl.
1646 *) Updated config.guess and config.sub to GNU libtool 1.3.5 features,
1647 with the Apache additions for OS/390 and OS/2 emx. [Roy Fielding]
1649 *) Moved hints.m4, apr_common.m4, and helpers/apr-conf.m4 into the
1650 new build directory as apr_hints.m4, apr_common.m4, apr_network.m4,
1651 and apr_threads.m4. [Roy Fielding]
1653 *) Get apr_sendfile() working on HP-UX. This gets APR to build on
1654 HP-UX without having to turn off APR_HAS_SENDFILE. [Jeff Trawick]
1656 *) Force FreeBSD to compile without threads by default. To enable
1657 threads, use --enable-threads on the configure line.
1660 *) Purge system password buffer before returning from apr_password_get.
1661 No longer abuses bufsize argument on return. [William Rowe]
1663 *) Moved the prototypes for apr_snprintf and apr_vsnprintf to the
1664 apr_strings.h header, from apr_lib.h. This location makes more
1667 *) Added the APR_TRY_COMPILE_NO_WARNING configure macro for testing a
1668 compile with -Werror as well as the APR_CHECK_ICONV_INBUF macro to
1669 test for annoying iconv prototype differences.
1670 [Jeff Trawick, Roy Fielding]
1672 *) Fix a problem with configure on NetBSD. We must include sys/types.h
1673 for some platforms. [jun-ichiro hagino <itojun@kame.net>]
1675 *) Some fixes in the Win32 time support.
1676 (IsLeapYear): New macro for quickly figgerin' out if a given year is a
1677 leap year. (SystemTimeToAprExpTime): Perform the calculation of
1678 tm_yday. Also, negate the sign of the tm_gmtoff field to be
1679 consistent with Unix platforms and APR header file comments.
1682 *) Implement WinNT Unix'ish permissions. [William Rowe]
1684 *) Corrected an OS2'ism of apr_get_home_directory. OS2 now returns the
1685 proper directory, including the user's name.
1687 *) Removed private os2errno.h and integrated the OS2 network error codes
1688 into apr_errno.h for optimized error tests (APR_STATUS_IS_EFOO(rv)).
1691 *) Moved inclusion of <os2.h> header from multiple modules into apr.h
1694 *) Added apr_compare_users() and apr_compare_groups() for more complex
1695 apr_uid_t and apr_gid_t structures. Enabled both .user and .group
1696 results from WinNT/2000 stat/getfileinfo, but expect to find that
1697 .group is 'None' in most cases. [William Rowe]
1699 *) Replace configure --with-optim option by using the environment
1700 variable OPTIM instead. This is needed because configure options
1701 do not support multiple flags separated by spaces. [Roy Fielding]
1703 *) Eliminate the APR_SIG* aliases for standard signal names,
1704 since they serve no useful purpose. [Roy Fielding]
1706 *) Abstracted apr_get_username and apr_get_groupname for unix and win32.
1707 Modified Win32 apr_uid_t and apr_gid_t to use PSIDs, and elimintated
1708 the uid_t and gid_t definitions. [William Rowe]
1710 *) Radically refactored apr_stat/lstat/getfileinfo/dir_read for Win32
1711 to assure we are retrieving what we expect to retrieve, and reporting
1712 the correct result (APR_SUCCESS or APR_INCOMPLETE). The potential
1713 for a bit more optimization still remains. [William Rowe]
1715 *) While we have the future opportunity to cache the apr_stat'ed file
1716 handle for a very fast open (dup handle) on Win32, patched to close
1717 that file after a stat always. Needs a new semantic before we leave
1718 handles dangling when the user intends to rm. [William Rowe]
1720 *) Correct Win32 apr_stat/lstat/getfileinfo/dir_read to all zero out
1721 the finfo buffer on success (or incomplete success). [William Rowe]
1723 *) Fix Win32/Unix apr_lstat to throw the .valid bit APR_FINFO_LINK to
1724 indicate we attempted to open the link. Only the .filetype APR_LNK
1725 reflects if the file found was, in fact, a link. [William Rowe]
1727 *) Fixed apr_open and apr_rename to function on Win9x.
1728 [Mike Pilato <cmpilato@collab.net>]
1730 *) Add apr_open_stdout. This mirrors apr_open_stderr, except it works
1731 on stdout. [Mike Pilato <cmpilato@collab.net>]
1733 *) Fix bug in file_io/unix/dir.c. There is no such thing as a dirent,
1734 it must be a struct dirent.
1735 [Kevin Pilch-Bisson <kevin@pilch-bisson.net>]
1737 *) Fix the configure script so that we can build from a different
1738 directory. [Kevin Pilch-Bisson <kevin@pilch-bisson.net>]
1740 *) Introduce the wanted flag argument to the apr_stat/lstat/getfileinfo
1741 family of functions. This change allows the user to determine what
1742 platform-specific file information is retrieved, to optimize both
1743 portability and performance. [William Rowe]
1745 *) Fix make depend. [Ryan Bloom]
1747 *) All dso implementations now register a cleanup to unload the DSO
1748 when it is loaded. If the pool is removed, we really do need to
1749 remove the DSO. In the past, different platforms behaved differently
1750 it this respect. [Ryan Bloom]
1752 *) Add linkage declarations to the DSO code.
1753 [Gregory Nicholls <gnicholls@level8.com>]
1755 *) Some adjustment of hints.m4 setting flags (used to check if null
1756 first) and added some verbosity. [Jim Jagielski]
1758 *) Specify APR_DECLARE to some of the APR functions. This helps linking
1759 on some operating systems. [Gregory Nicholls <gnicholls@level8.com>]
1761 *) Libtool'ized APR and converted all the makefiles to share rules
1762 from helpers/rules.mk. [Greg Stein]
1764 *) Remove a warning on FreeBSD. FreeBSD defines TCP_NO_PUSH, but we
1765 don't actually use it. This causes os_cork to be defined but not
1766 used. This patch keeps us from defining os_cork and os_uncork on
1767 FreeBSD. [Ryan Bloom]
1769 *) Keep apr_terminate from seg faulting on terminate. This is
1770 happening on systems that do not NULL out locks when they are
1771 destroyed. To keep this from happening, we set the locks to
1772 NULL after destroying them in apr_terminate, and we have to
1773 check for NULL in free_blocks.
1774 [Allan Edwards and Gregory Nicholls <gnicholls@level8.com>]
1776 *) Remove the ability to allocate memory out of a NULL pool.
1779 *) Add an APR_GET_POOL macro to get a pool from any APR type that has
1780 a pool. This requires that ALL apr types put the pool as the first
1781 field in their structure. [Ryan Bloom]
1783 *) Begin to remove the ability to allocate out of NULL pools. The first
1784 problem to solve, is that we need an apr_lock in order to allocate
1785 pools, so that we can lock things out when allocating. So, how do we
1786 allocate locks without a pool to allocate from? The answer is to create
1787 a global_apr_pool, which is a bootstrapping pool. There should NEVER
1788 be a sub-pool off this pool, and it is static to an APR file. This is
1789 only used to allow us to allocate the locks cleanly, without using the
1790 NULL pool hack. [Ryan Bloom]
1792 *) Fix a logic error in the poll code when implemented using select.
1793 [Nick Caruso <ncaruso@gamesville.com>]
1795 *) FreeBSD does not support sendfile() in combination with threads
1796 before version 4.2. We no longer even try to support it.
1799 *) On FreeBSD, it is possible for the first call to sendfile to
1800 get EAGAIN, but still send some data. This means that we cannot
1801 call sendfile and then check for EAGAIN, and then wait and call
1802 sendfile again. If we do that, then we are likely to send the
1803 first chunk of data twice, once in the first call and once in the
1804 second. If we are using a timed write, then we check to make sure
1805 we can send data before trying to send it. [Ryan Bloom]
1807 *) Cleanup to help Apache support programs build cleanly.
1808 [Cliff Woolley <cliffwoolley@yahoo.com>]
1810 *) Cleanup some compiler warnings on Solaris
1811 [Dale Ghent <daleg@elemental.org>]
1813 *) apr_getaddrinfo() can now return multiple addresses for a host
1814 via the next field in apr_sockaddr_t. [Jeff Trawick]
1816 *) Tighten up the check for getaddrinfo(). If it can't figure out
1817 the appropriate address family for 127.0.0.1, it fails.
1818 Unfortunately, Tru64 fails this test so we won't do IPv6 on
1819 Tru64. [Jeff Trawick]
1821 *) Rename apr_opendir to apr_dir_open. [Ryan Bloom]
1823 *) apr_snprintf()'s %pI format string now takes apr_sockaddr_t *
1824 instead of sockaddr_in *. [Jeff Trawick]
1826 *) Fix a bug in apr_accept() for Win32 and Unix where the local
1827 apr_sockaddr_t in the new connected socket was not initialized
1828 properly. This could result in a bad string for apr_get_ipaddr(),
1829 among other things. [Jeff Trawick]
1831 *) Add apr_getnameinfo(), a replacement for apr_get_hostname() which
1832 supports IPv6 and will be friendlier for use with eventual
1833 SOCK_DGRAM support. apr_get_hostname() is gone. [Jeff Trawick]
1838 *) Removed the iconv implementation from the i18n/unix/iconv branch.
1839 This now resides in the apr-iconv repository, and will be ported
1840 over time to use native apr types (e.g. apr_dso) for portability.
1842 *) Only support IPv6 if we have sockaddr_in and a working
1843 getaddrinfo(). [Jeff Trawick]
1845 *) Add apr_parse_addr_port() for parsing the hostname:port portion
1846 of URLs and similar strings. [Jeff Trawick]
1848 *) Add Win32 MMAP support [William Rowe]
1850 *) Allow the APR programmer to specify if the MMAP is read-only or
1852 [Ryan Bloom and Will Rowe]
1854 *) Check more carefully for getaddrinfo(). Accept those that
1855 require <netdb.h> to be included (e.g., Tru64). Reject those that
1856 fail a very basic operational test (e.g., AIX). [Jeff Trawick]
1858 *) Add apr_make_os_sock() for constructing a fully-capable APR
1859 socket. [Jeff Trawick]
1861 *) Make APR's shared memory routines always allocate enough memory
1862 for the requested segment, the MM internal types, and the APR
1866 *) Add APR_SIZE_T_FMT. Get the other APR_xx_T_FMT variables
1867 defined properly on AIX. [Jeff Trawick]
1869 *) network API changes: get rid of apr_get_socket_inaddr(),
1870 apr_get_remote_name(), and apr_get_local_name() [Jeff Trawick]
1872 *) Add a step at configure time to create a file at the top-level,
1873 apr.exports, which lists every function exported by APR. The
1874 file is generated by a script in helpers, that reads each header
1878 *) Lock config changes: Detect SysV sem capability by the presence of
1879 sempaphore functions, not by the presence of union semun. New
1880 config variable apr_lock_method can override autodetection of the
1881 apr_lock implementation method. For now, hints.m4 uses it to select
1882 SysV semaphores for OS/390. New config variable
1883 apr_process_lock_is_global specifies that the selected inter-process
1884 lock method is sufficient for APR_LOCKALL (i.e., it blocks all
1885 threads and processes). For now, hints.m4 turns on this flag for
1886 OS/390. [Jeff Trawick]
1888 *) Get APR_OFF_T_FMT defined properly on Solaris Sparc.
1894 *) Change the name of the sa_len field in apr_sockaddr_t to salen.
1895 Some platforms have a macro named sa_len.
1898 *) apr_set_port(), apr_get_port(), apr_set_ipaddr(), and apr_get_ipaddr()
1899 now take apr_sockaddr_t as a parameter instead of apr_socket_t +
1900 apr_interface_e. This will allow the same routines to be used with
1901 datagram APIs to be added later. Note that code which calls
1902 apr_set_ipaddr() should probably be changed to call apr_getaddrinfo()
1903 for protocol independence. [Jeff Trawick]
1905 *) apr_create_tcp_socket() has been removed. Use apr_create_socket()
1906 instead. [Jeff Trawick]
1908 *) Source was moved from the apache-2.0 repository. For all CHANGES
1909 prior to this time, please see the apache-2.0 repository