upload http
[bottlenecks.git] / rubbos / app / httpd-2.0.64 / srclib / apr / CHANGES
1                                                      -*- coding: utf-8 -*-
2 Changes with APR 0.9.19
3
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]
7
8   *) Improve platform detection by updating config.guess and config.sub.
9      [Rainer Jung]
10
11 Changes with APR 0.9.18
12
13   *) z/OS: return standard apr_status_t codes from apr_dso_load()
14      and apr_dso_sym().  [David Jones <oscaremma gmail.com>]
15
16   *) Fix apr_tokenize_to_argv parsing.  PR 46128
17      [Edward Rudd <eddie omegaware.com>]
18
19 Changes with APR 0.9.17
20
21   *) Fix DSO-related crash on z/OS caused by incorrect memory
22      allocation.  [David Jones <oscaremma gmail.com>]
23
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>]
27
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]
30
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]
40
41 Changes with APR 0.9.16
42
43   *) Win32 apr_file_read: Correctly handle completion-based read-to-EOF.
44      [Steven Naim <steven.naim googlemail.com>]
45
46   *) Fixed Win32 regression of StdOutput inheritance in apr_proc_create.
47      [William Rowe]
48
49 Changes with APR 0.9.15
50
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]
56
57   *) Define the Mac OS/X filesystem_encoding as utf-8 (in previous
58      releases the interpretation would vary).  [Branko Čibej]
59
60   *) Fix day of year (tm_day) calculation for July. The bug only affects
61      Windows builds.  PR 42953.  [Davi Arnaut]
62
63 Changes with APR 0.9.14
64
65   *) Register a cleanup only if APR_FILE_NOCLEANUP was not flagged in
66      apr_file_mktemp. [Brian J. France <list firehawksystems.com>]
67
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]
72
73   *) Discard file buffers when running cleanups for exec.
74      PR 41119.  [Davi Arnaut <davi haxent.com.br>, Bojan Smojver]
75
76   *) Improve thread safety of assorted file_io functions.
77      PR 42400.  [Davi Arnaut <davi haxent.com.br>]
78
79   *) Fix file pointer position calculation in apr_file_writev() on
80      buffered file.  PR 40963.  [Davi Arnaut <davi haxent.com.br>]
81
82 Changes with APR 0.9.13
83
84   *) Fix detection of pthread cross-process robust mutexes.
85      PR 39833.  [Tsuyoshi SASAMOTO <nazonazo miobox.jp>]
86
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>]
90
91   *) Portably check for EEXIST in mktemp code.  PR 40818
92      [Kenneth Golomb <KGolomb TradeCard.com>]
93
94   *) Fix apr_atomic_cas on platforms with 64 bit longs.
95      [Philip Martin <philip codematters.co.uk>]
96
97   *) Provide folding in autogenerated .manifest files for Win32 builders
98      using VisualStudio 2005  [William Rowe]
99
100 Changes with APR 0.9.12
101
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]
105
106 Changes with APR 0.9.11
107
108   *) Synced get-version.sh to trunk to correctly retrieve 2 digit subversion,
109      which broke the 0.9.10 candidate.  [William Rowe]
110
111   *) Fixed 'make check' target to avoid invoking sub-programs of testshm,
112      testshmconsumer and testshmproducer.  [William Rowe]
113
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]
116
117 Changes with APR 0.9.10
118
119   *) Minor bug fixes to address various platform build and run time issues.
120
121   *) Permit 'make check' binaries to run on Darwin by omitting -no-install
122      flag [William Rowe, Joe Orton]
123
124 Changes with APR 0.9.9
125
126   *) Prevent detection of robust mutex support with glibc 2.4,
127      fixing APR_LOCK_PROC_PTHREAD locks.  PR 38442.  [Joe Orton]
128
129   *) Fix apr_strerror() with glibc 2.4.  [Joe Orton]
130
131   *) Install mkdir.sh, make_exports.awk, make_var_export.awk to the APR
132      installbuilddir, and provide working accessor variables in
133      apr_rules.mk.
134      [Max Bowsher]
135
136   *) Fix seeks with files opened in xthread mode for append on win32.
137      [M Joonas Pihlaja <jpihlaja cc.helsinki.fi>, Garrett Rooney]
138
139   *) Keep testpipe.c from hanging on win32. [Garrett Rooney]
140
141   *) Cause apr_file_write_full on win32 to consider the timeout value set by 
142      apr_file_pipe_timeout_set.  PR 30182
143      [<eholyat olf.com>]
144
145   *) Fix assertion from double close of a handle with a rwlock on win32.
146      [Evgueni Brevnov <evgueni.brevnov gmail.com>]
147
148   *) Fix EOF handling for unbuffered reads on win32.
149      [Konstantin Sharenkov <Konstantin.Sharenkov enterra-inc.com>]
150
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
153      used in such a case.
154      [Garrett Rooney]
155
156   *) Fix passing "" as an argument to the program started by apr_proc_create
157      on Win32.
158      [Philip Martin <philip codematters.co.uk>
159
160   *) Fix warning when compiling on FreeBSD by correcting the type of
161      the final argument passed to sysctlbyname. [Garrett Rooney]
162
163 Changes with APR 0.9.7
164
165   *) Fix crash in apr_dir_make_recursive() for relative path
166      when the working directory has been deleted.  [Joe Orton]
167
168   *) Win32: fix apr_proc_mutex_trylock() to handle WAIT_TIMEOUT,
169      returning APR_EBUSY.  [Ronen Mizrahi <ronen@tversity.com>]
170
171   *) Fix apr_file_read() to catch write failures when flushing pending
172      writes for a buffered file.  [Joe Orton]
173
174   *) Fix apr_file_write() infinite loop on write failure for buffered
175      files.  [Erik Huelsmann <ehuels gmail.com>]
176
177   *) Fix error handling where apr_uid_* and apr_gid_* could segfault
178      or return APR_SUCCESS in failure cases.  PR 34053.  [Joe Orton,
179      Paul Querna]
180
181   *) Refactor Win32 condition variables code to address bugs 27654, 34336.
182      [Henry Jen <henryjen ztune.net>, E Holyat <eholyat yahoo.com>]
183
184   *) Support APR_SO_SNDBUF and APR_SO_RCVBUF on Windows.  PR 32177.
185      [Sim <sgobbi datamanagement.it>, Jeff Trawick]
186
187   *) Fix detection of rwlocks on Mac OS X. [Aaron Bannert]
188
189   *) Fix issue with poll() followed by net I/O yielding EAGAIN on
190      Mac OS 10.4 (Darwin 8). [Wilfredo Sanchez]
191
192 Changes with APR 0.9.6
193
194   *) Add apr_threadattr_stacksize_set() for overriding the default
195      stack size for threads created by apr_thread_create().
196      [Jeff Trawick]
197
198   *) Add an RPM spec file. [Graham Leggett]
199
200   *) Add a build script to create a solaris package. [Graham Leggett]
201
202 Changes with APR 0.9.5
203
204   *) Prevent unbounded memory use during repeated operations on a hash table.
205      [Julian Foad <julianfoad btopenworld.com>
206
207   *) fix apr_file_dup and apr_file_dup2 win32 implementations
208      to create a mutex [Steve Hay <steve.hay uk.radan.com>]
209
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.
213      [Mladen Turk]
214  
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.
217      [Mladen Turk]
218  
219   *) Fix build issues in paths containing symlinks.  PR 8867.
220      [Joe Orton]
221
222   *) Update config.{guess,sub} for DragonFly BSD.  PR 29858.
223      [Joe Orton]
224
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]
228
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>]
232
233   *) Win32: Fix bug tracking the file pointer on a file opened for 
234      overlapped/APR_XTHREAD io. [Bill Stoddard]
235
236   *) Fix FreeBSD atomics.  [Paul Querna <chip force-elite.com>]
237
238   *) Fix apr_snprintf() to respect precision for small floating point
239      numbers.  PR 29621.  [Artur Zaprzala <zybi talex.pl>]
240
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]
244
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]
248
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.  
251      [Jeff Trawick]
252
253   *) Remove apr_file_copy()'s 2Gb file size limit on some platforms.
254      [Joe Orton]
255
256   *) Don't assume getnameinfo() can handle IPv4-mapped IPv6 addresses
257      on any platforms.
258      [Jeff Trawick, Joe Orton, Colm MacCárthaigh <colm stdlib.net>]
259
260   *) Support setuid, setgid and sticky file permissions bits on Unix.
261      [André Malo]
262
263   *) Fix sign error in apr_file_seek(APR_END).
264      [Greg Hudson <ghudson MIT.EDU>]
265
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]
271
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]
275
276   *) Fix handling of negative numbers in apr_strtoi64() on platforms
277      without strtoll.  [Joe Orton]
278
279   *) Fix printing apr_int64_t values smaller than LONG_MIN on 32-bit
280      platforms in apr_vformatter.  [Joe Orton]
281
282   *) Fix apr_socket_opt_set with APR_IPV6_V6ONLY flag.  Fixes httpd
283      Listen IPv6 socket behavior on FreeBSD 5.x, OpenBSD, NetBSD.
284      [Justin Erenkrantz]
285
286   *) Fix apr_time_exp_get() for dates in 2038.  
287      [Philip Martin <philip codematters.co.uk>]
288
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]
292
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]
296
297   *) Use NI_NAMEREQD instead of NI_NUMERICHOST in
298      APR_CHECK_GETNAMEINFO_IPV4_MAPPED.  PR 24469.  [Justin Erenkrantz]
299
300   *) Ensure that apr_sockaddr_info_get() does not return anything
301      other than AF_INET and AF_INET6 addresses.  [Joe Orton]
302
303   *) Clarify that apr_dir_read() does not guarantee order of returned
304      entries as previously claimed.  [Joe Orton]
305
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]
309
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>]
314
315   *) apr_socket_connect(): allow app to make subsequent call on 
316      non-blocking socket.  [Jeff Trawick]
317  
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]
320
321   *) Fix make_exports.awk to work with apr-iconv.  [Justin Erenkrantz]
322
323 Changes with APR 0.9.4
324
325   *) win32: fix apr_file_dup() and apr_file_dup2() to dup the
326      ungetchar member [Stas Bekman]
327
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]
331
332   *) Work around a bug in Darwin when calling getnameinfo() on IPv4-mapped
333      IPv6-addresses.  [Colm MacCárthaigh <colm@stdlib.net>, Jeff Trawick,
334      Justin Erenkrantz]
335
336   *) Add apr_temp_dir_get() for getting the most suitable temp directory
337      [Mike Pilato <cmpilato@collab.net>, Thom May]
338
339   *) Modify apr_sockaddr_info_get to call the resolver when we
340      do not have a hostname.  Also, fix bugs in the getaddrinfo()
341      implementation.
342      [Colm MacCárthaigh <colm@stdlib.net>, Justin Erenkrantz]
343
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]
347
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.
351      [William Rowe]
352
353   *) apr_socket_data_set(): allow the same key to be used for
354      multiple sockets in the same pool.  [Jeff Trawick]
355
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]
359
360   *) Win32: Adopt Brian Havard's OS/2 rwlock implementation for
361      Windows [Marc Adkins, Bill Stoddard]
362
363   *) Add apr_proc_mutex_lockfile() for retrieving the name of the
364      file associated with a mutex.  [Jeff Trawick]
365
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]
371
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]
381
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]
388
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]
394
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
398      [Jeff Trawick]
399
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.
403      [Jeff Trawick]
404
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>]
408
409   *) Added flag APR_FILE_ATTR_HIDDEN for manipulating the "hidden"
410      file attribute on Windows and OS/2.  [Branko Čibej]
411
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
417      on 30 May 2003.
418
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.
422
423   *) Removed the solaris-specific atomic code, due to licence
424      concerns (it was MPL 1.0, and the author could not be contacted)
425      [Ian Holsman]
426
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]
432
433   *) apr_proc_create() on Unix: Make the APR_SHELLCMD mode work
434      when there is more than one program argument passed in.
435      [Jeff Trawick]
436
437   *) Add --cc and --cpp flags to apr-config.  [Jeff Trawick]
438
439   *) Don't segfault trying to close a file in error paths of flock
440      and fcntl mutex creation.  PR 19036  [Jeff Trawick]
441
442   *) Add %pT support to apr_snprintf() for printing an apr_os_thread_t.
443      [Jeff Trawick]
444
445   *) Add APR_TCP_NODELAY_INHERITED & APR_O_NONBLOCK_INHERITED to apr.hw
446      [Allan Edwards]
447
448   *) Add APR_UINT64_T_HEX_FMT.  [Jeff Trawick]
449
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]
453
454   *) Implement APR_SO_RCVBUF socket option on Unix.  
455      [Adam Sussman <myddryn@vishnu.vidya.com>]
456
457   *) Don't add the math library (-lm) if the modf() function
458      is already available via libc.  [Roy Fielding]
459
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>]
464
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].
468      [Brian Havard]
469
470 Changes with APR 0.9.3
471
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]
476
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]
481
482   *) Fix error in apr-config when symlinks are involved.
483      [Garrett Rooney <rooneg@electricjellyfish.net>]
484
485 Changes with APR 0.9.2
486
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]
491
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]
494
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]
498
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]
502
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]
507
508
509   *) When generating a semaphore name for posixsem locking, try to
510      be a little more robust (and unique). [Jim Jagielski]
511
512   *) Add functions apr_env_get, apr_env_set and apr_env_delete for
513      manipulating the environment.  [Branko Čibej]
514
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.
517      [Justin Erenkrantz]
518
519   *) Add functions apr_filepath_list_split and apr_filepath_list_merge
520      for managing search paths.  [Branko Čibej]
521
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]
526
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]
531
532   *) Rename rules.mk to apr_rules.mk and make apr_rules.mk be installed.
533      [Thom May]
534      
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]
537
538   *) Disable apr_socket_sendfile() on 64-bit AIX to avoid an apparent
539      system problem.  PR 11408.  [Jeff Trawick]
540
541   *) Add --includedir flag to apr-config.  [Justin Erenkrantz]
542
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]
546
547   *) Allow apr-config to work in symlinked install directories when
548      'realpath' is available.  [Justin Erenkrantz]
549
550   *) Namespace protect the header files in include/arch
551      [Thom May]
552
553   *) Add function apr_filepath_encoding and associated constants.
554      [Branko Čibej]
555
556   *) Allow apr_hash to have greater than int number of elements.
557      [Justin Erenkrantz]
558
559   *) Allow generation of dependencies by non-GCC compilers.
560      [Justin Erenkrantz]
561
562   *) Prevent obscenely large values of precision in apr_vformatter
563      from clobbering a buffer. [Sander Striker, Jim Jagielski]
564
565   *) limit the renames performed in apr_rename.pl to the most recent renames.
566      [Thom May]
567
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]
573
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]
576
577   *) Add DougM's apr_rename.pl script into helpers, and update for the new 
578      batch of updates [Thom May]
579
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 
603      [Thom May]
604
605   *) Add APR_IPV6_V6ONLY socket option.  [Jeff Trawick]
606
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]
615
616   *) Update doxygen tags.  [Justin Erenkrantz]
617
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]
622      
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]
626
627   *) Win32: Fix APR_APPEND file i/o. [Bill Stoddard]
628
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]
631
632   *) Add recognition of and socket API support for the SCTP protocol.
633      [Randall Stewart <randall@stewart.chicago.il.us>]
634
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]
639
640   *) Add apr_atomic_casptr() to support atomic compare-and-swap
641      of pointers  [Brian Pane]
642
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>]
647
648   *) Fix the detection of INT64_C() when defined in <stdint.h>.
649      [Joe Orton <joe@manyfish.co.uk>]
650
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>]
655
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]
659
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]
663
664   *) Support for SCO OpenServer Release 5 [Kean Johnston <jkj@caldera.com>]
665
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]
669
670   *) Add --bindir option to apr-config.  [Justin Erenkrantz]
671
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.
676      [Ryan Bloom]
677
678   *) Fix a broken check for a failure to read from the random device file.
679      PR 12615  [tenthumbs@cybernex.net]
680
681   *) Print informative link errors on Darwin.  [Justin Erenkrantz]
682
683 Changes with APR 0.9.1
684
685   *) Fixed usage of alloca in apr_poll() on Tru64
686      [Dave Hill <ddhill@zk3.dec.com>]
687
688   *) Running "make check" in the toplevel directory or the test/ directory
689      will build and run all test programs.  [Aaron Bannert]
690
691   *) Add apr_array_pop().  [Justin Erenkrantz]
692
693   *) Fixed the native SPARC v8plus version of apr_atomic_dec
694      to match the semantics of the default C version [Brian Pane]
695
696 Changes with APR 0.9.0
697
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]
702
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
707      for this case.
708      [R Samuel Klatchko <rsk@brightmail.com>]
709
710   *) handle leak related to threads on Windows2000/XP 
711      [INOUE Seiichiro <inoue@ariel-networks.com>]
712
713   *) Includes moved to INCLUDEDIR/apr-{major} (e.g. /usr/include/apr-0)
714      [Greg Stein]
715
716   *) libtool versioning is used to give the library sonames a real
717      value. The libraries will be libapr-{major}.so.0.{minor}.{patch}
718      [Greg Stein]
719
720   *) Fix apr_tokenize_to_argv() to remove the escape character
721      (backslash) from the argument tokens. PR 11793 [Paul J. Reder]
722
723   *) Add APR_PARSE_ARGUMENTS and APR_LAYOUT macros for better layout
724      support. [Thom May]
725
726   *) Add parallel-apr layout which utilizes the major version number in
727      directories and library names.  [Justin Erenkrantz]
728
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]
732
733   *) Add --version to apr-config so that apps can retrieve the version
734      information of the (installed) APR. [Greg Stein]
735
736   *) Remove the APRVARS system; apps should use apr-config. [Greg Stein]
737
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
741      
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]
746
747   *) Change config.nice generation to always expand variables.
748      [Justin Erenkrantz]
749
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.
754      [William Rowe]
755
756   *) don't perform a strlen on that name value without checking for NULL 
757      first (in getopt)
758      [David Waite <mass@akuma.org>, Ian Holsman]
759
760   *) Added apr_strtoll() and apr_atoll() to strings lib.
761      [Shantonu Sen <ssen@apple.com>, Wilfredo Sanchez]
762
763   *) Added a lightweight internal index to apr_table_t to speed up
764      table lookup operations  [Brian Pane]
765
766   *) initalize handle members to invalid before calling createprocess
767      on win32 [Rob Saccoccio <robs@fastcgi.com>]
768
769   *) Removed apr/i18n to apr-util/xlate for inclusion of apr-iconv
770      as required by missing libiconv.  [William Rowe]
771
772   *) Removed apr/md5 and apr/uuid into apr-util/crypto.  [William Rowe]
773
774   *) Add APR_BUFFERED support to apr_os_file_put().  [Justin Erenkrantz]
775
776   *) Fix misinterpretation of timeout for select() on Win32/Netware.
777      Identified by [TANAKA Koichi <tanaka@ariel-networks.com>]
778
779   *) Re-write apr_poll() on Unix.  This improves the performance by
780      giving the user back control over the memory in the pollset.
781      [Ryan Bloom]
782
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]
786
787   *) FreeBSD: change apr_sendfile to accomodate a 4.6 kernel patch.
788      [Greg Ames]
789
790   *) Faster code for the apr_table get/set functions  [Brian Pane]
791
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]
795
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.
798      [Cliff Woolley]
799
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
802      HP-UX/Itanium.  
803      [Madhusudan Mathihalli <madhusudan_mathihalli@hp.com>]
804
805   *) Correct shared library support on Darwin to not fatally error out
806      when a shared library does not exist.  [Justin Erenkrantz]
807
808   *) Added optimized atomic CAS support for Linux/x86 (available only
809      when APR is configured with --enable-nonportable-atomics=yes)
810      [Brian Pane]
811
812   *) Fix a compile error in the EGD support in rand.c on older Solaris
813      versions.  PR 9976  [Jim Morris <jmorris@sunflower.com>]
814
815   *) Fixed apr_file_seek() to unset the eof_hit flag.  [Stas Bekman]
816
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]
820
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.
825      [Jim Jagielski]
826
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]
830
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]
836
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]
840
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] 
846
847   *) Renamed APR_XtOffset -> APR_OFFSET and APR_XtOffsetOf -> APR_OFFSETOF.
848      [Cliff Woolley]
849
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.
853      [Cliff Woolley]
854
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]
859
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.
863      [Jeff Trawick]
864
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.
868      [Jeff Trawick]
869
870   *) Fixed apr_strfsize formatting of values over 1 gig
871      [Matsuzaki Yoshinobu <maz@iij.ad.jp>]
872
873   *) Renamed --disable-atomics as --disable-optimized-atomics,
874      since it doesn't really disable the atomics.  [Aaron Bannert]
875
876   *) Converted apr_pcalloc to a macro  [Brian Pane]
877
878   *) Fixed APR_STATUS_IS_ETIMEDOUT macro.
879      [Dagfinn Aarvaag <dagfinn.aarvaag@beepscience.com>]
880
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]
884
885   *) Remove Linux atomic support since it does not have a usable
886      userspace atomic interface.  [Justin Erenkrantz]
887
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]
890
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]
893
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]
896
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.
899      [Jeff Trawick]
900
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]
903
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>,
907      Jim Jagielski]
908
909   *) Rename apr_get_groupname to apr_group_name_get.
910      [Thom May <thom@planetarytramp.net>]
911      
912   *) Allow VPATH builds to properly build dependencies and switch to
913      a .deps dependency model to mimic httpd-2.0.  [Justin Erenkrantz]
914
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>]
918
919   *) Ensure that the ATOMIC_HASH can not be negative.
920      [Joe Orton <jorton@redhat.com>]
921
922   *) Fix a problem with eof reporting with Unix file I/O on 
923      unbuffered files.  [Stas Bekman <stas@stason.org>]
924
925   *) Rename apr_explode_time to apr_time_exp_tz.
926      [Thom May <thom@planetarytramp.net>]
927
928   *) Rename apr_explode_localtime to apr_time_exp_lt.
929      [Thom May <thom@planetarytramp.net>]
930
931   *) Set precompiler for Solaris atomics when using GNU binutils.
932      PR 7876.  [solomon@conceptshopping.com (Marvin Solomon)]
933
934   *) AIX: Fix breakage with 64-bit builds on versions of AIX prior
935      to 5L.  PR 7957  [Jeff Trawick]
936
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]
940
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]
945
946   *) Fix some daylight savings time breakage on (at least) AIX, 
947      Solaris, and HP-UX.  [Jeff Trawick]
948
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.
952      [Jim Jagielski]
953
954   *) Get flock-based mutexes to work in apps like Apache.  Use the
955      same permissions on flock- and fcntl-based mutexes as Apache
956      1.3.  [Jeff Trawick]
957
958   *) Fix apr-config so that it will not attempt to cd to a non-existent
959      directory.  [Justin Erenkrantz]
960
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.
964      [Jim Jagielski]
965
966   *) Improve detection of the INT64_C macro to prevent problems
967      with HP-UX's ANSI C compiler.  PR 8932.  [Justin Erenkrantz]
968
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]
974
975   *) Don't mask SIGUSR2 [Jin Hong <jinh@cnet.com>]  
976
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>]
980
981   *) apr_atomic_dec now returns a zero value if the value of 
982      the atomic is zero, non-zero otherwise [Ian Holsman]
983
984   *) When opening a file, only create an internal thread mutex
985      if APR_XTHREAD is set.  [Brian Pane]
986
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]
990
991   *) Fix a segfault in apr_thread_rwlock_destroy() on Win32.
992      [INOUE Seiichiro <inoue@ariel-networks.com>]
993   
994   *) configure now checks to see if we can change DNS timeout values
995      [Ian Holsman]
996
997   *) Fix a bug in apr_file_seek() on Unix when using buffered
998      files.  PR 10003 [Jeff Trawick]
999
1000   *) Small table performance optimization: eliminate the
1001      zero-fill of newly allocated elements when expanding
1002      a table's size. [Brian Pane]
1003
1004   *) Allow APR to install its generated libtool(s) via the 
1005      --with-installbuilddir option (defaults to ${datadir}/build).
1006      [Justin Erenkrantz]
1007
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>]
1011
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]
1018
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]
1024
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]
1033
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]
1037
1038   *) apr-atomic support for old-sparc's and gas on solaris
1039      [Dale Ghent <daleg@elemental.org>,  jean-frederic clere, Ian Holsman]
1040
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]
1044
1045   *) Implement apr_global_lock_foo() on Win32
1046      [Bill Stoddard]
1047
1048   *) Fix select() argument call when waiting for IO.  PR 9674.
1049      [David MacKenzie <djm@pix.net>]
1050
1051   *) Add a new lock API (apr_global_mutex_t) to provide guaranteed
1052      cross-process AND cross-thread mutual exclusion.  [Aaron Bannert]
1053
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]
1058
1059   *) Enable autoconf 2.52{f,g} build support.
1060      [Blair Zajac <blair@orcaware.com>]
1061
1062   *) Added new functions for atomic operations. These are experimental
1063      at the moment, so use in apps is discouraged [Ian Holsman]
1064
1065   *) Correct serious problems with the Win32 apr_file_dup2 
1066      and apr_file_open_stdxxx() fns.  [William Rowe]
1067
1068   *) Begin implementation of the WinCE port.
1069      [Mladen Turk <mturk@mappingsoft.com>]
1070
1071   *) Disable SHMEM_MMAP_ZERO on HPUX 11.x where it is not supported.
1072      Use SHMEM_SHMGET_ANON instead.  [Aaron Bannert]
1073
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]
1076
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]
1080
1081   *) added APR_PROGRAM_ENV and APR_PROGRAM_PATH options for starting
1082      processes via apr_proc_create() [Greg Stein]
1083
1084   *) Deprecated apr_pool_free_blocks_num_bytes() [Sander Striker]
1085
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]
1089      
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]
1093
1094   *) Implemented name-based shared memory on Unix.  [Aaron Bannert]
1095
1096   *) Fix spelling mistakes in APRDesign.  
1097      [Blair Zajac <blair@orcaware.com>]
1098
1099   *) Ensure that apr_file_mktemp creates the temp file if it isn't there.
1100      [John Sterling <sterling@covalent.net>]
1101
1102   *) Make sure to pre-mark anon SysV shared memory segments as
1103      removed. [Jim Jagielski]
1104
1105   *) Add --with-efence to allow usage of Electric Fence.
1106      [Justin Erenkrantz]
1107
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]
1112
1113   *) Add new define APR_POOL_DEBUG_VERBOSE which spits out info
1114      about pool creation/destruction [Ian Holsman]
1115
1116   *) Fix GMT offset adjustments for platforms that do not have native
1117      GMT offset adjustments.  [Jon Travis <jtravis@covalent.net>]
1118
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]
1125
1126   *) Add --with-egd to support EGD-compatible entropy gatherers for 
1127      those platforms without native support.  [Justin Erenkrantz]
1128
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]
1133
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]
1138
1139   *) Add apr_sockaddr_equal() for comparing APR sockaddrs.
1140      [Jeff Trawick]
1141
1142   *) Win32: apr_sendfile() should return APR_ENOTIMPL if
1143      oslevel < WINNT. [Bill Stoddard]
1144
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]
1150
1151   *) Add apr-config - a shell script to allow third-party programs
1152      easy access to APR configuration parameters.  [Justin Erenkrantz]
1153
1154   *) Add find_apr.m4 to allow third-party programs that use APR to
1155      have a standard m4 macro for detection.  [Greg Stein]
1156
1157   *) SEGV in apr_table_overlap [Brian Pane]
1158
1159   *) apr_array_copy speedup by removing the zero-fill [Brian Pane]
1160
1161   *) Fix build breakage on systems with getaddrinfo() but not 
1162      gai_strerror() (e.g., RedHat 5.2).  [Jeff Trawick]
1163
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>]
1166
1167   *) Fix a buglet that caused APR_FILE_BASED_SHM to be set inadvertently 
1168      on some platforms (e.g., Linux, AIX).  [Jeff Trawick]
1169
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]
1173
1174   *) Speed up apr_pool_userdata_set[n] by letting hash_set figure out
1175      the strings length.  [Brian Pane <bpane@pacbell.net>]
1176
1177   *) New function apr_mmap_dup. This is called in the mmap_setaside.
1178      [Brian Pane <bpane@pacbell.net>]
1179
1180   *) Speed up the apr_hash_t implementation's handling of APR_HASH_KEY_STRING.
1181      [Brian Pane <bpane@pacbell.net>]
1182
1183   *) Tweak apr_gethostname() so that it detects truncation of the
1184      name and returns an error.  [Jeff Trawick]
1185
1186   *) Fix bug in Darwin DSO code.  [Sander Temme]
1187
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]
1191
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>]
1195
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.
1200      [Jeff Trawick]
1201
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>]
1205
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]
1209
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]
1213
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>]
1217
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>]
1221
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]
1226
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]
1230
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.
1235      [Aaron Bannert]
1236
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>]
1242
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>]
1248
1249   *) Add support for QNX 6.  [J.T. Conklin <jtc@acorntoolworks.com>]
1250
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]
1256
1257   *) Add the apr_thread_cond_timedwait function to the condition
1258      variable API.   [Aaron Bannert]
1259
1260   *) Fixed apr_file_mktemp on systems without mkstemp (Win32, etc).
1261      [Mladen Turk, Cliff Woolley]
1262
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>]
1266
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]
1271
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]
1276
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.
1280      [William Rowe]
1281
1282   *) Optimize apr_pstrcat by caching lengths of first 6 strings
1283      [Brian Pane <bpane@pacbell.net>]
1284
1285   *) Add pool accessors to the apr_thread_mutex_t datatype.
1286      [Aaron Bannert <aaron@clove.org>]
1287
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]
1292
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>]
1297
1298   *) Add process locking API to APR. [Aaron Bannert <aaron@clove.org>]
1299
1300   *) Add condition variables for Windows.  [Ryan Bloom]
1301
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>]
1305
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.  
1309      [Jeff Trawick]
1310
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]
1317
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.)
1323      [William Rowe]
1324
1325   *) Add the new thread read/write lock API to APR.
1326      [Aaron Bannert <aaron@clove.org>]
1327
1328   *) Add the new thread mutex lock API to APR.
1329      [Aaron Bannert <aaron@clove.org>]
1330   
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>]
1334
1335   *) Initial support for cygwin.  [Stipe Tolj <tolj@wapme-systems.de>]
1336
1337   *) Fix a problem with buffered files on Unix.  [Brian Havard]
1338
1339   *) Fix the bungling of getaddrinfo() error codes.  [Jeff Trawick]
1340
1341   *) Add an apr_thread_once function to APR.  This allows a
1342      program to ensure that a function is only called once.
1343      [Ryan Bloom]
1344
1345   *) APR Documentation is now in Doxygen format.
1346      [Ian Holsman]
1347
1348   *) Get apr_ungetc() to work with buffered files on Unix.
1349      [Jeff Trawick]
1350
1351   *) Fixed apr_filepath_root on Unix [William Rowe, Cliff Woolley].
1352
1353   *) Rename XtOffset to APR_XtOffset.  This namespace protection
1354      is important to keep from conflicting with other packages.
1355      [Perl]
1356
1357   *) Introduce a new --disable-ipv6 option to disable IPv6 support.
1358      [Sterling Hughes <sterling@designmultimedia.com>, Jeff
1359      Trawick]
1360
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]
1364
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.
1371      [Ryan Bloom]
1372
1373   *) Move the necessary shared memory code from MM into APR and remove
1374      our dependency upon MM.  [Justin Erenkrantz]
1375
1376   *) Get apr_lock_file and apr_unlock_file working on Windows 9x.
1377      [Mladen Turk, Bill Stoddard]
1378
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]
1383
1384   *) Wrap all functions in APR_DECLARE macro. 
1385      [Sterling Hughes <sterling@designmultimedia.com>]
1386
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]
1392
1393   *) Fix apr_dir_rewind() for Win32 to avoid returning a bogus error.
1394      [Jeff Trawick, William Rowe]
1395
1396   *) Detect required libraries first.  This minimizes the libraries
1397      needed in apr_hints.m4.  [Justin Erenkrantz]
1398
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>]
1402
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]
1408
1409   *) Better installation.  This makes us install the APRVARS file,
1410      as well as MM.  [Ryan Bloom]
1411
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]
1415
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>]
1422
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]
1426
1427   *) Close file descriptor when we are done with fcntl or flock-based
1428      cross-process lock.  Otherwise, we leak descriptors.
1429      [Justin Erenkrantz]
1430  
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]
1436
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]
1440
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]
1447
1448   *) apr_connect()on Windows: Handle timeouts and returning the proper
1449      status code when a connect is in progress. [Bill Stoddard]
1450
1451   *) apr_connect() on Unix: Handle EINTR during connect().  Handle timeouts.
1452      [Jeff Trawick]
1453
1454   *) Handle the weird case where getpwnam() returns NULL but errno is zero.
1455      [Jeff Trawick]
1456
1457   *) Add apr_file_flags_get() which returns the flags that were originally
1458      passed in to apr_file_open().  [Cliff Woolley]
1459
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]
1463
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>]
1466
1467   *) apr_pstrcat() optimizations [Doug MacEachern, Jeff Trawick]
1468
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]
1472
1473   *) Clean up Win32 locks when the pool goes away.
1474      [Justin Erenkrantz, Jeff Trawick]
1475
1476   *) Implement apr_get_home_directory for Win32.  [William Rowe]
1477
1478   *) Complete the implementation of LARGEFILE support on Win32, although
1479      the mmap semantics still need a touch of work.  [William Rowe]
1480
1481   *) Fix the APR_XTHREAD support, and apr_sendfile mechanics, so we can
1482      handle cross-threaded file handles on Win32.  [William Rowe]
1483
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]
1487
1488   *) Add apr_open_stdin.  This mirrors apr_open_stderr, except it works
1489      on stdin.  [Aaron Bannert <abannert@ebuilt.com>]
1490
1491   *) Add apr_strtok(), a thread-safe flavor of strtok() which has the
1492      same interface as strtok_r().  [Jeff Trawick]
1493      
1494   *) Add other child support to Win32 [Bill Stoddard]
1495
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.
1499      [Jeff Trawick]
1500
1501   *) Allow LTFLAGS to be overridden by the configure command-line 
1502      (default="--silent") and introduce LT_LDFLAGS.  [Roy Fielding]
1503
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>
1508      [David Reid]
1509
1510   *) Fix a problem with the FreeBSD flavor of apr_sendfile() where we 
1511      could return APR_EAGAIN+bytes_sent.  [Jeff Trawick]
1512
1513   *) Fix a problem on unixware where clearing h_errno wouldn't work.
1514      Use set_h_errno() instead.  PR #7651  [Jeff Trawick]
1515
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]
1519
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>]
1523
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]
1532  
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]
1536
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.
1540      [Wilfredo Sanchez]
1541
1542   *) Add DSO support for dyld platforms (Darwin/Mac OS and OpenStep).
1543      [Wilfredo Sanchez]
1544
1545   *) Amend the time code to better deal with time zones.
1546      [David Reid]
1547
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]
1551
1552   *) Make clean, distclean, and extraclean consistently according to the
1553      Gnu makefile guidelines.  [Justin Erenkrantz <jerenkrantz@ebuilt.com>]
1554
1555   *) Initial implementation of of apr_filepath (get/set/parse_root and 
1556      merge) for Windows.  [William Rowe]
1557
1558   *) Cleaned up implementation of of apr_filepath (get/set/parse_root
1559      and merge) for Unix.  [Greg Stein, William Rowe]
1560
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]
1564
1565   *) If we don't have sigwait() in the system, see if sigsuspend() is
1566      available, and use that instead. [Wilfredo Sanchez]
1567
1568   *) Make libtool optional at configure time.  This is done with 
1569      --disable-libtool.  [Ryan Bloom]
1570
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]
1574
1575   *) Recognize the presence of getnameinfo() on Tru64.  [David Reid]
1576
1577   *) Allow APR to be installed. [Ryan Bloom]
1578
1579   *) Generate config.nice for easy re-run of configure. [Roy Fielding]
1580
1581   *) Define preprocessor flags in CPPFLAGS instead of CFLAGS and
1582      bring some sanity to the compiler command-lines. [Roy Fielding]
1583
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.
1586      [Victor Orlikowski]
1587
1588   *) Allow libtool 1.3b to be used.  [Victor Orlikowski]
1589
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]
1594
1595   *) Win32: Get APR to compile with MSVC 5.0 (a.k.a. VC97).
1596      PR #7489  [Jeff Trawick]
1597
1598   *) First draft implementation of apr_filepath (get/set/parse_root
1599      and merge) for Unix.  [William Rowe]
1600
1601   *) Add apr_ipsubnet_create() and apr_ipsubnet_test() for testing
1602      whether or not an address is within a subnet.  [Jeff Trawick]
1603
1604   *) Add apr_sendto and apr_recvfrom for Unix.  Start of adding UDP
1605      support.  [David Reid]
1606
1607   *) Add a method to get the password from the system for a given
1608      user.  [John Barbee <jbarbee@covalent.net>]
1609
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>]
1613
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]
1617
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]
1621
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]
1624
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]
1629
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]
1635
1636   *) Cope with BSDi installations where the default make has been
1637      replaced with GNU make.  [Joe Orton <joe@manyfish.co.uk>]
1638
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.
1644      [Roy Fielding]
1645
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]
1648
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]
1652
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]
1655
1656   *) Force FreeBSD to compile without threads by default.  To enable
1657      threads, use --enable-threads on the configure line.
1658      [Ryan Bloom]
1659
1660   *) Purge system password buffer before returning from apr_password_get.
1661      No longer abuses bufsize argument on return.  [William Rowe]
1662
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
1665      sense.  [Ryan Bloom]
1666
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]
1671
1672   *) Fix a problem with configure on NetBSD.  We must include sys/types.h
1673      for some platforms.  [jun-ichiro hagino <itojun@kame.net>]
1674
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.
1680      [Mike Pilato]
1681
1682   *) Implement WinNT Unix'ish permissions. [William Rowe]
1683
1684   *) Corrected an OS2'ism of apr_get_home_directory.  OS2 now returns the
1685      proper directory, including the user's name.
1686
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)).
1689      [William Rowe]
1690
1691   *) Moved inclusion of <os2.h> header from multiple modules into apr.h
1692      [William Rowe]
1693
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]
1698
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]
1702
1703   *) Eliminate the APR_SIG* aliases for standard signal names,
1704      since they serve no useful purpose.  [Roy Fielding]
1705
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]
1709
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]
1714
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]
1719
1720   *) Correct Win32 apr_stat/lstat/getfileinfo/dir_read to all zero out
1721      the finfo buffer on success (or incomplete success).  [William Rowe]
1722
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]
1726
1727   *) Fixed apr_open and apr_rename to function on Win9x.
1728      [Mike Pilato <cmpilato@collab.net>] 
1729   
1730   *) Add apr_open_stdout.  This mirrors apr_open_stderr, except it works
1731      on stdout.  [Mike Pilato <cmpilato@collab.net>]
1732
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>]
1736
1737   *) Fix the configure script so that we can build from a different
1738      directory.  [Kevin Pilch-Bisson <kevin@pilch-bisson.net>]
1739
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]
1744
1745   *) Fix make depend.  [Ryan Bloom]
1746
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]
1751
1752   *) Add linkage declarations to the DSO code.
1753      [Gregory Nicholls <gnicholls@level8.com>]
1754
1755   *) Some adjustment of hints.m4 setting flags (used to check if null
1756      first) and added some verbosity. [Jim Jagielski]
1757
1758   *) Specify APR_DECLARE to some of the APR functions.  This helps linking
1759      on some operating systems.  [Gregory Nicholls <gnicholls@level8.com>]
1760
1761   *) Libtool'ized APR and converted all the makefiles to share rules
1762      from helpers/rules.mk. [Greg Stein]
1763
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]
1768
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>]
1775
1776   *) Remove the ability to allocate memory out of a NULL pool.
1777      [Ryan Bloom]
1778
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]
1782
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]
1791
1792   *) Fix a logic error in the poll code when implemented using select.
1793      [Nick Caruso <ncaruso@gamesville.com>]
1794
1795   *) FreeBSD does not support sendfile() in combination with threads
1796      before version 4.2.  We no longer even try to support it.
1797      [Ryan Bloom]
1798
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]
1806
1807   *) Cleanup to help Apache support programs build cleanly.
1808      [Cliff Woolley <cliffwoolley@yahoo.com>]
1809
1810   *) Cleanup some compiler warnings on Solaris
1811      [Dale Ghent <daleg@elemental.org>]
1812
1813   *) apr_getaddrinfo() can now return multiple addresses for a host
1814      via the next field in apr_sockaddr_t.  [Jeff Trawick]
1815
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]
1820
1821   *) Rename apr_opendir to apr_dir_open.  [Ryan Bloom]
1822
1823   *) apr_snprintf()'s %pI format string now takes apr_sockaddr_t *
1824      instead of sockaddr_in *.  [Jeff Trawick]
1825
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]
1830
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]
1834
1835
1836 Changes with APR a9
1837
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.
1841
1842   *) Only support IPv6 if we have sockaddr_in and a working 
1843      getaddrinfo().  [Jeff Trawick]
1844
1845   *) Add apr_parse_addr_port() for parsing the hostname:port portion
1846      of URLs and similar strings.  [Jeff Trawick]
1847
1848   *) Add Win32 MMAP support [William Rowe]
1849
1850   *) Allow the APR programmer to specify if the MMAP is read-only or
1851      write-able.
1852      [Ryan Bloom and Will Rowe]
1853
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]
1857
1858   *) Add apr_make_os_sock() for constructing a fully-capable APR
1859      socket.  [Jeff Trawick]
1860
1861   *) Make APR's shared memory routines always allocate enough memory
1862      for the requested segment, the MM internal types, and the APR
1863      internal types.
1864      [Ryan Bloom]
1865
1866   *) Add APR_SIZE_T_FMT.  Get the other APR_xx_T_FMT variables
1867      defined properly on AIX.  [Jeff Trawick]
1868
1869   *) network API changes: get rid of apr_get_socket_inaddr(), 
1870      apr_get_remote_name(), and apr_get_local_name()  [Jeff Trawick]
1871
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
1875      file.
1876      [Ryan Bloom]
1877
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]
1887      
1888   *) Get APR_OFF_T_FMT defined properly on Solaris Sparc.
1889      [Jeff Trawick]
1890
1891
1892 Changes with APR a8
1893
1894   *) Change the name of the sa_len field in apr_sockaddr_t to salen.
1895      Some platforms have a macro named sa_len.
1896      [Tony Finch]
1897
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]
1904
1905   *) apr_create_tcp_socket() has been removed.  Use apr_create_socket()
1906      instead.  [Jeff Trawick]
1907
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