~ubuntu-branches/ubuntu/feisty/apache2/feisty

« back to all changes in this revision

Viewing changes to srclib/apr/CHANGES

  • Committer: Bazaar Package Importer
  • Author(s): Andreas Barth
  • Date: 2006-12-09 21:05:45 UTC
  • mfrom: (0.6.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20061209210545-h70s0xaqc2v8vqr2
Tags: 2.2.3-3.2
* Non-maintainer upload.
* 043_ajp_connection_reuse: Patch from upstream Bugzilla, fixing a critical
  issue with regard to connection reuse in mod_proxy_ajp.
  Closes: #396265

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Changes for APR 1.2.7
 
2
 
 
3
  *) Netware - add missing apu_version.c parsing for apu_version_string()
 
4
     to the Netware specific builds.  Unix platforms supporte this API 
 
5
     since 0.9.1.  [Brad Nicholes]
 
6
 
 
7
  *) Fix a regression in the updated win32 apr_file_read with timeouts
 
8
     since 1.2.6 which would fail to return the bytes read in specific
 
9
     edge cases.  [William Rowe]
 
10
 
 
11
Changes for APR 1.2.6
 
12
 
 
13
  *) Fully test the detected libuuid or libc based uuid_create or
 
14
     uuid_generate function against the detected uuid.h, uuid/uuid.h,
 
15
     or sys/uuid.h (using only the first-found .h examined in that order)
 
16
     for correct compilation.  Resolves various apr_os_uuid issues on
 
17
     multiple environments.  [William Rowe]
 
18
 
 
19
  *) Prevent detection of robust mutex support with glibc 2.4,
 
20
     fixing APR_LOCK_PROC_PTHREAD locks.  PR 38442.  [Joe Orton]
 
21
 
 
22
  *) Correct bug in kqueue backend for apr_pollset where we would
 
23
     erroneously indicate that a socket was readable or writeable.
 
24
     [Garrett Rooney]
 
25
 
 
26
  *) Make the filePtr in apr_file_t an apr_off_t on Unix, to avoid issues
 
27
     truncating offsets down to 32 bits on large file systems.
 
28
     [Garrett Rooney]
 
29
 
 
30
  *) Fix seeks with files opened in xthread mode for append on win32.
 
31
     [M Joonas Pihlaja <jpihlaja cc.helsinki.fi>, Garrett Rooney]
 
32
 
 
33
  *) Keep testpipe.c from hanging on win32. [Garrett Rooney]
 
34
 
 
35
  *) Cause apr_file_write_full on win32 to consider the timeout value set by 
 
36
     apr_file_pipe_timeout_set.  PR 30182
 
37
     [<eholyat olf.com>]
 
38
 
 
39
  *) Fix assertion from double close of a handle with a rwlock on win32.
 
40
     [Evgueni Brevnov <evgueni.brevnov gmail.com>]
 
41
 
 
42
  *) Fix EOF handling for unbuffered reads on win32.
 
43
     [Konstantin Sharenkov <Konstantin.Sharenkov enterra-inc.com>]
 
44
 
 
45
  *) Documented that apr_stat and apr_dir_read can return APR_INCOMPLETE,
 
46
     and how to determine which parts of the resulting apr_finfo_t can be
 
47
     used in such a case.
 
48
     [Garrett Rooney]
 
49
 
 
50
  *) Fix passing "" as an argument to the program started by apr_proc_create
 
51
     on Win32.
 
52
     [Philip Martin <philip codematters.co.uk>
 
53
 
 
54
  *) Bugfix for apr_pollset_poll() on systems that implement pollsets
 
55
     using select(2): properly compute the number of signalled desciptors
 
56
     when one or more of them are both readable and writable.
 
57
     [Dror Shilo <Dror.Shilo ericom.com>, Gerry <gerry everythingsucks.co.uk>]
 
58
 
 
59
  *) Fix apr_file_seek() to catch write failures when flushing
 
60
     pending writes for a buffered file.  [Joe Orton]
 
61
 
 
62
Changes for APR 1.2.2
 
63
 
 
64
  *) Fix crash in apr_dir_make_recursive() for relative path
 
65
     when the working directory has been deleted.  [Joe Orton]
 
66
 
 
67
  *) Win32: fix apr_proc_mutex_trylock() to handle WAIT_TIMEOUT,
 
68
     returning APR_EBUSY.  [Ronen Mizrahi <ronen@tversity.com>]
 
69
 
 
70
  *) Fix apr_socket_opt_set() issue where TCP_NODELAY would be
 
71
     set when TCP_DEFER_ACCEPT was set.  [Brian Pane]
 
72
 
 
73
  *) Allow TCP_NODELAY and TCP_CORK to be set concurrently on
 
74
     Linux 2.6 and later.  [Joe Orton]
 
75
 
 
76
  *) Fix apr_socket_addr_get(,APR_REMOTE,) after a non-blocking
 
77
     connection is completed.  PR 32737.  [Joe Orton]
 
78
 
 
79
  *) Fix apr_file_gets() and apr_file_read() to catch write failures
 
80
     when flushing pending writes for a buffered file.  [Joe Orton]
 
81
 
 
82
  *) Fix apr_file_write() infinite loop on write failure for buffered
 
83
     files.  [Erik Huelsmann <ehuels gmail.com>]
 
84
 
 
85
  *) Fix error handling where apr_uid_* and apr_gid_* could return
 
86
     APR_SUCCESS in failure cases.  PR 34053 continued.  [Joe Orton]
 
87
 
 
88
Changes for APR 1.2.1
 
89
 
 
90
  *) Refactor Win32 condition variables code to address bugs 27654, 34336.
 
91
     [Henry Jen <henryjen ztune.net>, E Holyat <eholyat yahoo.com>]
 
92
 
 
93
Changes for APR 1.2.0
 
94
 
 
95
  *) If getpwuid_r or getgrgid_r set their results to NULL, it is an error.
 
96
     PR 34053. [Paul Querna]
 
97
 
 
98
  *) Switch to lazy initialization of the pollset that's used within
 
99
     apr_file_t on platforms where apr_wait_for_io_or_timeout() doesn't
 
100
     use poll(2).  (This fixes a performance problem observed in httpd-2.x
 
101
     on OS X due to the use of poll now being disabled by default on that
 
102
     platform.)  [Brian Pane]
 
103
 
 
104
  *) Fix Pollset corruption on Solaris 10. [Paul Querna]
 
105
 
 
106
  *) Add %pt support to apr_snprintf() for printing an apr_os_thread_t
 
107
     in hex format.  [Jeff Trawick]
 
108
 
 
109
  *) Support APR_SO_SNDBUF and APR_SO_RCVBUF on Windows.  PR 32177.
 
110
     [Sim <sgobbi datamanagement.it>, Jeff Trawick]
 
111
 
 
112
  *) Fix apr_table_overlap()'s handling of tables allocated from
 
113
     different pools.  [Joe Schaefer <joe+gmane sunstarsys.com>]
 
114
 
 
115
  *) Add support for uuid_generate on OS X 10.4. [Paul Querna]
 
116
 
 
117
  *) Include the C preprocessor flags in --cflags for pkg-config.
 
118
     [Paul Querna]
 
119
 
 
120
  *) Fix issue with poll() followed by net I/O yielding EAGAIN on
 
121
     Mac OS 10.4 (Darwin 8). [Wilfredo Sanchez]
 
122
 
 
123
Changes for APR 1.1.1
 
124
 
 
125
  *) Disable sendfile support for S/390 only in kernel versions < 2.4.0. 
 
126
     [Joe Orton]
 
127
 
 
128
  *) Fix posix rwlock detection on Darwin. [Aaron Bannert]
 
129
 
 
130
  *) Build fix for Multicast support on HP-UX 11.00 and Tru64 [Joe Orton]
 
131
 
 
132
  *) Fix libapr.rc for Win32 builds [William Rowe]
 
133
 
 
134
  *) Rewrite apr_file_writev_full using apr_file_write_full. [Paul Querna]
 
135
 
 
136
  *) Use APR_RING_CONCAT for moving dead list in KQueue, sys_epoll, and 
 
137
     Event Ports. [Paul Querna]
 
138
 
 
139
  *) find_apr.m4: Try installed APR before bundled copy if --with-apr not
 
140
     passed to configure.  [Justin Erenkrantz]
 
141
 
 
142
Changes for APR 1.1.0
 
143
 
 
144
  *) Added apr_procattr_user_set and apr_procattr_group_set
 
145
     setting the user and group for new processes.  [Mladen Turk]
 
146
 
 
147
  *) Add APR Multicast functions; including support for
 
148
     Source-Specific Multicast from Colm MacCarthaigh.  [Paul Querna]
 
149
 
 
150
  *) Add a build script to create a solaris package.  [Graham Leggett]
 
151
  
 
152
  *) Add support for APR_TCP_DEFER_ACCEPT.  [Paul Querna]
 
153
 
 
154
  *) Rename the apr_file_permissions macros (APR_UREAD, APR_UWRITE etc.)
 
155
     to have prefix APR_FPROT_ (old names kept for compatibility).
 
156
     [Stas Bekman]
 
157
 
 
158
  *) Emit the run-time link path option in apr-config after installation
 
159
     if the user is linking with libtool.  [Justin Erenkrantz]
 
160
 
 
161
  *) Add apr_file_writev_full to ensure an entire iovec is writen to a file.
 
162
     [Paul Querna]
 
163
 
 
164
  *) Remove the runtime test for Sendfile versions on FreeBSD. PR 25718.
 
165
     [Mike Silbersack <silby silby.com>, Paul Querna]
 
166
 
 
167
  *) Rename the apr_file_open macros (APR_READ, APR_WRITE, etc.) to
 
168
     have prefix APR_FOPEN_ (old names kept for compatibility).
 
169
     [Stas Bekman]
 
170
 
 
171
  *) Added apr_os_uuid_get() support for Linux via libuuid and for modern 
 
172
     BSDs which have uuid_create as part of their libc.  [Paul Querna]
 
173
 
 
174
  *) Added Solaris 10 'Event Ports' as a backend for APR Pollset.  This 
 
175
     backend also supports the APR_POLLSET_THREADSAFE flag.  [Paul Querna]
 
176
 
 
177
  *) Added the APR_POLLSET_THREADSAFE flag. This allows multiple threads
 
178
     to call the Pollset Add or Remove functions in a thread safe manner.
 
179
     Currently only EPoll and KQueue support this flag.  [Paul Querna]
 
180
 
 
181
  *) Split poll/unix/poll.c into separate files for each Poll or Pollset 
 
182
     implementation. [Paul Querna]
 
183
 
 
184
  *) Rewrite apr_file_printf to handle arbitrary length strings.
 
185
     PR 28029.  [Chris Knight <Christopher.D.Knight nasa.gov>,
 
186
     Garrett Rooney <rooneg electricjellyfish.net>]
 
187
 
 
188
Changes for APR 1.0.2
 
189
 
 
190
  *) [NetWare] Fixed some type mismatches in threadproc/netware/proc.c and
 
191
     locks/netware/thread_mutex.c that prevented APR from building with the
 
192
     latest release of the LibC SDK. [Brad Nicholes]
 
193
     
 
194
Changes for APR 1.0.1
 
195
 
 
196
  *) apr_password_get(): Fix the check for buffer overflow.  [Jeff Trawick]
 
197
 
 
198
  *) Fix HUP return codes in pollset when using KQueue.
 
199
     [Paul Querna]
 
200
 
 
201
  *) Prevent unbounded memory use during repeated operations on a hash table.
 
202
     [Julian Foad <julianfoad btopenworld.com>
 
203
 
 
204
  *) Moved repository to SVN
 
205
     [Hackathon]
 
206
 
 
207
  *) jlibtool: Ignore '-export-symbols-regexp' option.
 
208
     [Justin Erenkrantz]
 
209
 
 
210
  *) fix apr_file_dup and apr_file_dup2 win32 implementations
 
211
     to create a mutex [Steve Hay <steve.hay uk.radan.com>]
 
212
 
 
213
  *) Makes the threads to behave like on posix. If the thread is created
 
214
     without APR_DETACH expect that the thread_join will be called, so don't
 
215
     close the handle in advance, if the thread has already finished.
 
216
     [Mladen Turk]
 
217
 
 
218
  *) The apr/test/Makefile.win is missing a target to build a
 
219
     readchild.exe that test is depending on but is never built.
 
220
     [Mladen Turk]
 
221
 
 
222
  *) Improve apr_file_gets() performance on buffered files. [Justin Erenkrantz]
 
223
 
 
224
  *) Win32: Fix bug in apr_socket_sendfile that interferred with
 
225
     Win32 LSPs. PR 23982 [Jan Bilek, Bill Stoddard]
 
226
 
 
227
  *) Win32: Fix bug tracking the file pointer on a file opened for 
 
228
     overlapped/APR_XTHREAD io. [Bill Stoddard]
 
229
 
 
230
Changes with APR 1.0
 
231
 
 
232
  *) Only install apr-$MAJOR-config and add appropriate detection code to
 
233
     find_apr.m4 (APR_FIND_APR).  [Max Bowsher <maxb ukf.net>]
 
234
 
 
235
  *) Remove APR_STATUS_IS_SUCCESS() macro.  [Justin Erenkrantz]
 
236
 
 
237
  *) apr_proc_create() on Unix: Remove unnecessary check for read 
 
238
     access to the working directory of the child process.
 
239
     PR 30137.  [Jeremy Chadwick <apache jdc.parodius.com>]
 
240
 
 
241
  *) Add jlibtool - enabled with '--enable-experimental-libtool' option.
 
242
     [Justin Erenkrantz]
 
243
 
 
244
  *) Add support for KQueue and sys_epoll to apr_pollset.  [Paul Querna]
 
245
 
 
246
  *) Support threading on FreeBSD 5.x where kern.osreldate >= 502102.
 
247
     [Craig Rodrigues <rodrigc crodrigues.org>]
 
248
 
 
249
  *) Add an RPM spec file derived from Fedora Core.
 
250
     [Graham Leggett, Joe Orton]
 
251
 
 
252
  *) Fix apr_threadattr_detach_set() on Mac OS X.  PR 28472.
 
253
     [INOUE Seiichiro <inoue ariel-networks.com>]
 
254
 
 
255
  *) Change default inter-process locking mechanisms: POSIX semaphores
 
256
     and pthread cross-process mutexes are not used by default; on 
 
257
     Solaris, fcntl locks are used by default.  [Joe Orton]
 
258
 
 
259
  *) Add apr_threadattr_guardsize_set() for overriding the default stack
 
260
     guard area size for created created by apr_thread_create().
 
261
     [Joe Orton]
 
262
 
 
263
  *) Add apr_shm_remove() function for removing a named shared
 
264
     memory segment.  [Amit Athavale <amit_athavale persistent.co.in>]
 
265
 
 
266
  *) Add apr_strtoff() function for converting numeric strings into 
 
267
     apr_off_t values.  [Andr� Malo <nd perlig.de>, Joe Orton]
 
268
 
 
269
  *) Fix stack overflow with IPv6 apr_socket_accept() on Win32.
 
270
     PR 28471.  [inoue <inoue ariel-networks.com>]
 
271
 
 
272
  *) Add new functions apr_signal_block, apr_signal_unblock to block/unblock
 
273
     the delivery of a particular signal.  [Madhusudan Mathihalli]
 
274
 
 
275
  *) Add support for developers to use their own hashing function with
 
276
     apr_hash_make_custom.  [Ami Ganguli <hse_ami yahoo.co.uk>]
 
277
 
 
278
  *) Support "large files" by default on 32-bit Unix platforms which
 
279
     implement the LFS standard.  [Joe Orton]
 
280
 
 
281
  *) Add apr_threadattr_stacksize_set() for overriding the default
 
282
     stack size for threads created by apr_thread_create().
 
283
     [Jeff Trawick]
 
284
 
 
285
  *) The whole codebase was relicensed and is now available under
 
286
     the Apache License, Version 2.0 (http://www.apache.org/licenses).
 
287
     [Apache Software Foundation]
 
288
 
 
289
  *) Switch to a single, top-level make. [Greg Stein]
 
290
 
 
291
  *) new error status APR_STATUS_IS_ENOTENOUGHENTROPY, Doxygen fixes
 
292
     [Sander Temme <sander at temme dot net]
 
293
 
 
294
  *) Add apr_socket_type_get() for retrieving the type (e.g., stream)
 
295
     of the socket.  [Philippe M. Chiasson]
 
296
 
 
297
  *) Removed deprecated interface apr_proc_other_child_check() 
 
298
     that behaved differently between win32 and unix.
 
299
     The unix behavor is now accomplished with
 
300
         apr_proc_other_child_refresh_all(APR_OC_REASON_RESTART)
 
301
     The win32 behavor is now accomplished with
 
302
         apr_proc_other_child_refresh_all(APR_OC_REASON_RUNNING)
 
303
 
 
304
  *) Removed apr_socket_opt_{get|set}(..., APR_SO_TIMEOUT) which
 
305
     was deprecated in favor of apr_socket_timeout_{get|set}().
 
306
 
 
307
  *) Change i386 FreeBSD to use the asm routines in apr_atomic.h
 
308
     to overcome issues with the FreeBSD atomic functions return
 
309
     type on i386. [David Reid]
 
310
 
 
311
  *) Added new versions of the apr_atomic functions for
 
312
     use with 32-bit ints  [Brian Pane]
 
313
 
 
314
  *) The following deprecated interfaces have been removed:
 
315
 
 
316
     apr_accept                   -> apr_socket_accept
 
317
     apr_allocator_get_mutex      -> apr_allocator_mutex_get
 
318
     apr_allocator_get_owner      -> apr_allocator_owner_get
 
319
     apr_allocator_set_max_free   -> apr_allocator_max_free_set
 
320
     apr_allocator_set_mutex      -> apr_allocator_mutex_set
 
321
     apr_allocator_set_owner      -> apr_allocator_owner_set
 
322
     apr_atomic_add               -> apr_atomic_add32
 
323
     apr_atomic_cas               -> apr_atomic_cas32
 
324
     apr_atomic_dec               -> apr_atomic_dec32
 
325
     apr_atomic_inc               -> apr_atomic_inc32
 
326
     apr_atomic_read              -> apr_atomic_read32
 
327
     apr_atomic_set               -> apr_atomic_set32
 
328
     apr_bind                     -> apr_socket_bind
 
329
     apr_compare_groups           -> apr_gid_compare
 
330
     apr_compare_users            -> apr_uid_compare
 
331
     apr_connect                  -> apr_socket_connect
 
332
     apr_current_userid           -> apr_uid_current
 
333
     apr_explode_localtime        -> apr_time_exp_lt
 
334
     apr_explode_time             -> apr_time_exp_tz
 
335
     apr_filename_of_pathname     -> apr_filepath_name_get
 
336
     apr_file_set_inherit         -> apr_file_inherit_set
 
337
     apr_file_unset_inherit       -> apr_file_inherit_unset
 
338
     apr_getsocketopt             -> apr_socket_opt_get
 
339
     apr_get_groupid              -> apr_gid_get
 
340
     apr_get_groupname            -> apr_gid_name_get
 
341
     apr_get_home_directory       -> apr_uid_homepath_get
 
342
     apr_get_userid               -> apr_uid_get
 
343
     apr_get_username             -> apr_uid_name_get
 
344
     apr_group_name_get           -> apr_gid_name_get
 
345
     apr_implode_gmt              -> apr_time_exp_gmt_get
 
346
     apr_is_fnmatch               -> apr_fnmatch_test
 
347
     apr_listen                   -> apr_socket_listen
 
348
     apr_lstat                    -> apr_stat
 
349
     apr_pool_get_abort           -> apr_pool_abort_get
 
350
     apr_pool_get_parent          -> apr_pool_parent_get
 
351
     apr_pool_set_abort           -> apr_pool_abort_set
 
352
     apr_pool_sub_make            -> apr_pool_create_ex
 
353
     apr_proc_other_child_read    -> apr_proc_other_child_alert
 
354
     apr_recv                     -> apr_socket_recv
 
355
     apr_recvfrom                 -> apr_socket_recvfrom
 
356
     apr_send                     -> apr_socket_send
 
357
     apr_sendfile                 -> apr_socket_sendfile
 
358
     apr_sendto                   -> apr_socket_sendto
 
359
     apr_sendv                    -> apr_socket_sendv
 
360
     apr_setsocketopt             -> apr_socket_opt_set
 
361
     apr_shutdown                 -> apr_socket_shutdown
 
362
     apr_signal_get_description   -> apr_signal_description_get
 
363
     apr_sockaddr_ip_set          -> apr_sockaddr_info_get
 
364
     apr_sockaddr_port_get        -> (access directly)
 
365
     apr_sockaddr_port_set        -> apr_sockaddr_info_get
 
366
     apr_socket_create_ex         -> apr_socket_create
 
367
     apr_socket_set_inherit       -> apr_socket_inherit_set
 
368
     apr_socket_unset_inherit     -> apr_socket_inherit_unset
 
369
     FNM_NOMATCH                  -> APR_FNM_NOMATCH
 
370
     FNM_NOESCAPE                 -> APR_FNM_NOESCAPE
 
371
     FNM_PATHNAME                 -> APR_FNM_PATHNAME
 
372
     FNM_PERIOD                   -> APR_FNM_PERIOD
 
373
     FNM_CASE_BLIND               -> APR_FNM_CASE_BLIND
 
374
     MAX_SECONDS_TO_LINGER        -> APR_MAX_SECONDS_TO_LINGER
 
375
 
 
376
     The following interfaces have function argument changes:
 
377
 
 
378
     apr_mmap_dup
 
379
     apr_socket_create
 
380
 
 
381
     The following header files have been removed:
 
382
 
 
383
     apr_compat.h
 
384
 
 
385
Changes with APR 0.9.5
 
386
 
 
387
  *) Fix apr_snprintf() to respect precision for small floating point
 
388
     numbers.  PR 29621.  [Artur Zaprzala <zybi talex.pl>]
 
389
 
 
390
  *) Add command type APR_SHELLCMD_ENV for creating a process
 
391
     which is started by the shell and which inherits the parent's
 
392
     environment variables.  [Jeff Trawick]
 
393
 
 
394
  *) Don't try to enable run-time linking on AIX < 4.2, as this
 
395
     results in invalid linker options being used.  PR 29170.  
 
396
     [Jeff Trawick]
 
397
 
 
398
  *) Don't assume getnameinfo() can handle IPv4-mapped IPv6 addresses
 
399
     on any platforms.
 
400
     [Jeff Trawick, Joe Orton, Colm MacC�rthaigh <colm stdlib.net>]
 
401
 
 
402
  *) Support setuid, setgid and sticky file permissions bits on Unix.
 
403
     [Andr� Malo]
 
404
 
 
405
  *) Fix sign error in apr_file_seek(APR_END).
 
406
     [Greg Hudson <ghudson MIT.EDU>]
 
407
 
 
408
  *) Provide workaround for socklen_t declaration problem with 64-bit
 
409
     build on HP-UX.  Stop setting a PA-RISC-specific compile option
 
410
     on ia64.  Look for -mt thread option, which is used with HP-UX
 
411
     vendor compiler on ia64.  [Jeff Trawick, based on idea from
 
412
     Madhusudan Mathihalli]
 
413
 
 
414
  *) Return an error instead of silently failing when apr_poll() is
 
415
     used with file descriptors >= FD_SETSIZE.  (Unix systems with
 
416
     no native poll())  [Jeff Trawick, Brad Nicholes]
 
417
 
 
418
  *) Fix handling of negative numbers in apr_strtoi64() on platforms
 
419
     without strtoll.  [Joe Orton]
 
420
 
 
421
  *) Fix printing apr_int64_t values smaller than LONG_MIN on 32-bit
 
422
     platforms in apr_vformatter.  [Joe Orton]
 
423
 
 
424
  *) Fix apr_socket_opt_set with APR_IPV6_V6ONLY flag.  Fixes httpd
 
425
     Listen IPv6 socket behavior on FreeBSD 5.x, OpenBSD, NetBSD.
 
426
     [Justin Erenkrantz]
 
427
 
 
428
  *) Fix apr_time_exp_get() for dates in 2038.  
 
429
     [Philip Martin <philip codematters.co.uk>]
 
430
 
 
431
  *) Add APR_LARGEFILE flag to allow opening files with the
 
432
     O_LARGEFILE flag; not recommended for general use, see
 
433
     include/apr_file_io.h.  [Joe Orton]
 
434
 
 
435
  *) Various build fixes: thread_rwlock.c on some Solaris platforms
 
436
     (PR 22990); filestat.c on ReliantUnix (PR 22990); config.status
 
437
     on IRIX (PR 19251).  [Various]
 
438
 
 
439
  *) Use NI_NAMEREQD instead of NI_NUMERICHOST in
 
440
     APR_CHECK_GETNAMEINFO_IPV4_MAPPED.  PR 24469.  [Justin Erenkrantz]
 
441
 
 
442
  *) Ensure that apr_sockaddr_info_get() does not return anything
 
443
     other than AF_INET and AF_INET6 addresses.  [Joe Orton]
 
444
 
 
445
  *) Clarify that apr_dir_read() does not guarantee order of returned
 
446
     entries as previously claimed.  [Joe Orton]
 
447
 
 
448
  *) The whole codebase was relicensed and is now available under
 
449
     the Apache License, Version 2.0 (http://www.apache.org/licenses).
 
450
     [Apache Software Foundation]
 
451
 
 
452
  *) Define apr_off_t as long rather than as off_t on platforms with a
 
453
     32-bit off_t to prevent incompatibility with packages such as
 
454
     Perl which redefine the size of off_t via _FILE_OFFSET_BITS on
 
455
     some platforms.  [Ben Reser <ben reser.org>]
 
456
 
 
457
  *) apr_socket_connect(): allow app to make subsequent call on 
 
458
     non-blocking socket.  [Jeff Trawick]
 
459
 
 
460
  *) Add apr_os_pipe_put_ex(), which allows the caller to tell APR
 
461
     to establish a cleanup on the pipe.  [Jeff Trawick, Brad Nicholes]
 
462
 
 
463
  *) Fix make_exports.awk to work with apr-iconv.  [Justin Erenkrantz]
 
464
 
 
465
Changes with APR 0.9.4
 
466
 
 
467
  *) win32: fix apr_file_dup() and apr_file_dup2() to dup the
 
468
     ungetchar member [Stas Bekman]
 
469
 
 
470
  *) Preserve leading '../' segments as when merging to an empty and
 
471
     unrooted path - fixes a bug observed in SVN with Win32/Netware/OS2.
 
472
     [Mike Pilato <cmpilato collab.net>, William Rowe]
 
473
 
 
474
  *) Work around a bug in Darwin when calling getnameinfo() on IPv4-mapped
 
475
     IPv6-addresses.  [Colm MacC�rthaigh <colm stdlib.net>, Jeff Trawick,
 
476
     Justin Erenkrantz]
 
477
 
 
478
  *) Add apr_temp_dir_get() for getting the most suitable temp directory
 
479
     [Mike Pilato <cmpilato collab.net>, Thom May]
 
480
 
 
481
  *) Modify apr_sockaddr_info_get to call the resolver when we
 
482
     do not have a hostname.  Also, fix bugs in the getaddrinfo()
 
483
     implementation.
 
484
     [Colm MacC�rthaigh <colm stdlib.net>, Justin Erenkrantz]
 
485
 
 
486
  *) Change the behavior of unix process 'trylock's to return
 
487
     APR_ENOTIMPL instead of segfaulting, consistent with the
 
488
     other lock implementations.  [William Rowe]
 
489
 
 
490
  *) Fix a subtle race where the ownership of a unix nested
 
491
     thread lock could be corrupted when the prior owner released
 
492
     the lock with another thread waiting on the same lock.
 
493
     [William Rowe]
 
494
 
 
495
  *) apr_socket_data_set(): allow the same key to be used for
 
496
     multiple sockets in the same pool.  [Jeff Trawick]
 
497
 
 
498
  *) Add new table function apr_table_compress() and replace
 
499
     red-black trees with mergesort in apr_table_overlap()
 
500
     [Joe Schaefer <joe+gmane sunstarsys.com>, Brian Pane]
 
501
 
 
502
  *) Win32: Adopt Brian Havard's OS/2 rwlock implementation for
 
503
     Windows [Marc Adkins, Bill Stoddard]
 
504
 
 
505
  *) Add apr_proc_mutex_lockfile() for retrieving the name of the
 
506
     file associated with a mutex.  [Jeff Trawick]
 
507
 
 
508
  *) Don't require the lock file name to be passed into 
 
509
     apr_proc_mutex_child_init() or apr_global_mutex_child_init().
 
510
     This allows child init to work when the lock file was a temp
 
511
     file created by APR.  (The problem only occurred with flock-
 
512
     based mutexes.)  [Jeff Trawick]
 
513
 
 
514
  *) When using a temporary file for flock- and fcntl-based mutexes, 
 
515
     don't let the file be deleted on close.  For flock-based mutexes,
 
516
     this corrects a fatal problem, since the file would disappear 
 
517
     when a program was spawned and cleanup-for-exec was performed, 
 
518
     and a subsequent attempt to perform child process mutex 
 
519
     initialization would fail.  For fcntl-based mutexes, this was a 
 
520
     very minor issue that resulted in a failing unlink() when the 
 
521
     file was closed, since fcntl lock initialization always removes 
 
522
     the file immediately.  [Jeff Trawick]
 
523
 
 
524
  *) When writing to pipes with a timeout set, handle the situation
 
525
     where the kernel says the pipe is writable but an attempt to
 
526
     write <= PIPE_BUF bytes gets EAGAIN.  APR will now write whatever
 
527
     data will fit.  APR applications that relied on the atomic nature
 
528
     of relatively small pipe write requests may be affected.
 
529
     PR 20295  [Mark Street <mark faime.demon.co.uk>, Jeff Trawick]
 
530
 
 
531
  *) Define _THREAD_SAFE for all compilations on AIX.  Previously
 
532
     those of us who used the vendor compiler had it defined
 
533
     implicitly and others did not.  The difference became obvious
 
534
     with the recent thread safety fixes to apr_password_validate().
 
535
     PR 20420  [Jeff Trawick]
 
536
 
 
537
  *) For apr_proc_detach(APR_PROC_DETACH_FOREGROUND), don't treat
 
538
     a setsid() failure as fatal, as the usual cause is that the
 
539
     caller is already a process group leader.  PR 18519
 
540
     [Jeff Trawick]
 
541
 
 
542
  *) Fix some problems with non-blocking socket handling on unix
 
543
     that resulted in infinite timeouts being used for non-blocking
 
544
     sockets with apr_socket_connect() and some read/write calls.
 
545
     [Jeff Trawick]
 
546
 
 
547
  *) Fix a bug in socket timeout handling on unix that left the
 
548
     socket non-blocking after disabling the timeout.
 
549
     [Jacob Craig Lewallen <jlewalle cs.ucr.edu>]
 
550
 
 
551
  *) Added flag APR_FILE_ATTR_HIDDEN for manipulating the "hidden"
 
552
     file attribute on Windows and OS/2.  [Branko Cibej]
 
553
 
 
554
  *) SECURITY [CAN-2003-0245]: Fixed a bug that could be triggered
 
555
     remotely through mod_dav and possibly other mechanisms, causing
 
556
     an Apache child process to crash.  The crash was first reported
 
557
     by David Endler <DEndler iDefense.com> and was researched and
 
558
     fixed by Joe Orton <jorton redhat.com>.  Details will be released
 
559
     on 30 May 2003.
 
560
 
 
561
  *) apr_proc_wait(): Handle interrupted waitpid(2) calls by calling
 
562
     it repeatedly until it succeeds or fails with errno other than
 
563
     EINTR.  This hides this UNIX-specific behavior from APR clients.
 
564
 
 
565
  *) Removed the solaris-specific atomic code, due to licence
 
566
     concerns (it was MPL 1.0, and the author could not be contacted)
 
567
     [Ian Holsman]
 
568
 
 
569
  *) apr_file_gets(): Return APR_SUCCESS if any characters are
 
570
     returned.  Any I/O errors or EOF will be reported on the
 
571
     next call.  Callers that are coded to expect returned 
 
572
     data + APR_EOF when there is no final newline are affected 
 
573
     by this change.  [Jeff Trawick]
 
574
 
 
575
  *) apr_proc_create() on Unix: Make the APR_SHELLCMD mode work
 
576
     when there is more than one program argument passed in.
 
577
     [Jeff Trawick]
 
578
 
 
579
  *) Add --cc and --cpp flags to apr-config.  [Jeff Trawick]
 
580
 
 
581
  *) Don't segfault trying to close a file in error paths of flock
 
582
     and fcntl mutex creation.  PR 19036  [Jeff Trawick]
 
583
 
 
584
  *) Add %pT support to apr_snprintf() for printing an apr_os_thread_t.
 
585
     [Jeff Trawick]
 
586
 
 
587
  *) Add APR_TCP_NODELAY_INHERITED & APR_O_NONBLOCK_INHERITED to apr.hw
 
588
     [Allan Edwards]
 
589
 
 
590
  *) Add APR_UINT64_T_HEX_FMT.  [Jeff Trawick]
 
591
 
 
592
  *) Add parameter to APR_SUBDIR_CONFIG to drop options passed to configure
 
593
     before the subdir's configure is invoked.
 
594
     [Jeff Trawick, Justin Erenkrantz]
 
595
 
 
596
  *) Implement APR_SO_RCVBUF socket option on Unix.  
 
597
     [Adam Sussman <myddryn vishnu.vidya.com>]
 
598
 
 
599
  *) Don't add the math library (-lm) if the modf() function
 
600
     is already available via libc.  [Roy Fielding]
 
601
 
 
602
  *) Solaris cc: Don't use the -mt option for threaded builds.  That
 
603
     is for non-Posix threading, and the use of it prevented us from
 
604
     linking with -lpthread, which in turn caused weird problems for
 
605
     APR applications.  [Kristofer Spinka <kspinka style.net>]
 
606
 
 
607
  *) OS/2: apr_stat() fixes - When a character device is stat'ed, 
 
608
     fill in finfo.name if it was asked for.  Return APR_INCOMPLETE 
 
609
     when appropriate.  Addresses httpd incident [CAN-2003-0134].
 
610
     [Brian Havard]
 
611
 
 
612
Changes with APR 0.9.3
 
613
 
 
614
  *) Don't enable posixsem, at build time, on systems where sem_t *
 
615
     won't "fit" into an int (sizeof-wise). Also, better error handling
 
616
     when we fail to create a posixsem. PR 17186 [Scott Herod
 
617
     <sherod pillardata.com>, Jim Jagielski]
 
618
 
 
619
  *) Default hpux 10.x to disable threading, since if it exists at all
 
620
     the pthread implementation should not be trusted, while hpux 10 
 
621
     had its own threads implementation that is no longer supported.
 
622
     PR 9457 [William Rowe]
 
623
 
 
624
  *) Fix error in apr-config when symlinks are involved.
 
625
     [Garrett Rooney <rooneg electricjellyfish.net>]
 
626
 
 
627
Changes with APR 0.9.2
 
628
 
 
629
  *) Numerous bug fixes for file and socket inheritence by child
 
630
     processes on Unix, correcting bugs that affected the correct 
 
631
     behavior of apr_[file|socket]_inherit_[un]set() API.
 
632
     [Bjoern A. Zeeb <bz zabbadoz.net>, William Rowe, Joe Orton]
 
633
 
 
634
  *) Define APR_UINT64_T_FMT and APR_UINT64_T_FMT_LEN.
 
635
     Define APR_INT64_T_FMT_LEN on Windows and Netware.  [Branko Cibej]
 
636
 
 
637
  *) Correct apr_file_gets() on OS2 and Win32 so that '\r's are no longer
 
638
     eaten, and apr_file_gets() -> apr_file_puts() moves the contents
 
639
     uncorrupted.  [William Rowe]
 
640
 
 
641
  *) Alter Win32's handling of the apr_proc_t hproc member, so that we
 
642
     close that system handle wherever an apr function would invoke the
 
643
     final waitpid() against a zombie process on Unix.  [William Rowe]
 
644
 
 
645
  *) APR_MAX_SECONDS_TO_LINGER and APR_FNM_* #defines replace their
 
646
     old undecorated names (missing APR_ prefix).  The old names will
 
647
     disappear with APR 1.0.0.
 
648
     [Craig Rodrigues <rodrigc@attbi.com>, William Rowe]
 
649
 
 
650
 
 
651
  *) When generating a semaphore name for posixsem locking, try to
 
652
     be a little more robust (and unique). [Jim Jagielski]
 
653
 
 
654
  *) Add functions apr_env_get, apr_env_set and apr_env_delete for
 
655
     manipulating the environment.  [Branko Cibej]
 
656
 
 
657
  *) Fix APR_LAYOUT to work with layout files with no preceding blank lines
 
658
     and emit errors when layout is not found.  PR 15679.
 
659
     [Justin Erenkrantz]
 
660
 
 
661
  *) Add functions apr_filepath_list_split and apr_filepath_list_merge
 
662
     for managing search paths.  [Branko Cibej]
 
663
 
 
664
  *) Introduce Release mode debugging symbols for Win32 builds of apr.
 
665
     All library builds gain /Zi for debug symbols (which are discarded
 
666
     at link time if some flavor of the /debug flag isn't passed to link)
 
667
     and .dll builds gain .pdb symbols.  [Allen Edwards, William Rowe]
 
668
 
 
669
  *) Add two new proc attributes to improve diagnostics for 
 
670
     apr_proc_create() failures on platforms where fork()+exec() is used.
 
671
     See the doc for apr_procattr_child_errfn_set() and
 
672
     apr_procattr_error_check_set().  [Jeff Trawick]
 
673
 
 
674
  *) Rename rules.mk to apr_rules.mk and make apr_rules.mk be installed.
 
675
     [Thom May]
 
676
     
 
677
  *) Fix a bug in apr_proc_create() that could cause a new child process
 
678
     to run the parent's code if setrlimit() fails.  [Jeff Trawick]
 
679
 
 
680
  *) Disable apr_socket_sendfile() on 64-bit AIX to avoid an apparent
 
681
     system problem.  PR 11408.  [Jeff Trawick]
 
682
 
 
683
  *) Add --includedir flag to apr-config.  [Justin Erenkrantz]
 
684
 
 
685
  *) Only include sys/syslimits.h if we don't have limits.h
 
686
     [Craig Rodrigues <rodrigc@attbi.com>, Garrett Rooney 
 
687
     <rooneg@electricjellyfish.net>, Thom May]
 
688
 
 
689
  *) Allow apr-config to work in symlinked install directories when
 
690
     'realpath' is available.  [Justin Erenkrantz]
 
691
 
 
692
  *) Namespace protect the header files in include/arch
 
693
     [Thom May]
 
694
 
 
695
  *) Add function apr_filepath_encoding and associated constants.
 
696
     [Branko Cibej]
 
697
 
 
698
  *) Allow apr_hash to have greater than int number of elements.
 
699
     [Justin Erenkrantz]
 
700
 
 
701
  *) Allow generation of dependencies by non-GCC compilers.
 
702
     [Justin Erenkrantz]
 
703
 
 
704
  *) Prevent obscenely large values of precision in apr_vformatter
 
705
     from clobbering a buffer. [Sander Striker, Jim Jagielski]
 
706
 
 
707
  *) limit the renames performed in apr_rename.pl to the most recent renames.
 
708
     [Thom May]
 
709
 
 
710
  *) Changed apr_mmap_dup() and friends so that there's no longer any
 
711
     is_owner concept on the mmaped region, but rather something more
 
712
     along the lines of a reference count.  This allows the old apr_mmap_t
 
713
     to still be used safely when the new apr_mmap_t is in a disjoint pool.
 
714
     [Cliff Woolley, Sander Striker]
 
715
 
 
716
  *) Fix a bug in apr_hash_merge() which caused the last entry in the
 
717
     overlay hash to be lost.  PR 10522  [Jeff Trawick]
 
718
 
 
719
  *) Add DougM's apr_rename.pl script into helpers, and update for the new 
 
720
     batch of updates [Thom May]
 
721
 
 
722
  *) Renames done (deprecated functions wrapped):
 
723
     apr_filename_of_pathname -> apr_filepath_name_get
 
724
     apr_get_groupid -> apr_gid_get
 
725
     apr_get_groupname -> apr_gid_name_get
 
726
     apr_compare_groups -> apr_gid_compare
 
727
     apr_parse_addr_port -> apr_port_addr_parse
 
728
     apr_shutdown -> apr_socket_shutdown
 
729
     apr_bind -> apr_socket_bind
 
730
     apr_listen -> apr_socket_listen
 
731
     apr_accept -> apr_socket_accept
 
732
     apr_connect -> apr_socket_connect
 
733
     apr_send -> apr_socket_send
 
734
     apr_sendv -> apr_socket_sendv
 
735
     apr_sendto -> apr_socket_sendto
 
736
     apr_implode_gmt -> apr_time_exp_gmt_get
 
737
     apr_get_home_directory -> apr_uid_homepath_get
 
738
     apr_get_userid -> apr_uid_get
 
739
     apr_current_userid -> apr_uid_current
 
740
     apr_compare_users -> apr_uid_compare
 
741
     apr_get_username -> apr_uid_name_get
 
742
     apr_recvfrom -> apr_socket_recvfrom
 
743
     apr_sendfile -> apr_socket_sendfile
 
744
     apr_recv -> apr_socket_recv 
 
745
     [Thom May]
 
746
 
 
747
  *) Add APR_IPV6_V6ONLY socket option.  [Jeff Trawick]
 
748
 
 
749
  *) Update timeout algorithm in free_proc_chain. If a subprocess
 
750
     did not exit immediately, the thread would sleep for 3 seconds
 
751
     before checking the subprocess exit status again. In a very
 
752
     common case when the subprocess was an HTTP server CGI script,
 
753
     the CGI script actually exited a fraction of a second into the 3
 
754
     second sleep, which effectively limited the server to serving one 
 
755
     CGI request every 3 seconds across a persistent connection.
 
756
     [Bill Stoddard, Kai.Risku@arrak.fi]
 
757
 
 
758
  *) Update doxygen tags.  [Justin Erenkrantz]
 
759
 
 
760
  *) NetWare: implemented a file IO path context scheme to directly
 
761
     reference directory paths and files in the file system rather
 
762
     than having to traverse the file system on every stat() or
 
763
     open() call. (Performance enhancement) [Brad Nicholes]
 
764
     
 
765
  *) ReliantUnix: recognize that dlsym() is in libdl and dlopen() is in
 
766
     libc.  The check is generic so maybe this fixes some other system.
 
767
     PR 14189  [Jeff Trawick]
 
768
 
 
769
  *) Win32: Fix APR_APPEND file i/o. [Bill Stoddard]
 
770
 
 
771
  *) Fix a problem retrieving the remote socket address for sockets
 
772
     created via apr_os_sock_put() or apr_os_sock_make().  [Jeff Trawick]
 
773
 
 
774
  *) Add recognition of and socket API support for the SCTP protocol.
 
775
     [Randall Stewart <randall@stewart.chicago.il.us>]
 
776
 
 
777
  *) Win32: apr_shutdown was not honoring apr_shutdown_how_e and
 
778
     always shutting down the socket for read. This could result
 
779
     in Apache HTTPD 2.0 clients getting early connection closures
 
780
     because lingering_close() was broken. [Bill Stoddard, Allan Edwards]
 
781
 
 
782
  *) Add apr_atomic_casptr() to support atomic compare-and-swap
 
783
     of pointers  [Brian Pane]
 
784
 
 
785
  *) Add apr_socket_create_ex() to allow protocol to be specified for the
 
786
     socket.  With APR 1.0, this function will be removed and apr_socket_create()
 
787
     will have the additional parameter.
 
788
     [Randall Stewart <randall@stewart.chicago.il.us>]
 
789
 
 
790
  *) Fix the detection of INT64_C() when defined in <stdint.h>.
 
791
     [Joe Orton <joe@manyfish.co.uk>]
 
792
 
 
793
  *) Don't use whitespace before preprocessor directives in the configure
 
794
     logic.  Such whitespace breaks with some older preprocessors; a 
 
795
     particularly nasty break occurs on Tru64 4.0f where APR_CHECK_DEFINE 
 
796
     will always succeed.  [Joe Orton <joe@manyfish.co.uk>]
 
797
 
 
798
  *) Add APR_IPV4_ADDR_OK flag to apr_sockaddr_info_get() to allow
 
799
     apps to avoid lookup of IPv6 address if IPv4 address is sufficient.
 
800
     (New APR_IPV6_ADDR_OK flag is similar.)  [Jeff Trawick]
 
801
 
 
802
  *) Disable IPv6 support on Darwin.  The current IPv6 support has a
 
803
     problem in getnameinfo() which breaks certain applications.
 
804
     [Sander Temme <sctemme@covalent.net>, Jeff Trawick]
 
805
 
 
806
  *) Support for SCO OpenServer Release 5 [Kean Johnston <jkj@caldera.com>]
 
807
 
 
808
  *) Faster (inline and mutex-free) implementations of all apr_atomic
 
809
     operations for Linux/x86 (requires a 486 or later; to enable,
 
810
     configure APR with --enable-nonportable-atomics=yes )   [Brian Pane]
 
811
 
 
812
  *) Add --bindir option to apr-config.  [Justin Erenkrantz]
 
813
 
 
814
  *) Begin to rehash the test suite.  There is now a new test program called
 
815
     testall.  This program currently runs testtime and teststr with the
 
816
     CuTest framework.  The stand-alone programs for testtime and teststr
 
817
     can be built, but only if a special flag is specified when building.
 
818
     [Ryan Bloom]
 
819
 
 
820
  *) Fix a broken check for a failure to read from the random device file.
 
821
     PR 12615  [tenthumbs@cybernex.net]
 
822
 
 
823
  *) Print informative link errors on Darwin.  [Justin Erenkrantz]
 
824
 
 
825
Changes with APR 0.9.1
 
826
 
 
827
  *) Fixed usage of alloca in apr_poll() on Tru64
 
828
     [Dave Hill <ddhill@zk3.dec.com>]
 
829
 
 
830
  *) Running "make check" in the toplevel directory or the test/ directory
 
831
     will build and run all test programs.  [Aaron Bannert]
 
832
 
 
833
  *) Add apr_array_pop().  [Justin Erenkrantz]
 
834
 
 
835
  *) Fixed the native SPARC v8plus version of apr_atomic_dec
 
836
     to match the semantics of the default C version [Brian Pane]
 
837
 
 
838
Changes with APR 0.9.0
 
839
 
 
840
  *) If the length argument to apr_snprintf is 0, then we should return the
 
841
     length that the string would be if we actually were going to fill it out.
 
842
     However, if the length argument is 0, we can also accept a NULL string.
 
843
     Also, added a test case for this.  [Ryan Bloom]
 
844
 
 
845
  *) Printing a string with apr_snprintf can seg fault, if a precision is
 
846
     specified for the string, and the string being printed doesn't have a
 
847
     trailing '\0'.  Fix that seg fault by not calling strlen if a precision
 
848
     is specified when printing a string.  Also add a test to the test suite
 
849
     for this case.
 
850
     [R Samuel Klatchko <rsk@brightmail.com>]
 
851
 
 
852
  *) handle leak related to threads on Windows2000/XP 
 
853
     [INOUE Seiichiro <inoue@ariel-networks.com>]
 
854
 
 
855
  *) Includes moved to INCLUDEDIR/apr-{major} (e.g. /usr/include/apr-0)
 
856
     [Greg Stein]
 
857
 
 
858
  *) libtool versioning is used to give the library sonames a real
 
859
     value. The libraries will be libapr-{major}.so.0.{minor}.{patch}
 
860
     [Greg Stein]
 
861
 
 
862
  *) Fix apr_tokenize_to_argv() to remove the escape character
 
863
     (backslash) from the argument tokens. PR 11793 [Paul J. Reder]
 
864
 
 
865
  *) Add APR_PARSE_ARGUMENTS and APR_LAYOUT macros for better layout
 
866
     support. [Thom May]
 
867
 
 
868
  *) Add parallel-apr layout which utilizes the major version number in
 
869
     directories and library names.  [Justin Erenkrantz]
 
870
 
 
871
  *) Add a version number to the library name (e.g. libapr-1.so) so
 
872
     that apps can do things like: -lapr-1 or -lapr-2, depending on
 
873
     which version they want to use and link against. [Greg Stein]
 
874
 
 
875
  *) Add --version to apr-config so that apps can retrieve the version
 
876
     information of the (installed) APR. [Greg Stein]
 
877
 
 
878
  *) Remove the APRVARS system; apps should use apr-config. [Greg Stein]
 
879
 
 
880
  *) EBCDIC: fix compile failure in strings/apr_strings.c in
 
881
     httpd-2.0.40 with the following error message:
 
882
     CANNOT COMPILE apr_strtoi64(), only ASCII and EBCDIC supported
 
883
     
 
884
  *) In apr_signal_thread() remove synchronous signals from the mask
 
885
     passed to sigwait().  It is never valid for them to be there.
 
886
     Some platforms silently ignore them, some return EINVAL, some
 
887
     don't process it as desired.  [Jeff Trawick]
 
888
 
 
889
  *) Change config.nice generation to always expand variables.
 
890
     [Justin Erenkrantz]
 
891
 
 
892
  *) Renamed apr_strtoll()/apr_atoll() to follow int64 convention,
 
893
     so these new helpers are apr_strtoi64/apr_atoi64(), since
 
894
     'll' (long long) is a nonportable and aspecific construct.
 
895
     Used ac/m4 tests to choose the appropriate fn behind strtoi64.
 
896
     [William Rowe]
 
897
 
 
898
  *) don't perform a strlen on that name value without checking for NULL 
 
899
     first (in getopt)
 
900
     [David Waite <mass@akuma.org>, Ian Holsman]
 
901
 
 
902
  *) Added apr_strtoll() and apr_atoll() to strings lib.
 
903
     [Shantonu Sen <ssen@apple.com>, Wilfredo Sanchez]
 
904
 
 
905
  *) Added a lightweight internal index to apr_table_t to speed up
 
906
     table lookup operations  [Brian Pane]
 
907
 
 
908
  *) initalize handle members to invalid before calling createprocess
 
909
     on win32 [Rob Saccoccio <robs@fastcgi.com>]
 
910
 
 
911
  *) Removed apr/i18n to apr-util/xlate for inclusion of apr-iconv
 
912
     as required by missing libiconv.  [William Rowe]
 
913
 
 
914
  *) Removed apr/md5 and apr/uuid into apr-util/crypto.  [William Rowe]
 
915
 
 
916
  *) Add APR_BUFFERED support to apr_os_file_put().  [Justin Erenkrantz]
 
917
 
 
918
  *) Fix misinterpretation of timeout for select() on Win32/Netware.
 
919
     Identified by [TANAKA Koichi <tanaka@ariel-networks.com>]
 
920
 
 
921
  *) Re-write apr_poll() on Unix.  This improves the performance by
 
922
     giving the user back control over the memory in the pollset.
 
923
     [Ryan Bloom]
 
924
 
 
925
  *) Added APR_LIMIT_NOFILE option to apr_procattr_limit_set() to
 
926
     control the file descriptor limit on platforms that support
 
927
     RLIMIT_NOFILE.  [Brian Pane]
 
928
 
 
929
  *) FreeBSD: change apr_sendfile to accomodate a 4.6 kernel patch.
 
930
     [Greg Ames]
 
931
 
 
932
  *) Faster code for the apr_table get/set functions  [Brian Pane]
 
933
 
 
934
  *) Fix the userid functions on Irix to handle the way that Irix 
 
935
     reports a failure from getpwnam_r().  PR 10095.
 
936
     [Robert I. Cowles <ric@cs.uregina.ca>, Jeff Trawick]
 
937
 
 
938
  *) apr_table_do() and apr_table_vdo() now return an int rather than
 
939
     void to indicate whether or not any of its iterations returned 0.
 
940
     [Cliff Woolley]
 
941
 
 
942
  *) Fix the definition of union semun so that it is valid on systems
 
943
     where sizeof(long) != sizeof(int).  This resolves a hang on
 
944
     HP-UX/Itanium.  
 
945
     [Madhusudan Mathihalli <madhusudan_mathihalli@hp.com>]
 
946
 
 
947
  *) Correct shared library support on Darwin to not fatally error out
 
948
     when a shared library does not exist.  [Justin Erenkrantz]
 
949
 
 
950
  *) Added optimized atomic CAS support for Linux/x86 (available only
 
951
     when APR is configured with --enable-nonportable-atomics=yes)
 
952
     [Brian Pane]
 
953
 
 
954
  *) Fix a compile error in the EGD support in rand.c on older Solaris
 
955
     versions.  PR 9976  [Jim Morris <jmorris@sunflower.com>]
 
956
 
 
957
  *) Fixed apr_file_seek() to unset the eof_hit flag.  [Stas Bekman]
 
958
 
 
959
  *) Removed --disable-atomics flag and added --enable-nonportable-atomics,
 
960
     thereby defaulting to portable binaries on those systems that could
 
961
     be optimized at the expense of portability. PR: 9507  [Aaron Bannert]
 
962
 
 
963
  *) Added 2 additional lock functions: apr_proc_mutex_name and
 
964
     apr_proc_mutex_defname which returns the type name of the mutex
 
965
     (eg: "sysvsem") as well as the default mutex type (APR_LOCK_DEFAULT).
 
966
     Mostly useful under Unix were the locktypes are selectable.
 
967
     [Jim Jagielski]
 
968
 
 
969
  *) Fixed apr_generate_random_bytes() for Win32 on Win NT or 9x by
 
970
     dropping the 0x40 bit (CRYPT_SILENT) for earlier OS'es.
 
971
     PR 9286  [William Rowe]
 
972
 
 
973
  *) Added --with-devrandom=[DEV] configure flag which allows a particular
 
974
     "/dev/random"-compatible device to be specified, overriding the
 
975
     default search path (/dev/random then /dev/arandom then /dev/urandom).
 
976
     Also, if --with-egd=<path> is specified, it now implies
 
977
     --without-devrandom.  [Cliff Woolley]
 
978
 
 
979
  *) Darwin/Mac OS X: Don't leave zombie processes when the app calls
 
980
     apr_signal(SIGCHLD, SIG_IGN).  This fixes a problem with Apache's
 
981
     mod_cgid.  PR 9168.  [Jeff Trawick]
 
982
 
 
983
  *) Win32: Fix bug where apr_sendfile() was incorrectly returning
 
984
     APR_SUCCESS on a TransmitFile call that was interrupted by
 
985
     the client closing its end of the connection. Always call 
 
986
     GetOverlappedResults() to get results of async TransmitFile()
 
987
     completion notification. [Bill Stoddard] 
 
988
 
 
989
  *) Renamed APR_XtOffset -> APR_OFFSET and APR_XtOffsetOf -> APR_OFFSETOF.
 
990
     [Cliff Woolley]
 
991
 
 
992
  *) Cygwin: the unix version of apr_file_open() must respect the
 
993
     APR_BINARY flag if the underlying platform requires it (in
 
994
     which case we assume O_BINARY is defined).  PR 9185.
 
995
     [Cliff Woolley]
 
996
 
 
997
  *) Linux, AIX: Use crypt_r() instead of crypt() because the native
 
998
     crypt() is not thread-safe.  The misuse of crypt() led to   
 
999
     intermittent failures with Apache basic authentication when crypt 
 
1000
     passwords were being used.  [Jeff Trawick]
 
1001
 
 
1002
  *) AIX: Global mutexes don't need an intraprocess mutex when SysV
 
1003
     sems are used for the crossprocess mutex.
 
1004
     Darwin: The same optimization was applied for Posix sems.
 
1005
     [Jeff Trawick]
 
1006
 
 
1007
  *) Fix a problem with global mutexes on OS/390 when something other
 
1008
     than the default mechanism (SysV sem) was used.  The mutexes didn't
 
1009
     necessarily block out other threads in the same process.
 
1010
     [Jeff Trawick]
 
1011
 
 
1012
  *) Fixed apr_strfsize formatting of values over 1 gig
 
1013
     [Matsuzaki Yoshinobu <maz@iij.ad.jp>]
 
1014
 
 
1015
  *) Renamed --disable-atomics as --disable-optimized-atomics,
 
1016
     since it doesn't really disable the atomics.  [Aaron Bannert]
 
1017
 
 
1018
  *) Converted apr_pcalloc to a macro  [Brian Pane]
 
1019
 
 
1020
  *) Fixed APR_STATUS_IS_ETIMEDOUT macro.
 
1021
     [Dagfinn Aarvaag <dagfinn.aarvaag@beepscience.com>]
 
1022
 
 
1023
  *) Add --disable-atomics switch to override our handcoded assembly
 
1024
     optimizations.  Note that this has no effect if your operating
 
1025
     system has a userspace atomic interface.  [Justin Erenkrantz]
 
1026
 
 
1027
  *) Remove Linux atomic support since it does not have a usable
 
1028
     userspace atomic interface.  [Justin Erenkrantz]
 
1029
 
 
1030
  *) Don't require that the DNS can map 127.0.0.1 when checking for
 
1031
     the presence/usability of getnameinfo().  PR 7642.  [Jeff Trawick]
 
1032
 
 
1033
  *) Remove APR_WANT_SIGNAL from apr_want.h because code must include
 
1034
     apr_signal.h in order to get consistent definitions. [Roy Fielding]
 
1035
 
 
1036
  *) Don't try to use /dev/zero and mmap on platforms that don't
 
1037
     support that (such as HP-UX).  PR 8537.  [Justin Erenkrantz]
 
1038
 
 
1039
  *) Reduce the number of apr_sendfile calls on AIX and OS/390 by
 
1040
     remembering when the kernel tells us the next one will block.
 
1041
     [Jeff Trawick]
 
1042
 
 
1043
  *) Reduce the number of apr_sendfile calls on FreeBSD by remembering
 
1044
     when the kernel tells us the next one will block.  [Greg Ames]
 
1045
 
 
1046
  *) To support modules like PHP, which implement their own
 
1047
     loaded extensions, Darwin needs to place their public
 
1048
     symbols in the global table. [Marko Karppinen <markonen@php.net>,
 
1049
     Jim Jagielski]
 
1050
 
 
1051
  *) Rename apr_get_groupname to apr_group_name_get.
 
1052
     [Thom May <thom@planetarytramp.net>]
 
1053
     
 
1054
  *) Allow VPATH builds to properly build dependencies and switch to
 
1055
     a .deps dependency model to mimic httpd-2.0.  [Justin Erenkrantz]
 
1056
 
 
1057
  *) Tru64: Stop leaving zombies in APR apps like mod_cgid which
 
1058
     tell APR to ignore SIGCHLD.  
 
1059
     [Dave Hill <David.D.Hill@Compaq.com>]
 
1060
 
 
1061
  *) Ensure that the ATOMIC_HASH can not be negative.
 
1062
     [Joe Orton <jorton@redhat.com>]
 
1063
 
 
1064
  *) Fix a problem with eof reporting with Unix file I/O on 
 
1065
     unbuffered files.  [Stas Bekman <stas@stason.org>]
 
1066
 
 
1067
  *) Rename apr_explode_time to apr_time_exp_tz.
 
1068
     [Thom May <thom@planetarytramp.net>]
 
1069
 
 
1070
  *) Rename apr_explode_localtime to apr_time_exp_lt.
 
1071
     [Thom May <thom@planetarytramp.net>]
 
1072
 
 
1073
  *) Set precompiler for Solaris atomics when using GNU binutils.
 
1074
     PR 7876.  [solomon@conceptshopping.com (Marvin Solomon)]
 
1075
 
 
1076
  *) AIX: Fix breakage with 64-bit builds on versions of AIX prior
 
1077
     to 5L.  PR 7957  [Jeff Trawick]
 
1078
 
 
1079
  *) On socket write functions (apr_sendfile, apr_send, apr_sendv),
 
1080
     added a select to wait for writability on the socket if the
 
1081
     previous write was incomplete.  [Jeff Trawick, Brian Pane]
 
1082
 
 
1083
  *) Deprecated the apr_lock.h API. Please see the following files
 
1084
     for the improved thread and process locking and signaling:
 
1085
     apr_proc_mutex.h, apr_thread_mutex.h, apr_thread_rwlock.h,
 
1086
     apr_thread_cond.h, and apr_global_mutex.h.  [Aaron Bannert]
 
1087
 
 
1088
  *) Fix some daylight savings time breakage on (at least) AIX, 
 
1089
     Solaris, and HP-UX.  [Jeff Trawick]
 
1090
 
 
1091
  *) Added support for Posix semaphores (sem_open, et.al.) for mutex
 
1092
     locking. We use named semaphores in this implementation. The
 
1093
     default priority is between pthread and sysvsem.
 
1094
     [Jim Jagielski]
 
1095
 
 
1096
  *) Get flock-based mutexes to work in apps like Apache.  Use the
 
1097
     same permissions on flock- and fcntl-based mutexes as Apache
 
1098
     1.3.  [Jeff Trawick]
 
1099
 
 
1100
  *) Fix apr-config so that it will not attempt to cd to a non-existent
 
1101
     directory.  [Justin Erenkrantz]
 
1102
 
 
1103
  *) Change the ordering of the apr_lock implementation method to
 
1104
     better match what's done in Apache 1.3. The ordering is
 
1105
     now (highest to lowest): pthread -> sysvsem -> fcntl -> flock.
 
1106
     [Jim Jagielski]
 
1107
 
 
1108
  *) Improve detection of the INT64_C macro to prevent problems
 
1109
     with HP-UX's ANSI C compiler.  PR 8932.  [Justin Erenkrantz]
 
1110
 
 
1111
  *) Make sure gethostbyname() can handle 255.255.255.255 if we
 
1112
     are to trust it to handle numeric address strings in
 
1113
     apr_sockaddr_info_get().  This fixes a problem on HP-UX
 
1114
     which led to an assertion failure at Apache startup when
 
1115
     using vhosts.  [Jeff Trawick]
 
1116
 
 
1117
  *) Don't mask SIGUSR2 [Jin Hong <jinh@cnet.com>]  
 
1118
 
 
1119
  *) Load libraries if they not MH_BUNDLE, but if they are not, it 
 
1120
     just attempts to link them as shared libs.
 
1121
     [Pier Fumagalli <pier@betaversion.org>]
 
1122
 
 
1123
  *) apr_atomic_dec now returns a zero value if the value of 
 
1124
     the atomic is zero, non-zero otherwise [Ian Holsman]
 
1125
 
 
1126
  *) When opening a file, only create an internal thread mutex
 
1127
     if APR_XTHREAD is set.  [Brian Pane]
 
1128
 
 
1129
  *) Move the kill_conditions enum in apr_thread_proc.h into the
 
1130
     APR namespace. kill_after_timeout et al have been renamed
 
1131
     appropriately (e.g., APR_KILL_AFTER_TIMEOUT).  [Jeff Trawick]
 
1132
 
 
1133
  *) Fix a segfault in apr_thread_rwlock_destroy() on Win32.
 
1134
     [INOUE Seiichiro <inoue@ariel-networks.com>]
 
1135
  
 
1136
  *) configure now checks to see if we can change DNS timeout values
 
1137
     [Ian Holsman]
 
1138
 
 
1139
  *) Fix a bug in apr_file_seek() on Unix when using buffered
 
1140
     files.  PR 10003 [Jeff Trawick]
 
1141
 
 
1142
  *) Small table performance optimization: eliminate the
 
1143
     zero-fill of newly allocated elements when expanding
 
1144
     a table's size. [Brian Pane]
 
1145
 
 
1146
  *) Allow APR to install its generated libtool(s) via the 
 
1147
     --with-installbuilddir option (defaults to ${datadir}/build).
 
1148
     [Justin Erenkrantz]
 
1149
 
 
1150
  *) renames: apr_ansi_time_to_apr_time becomes apr_time_ansi_put
 
1151
     ap_exploded_time_t becomes apr_time_exp_t
 
1152
     [Thom May <thom@planetarytramp.net>]
 
1153
 
 
1154
  *) Add the APR_FILE_NOCLEANUP flag to apr_file_open().
 
1155
     Adding the flag will prevent the file from being closed 
 
1156
     when the pool passed in on apr_file_open() is destroyed.
 
1157
     This feature is useful when using apr_os_file_get|put()
 
1158
     to manage the apr_os_file_t in apr_file_t (ie, file handle
 
1159
     caching in the HTTP server) [Bill Stoddard]
 
1160
 
 
1161
  *) Win32: Fix APR_XTHREAD problems in apr_file_read()
 
1162
     and apr_file_write(). Multiple threads were using the
 
1163
     same overlapped structure and io event handle created
 
1164
     in the open call, which could cause unpredictable
 
1165
     file i/o results. [Bill Stoddard]
 
1166
 
 
1167
  *) Win32: apr_proc_mutex_trylock and apr_proc_mutex_lock were 
 
1168
     incorrectly returning APR_BUSY if the lock was previously
 
1169
     held by a thread that exited before releasing the lock 
 
1170
     (ie, if the process holding the lock segfaults). The MSDN
 
1171
     doc says when WaitForSingleObject returns WAIT_ABANDONED,
 
1172
     the calling thread takes ownership of the mutex, so these
 
1173
     two routines should return APR_SUCCESS in this case, not
 
1174
     APR_BUSY. [Bill Stoddard]
 
1175
 
 
1176
  *) Added a new m4 function APR_EXPAND_VAR that will iteratively
 
1177
     interpolate the contents of a variable, such as $sysconfdir,
 
1178
     for use in a borne script.  [Aaron Bannert]
 
1179
 
 
1180
  *) apr-atomic support for old-sparc's and gas on solaris
 
1181
     [Dale Ghent <daleg@elemental.org>,  jean-frederic clere, Ian Holsman]
 
1182
 
 
1183
  *) Change apr_proc_detach to take a parameter that can enable/disable
 
1184
     automatic forking (aka, to "daemonize").
 
1185
     [Jos Backus <josb@cncdsl.com>, Aaron Bannert]
 
1186
 
 
1187
  *) Implement apr_global_lock_foo() on Win32
 
1188
     [Bill Stoddard]
 
1189
 
 
1190
  *) Fix select() argument call when waiting for IO.  PR 9674.
 
1191
     [David MacKenzie <djm@pix.net>]
 
1192
 
 
1193
  *) Add a new lock API (apr_global_mutex_t) to provide guaranteed
 
1194
     cross-process AND cross-thread mutual exclusion.  [Aaron Bannert]
 
1195
 
 
1196
  *) Note: We are in the process of deprecating the apr_lock.h API.
 
1197
     The new and improved lock/synchronization APIs now reside
 
1198
     in apr_thread_mutex.h, apr_proc_mutex.h, apr_thread_rwlock.h,
 
1199
     and apr_thread_cond.h.  [Aaron Bannert]
 
1200
 
 
1201
  *) Enable autoconf 2.52{f,g} build support.
 
1202
     [Blair Zajac <blair@orcaware.com>]
 
1203
 
 
1204
  *) Added new functions for atomic operations. These are experimental
 
1205
     at the moment, so use in apps is discouraged [Ian Holsman]
 
1206
 
 
1207
  *) Correct serious problems with the Win32 apr_file_dup2 
 
1208
     and apr_file_open_stdxxx() fns.  [William Rowe]
 
1209
 
 
1210
  *) Begin implementation of the WinCE port.
 
1211
     [Mladen Turk <mturk@mappingsoft.com>]
 
1212
 
 
1213
  *) Disable SHMEM_MMAP_ZERO on HPUX 11.x where it is not supported.
 
1214
     Use SHMEM_SHMGET_ANON instead.  [Aaron Bannert]
 
1215
 
 
1216
  *) Fix a few attempts to add to a void * ptr in the Unix shared
 
1217
     memory support code.  PR #9710  Per Ekman [pek@pdc.kth.se]
 
1218
 
 
1219
  *) In the Linux apr_sendfile(), fix the types of some parameters 
 
1220
     to apr_send() and apr_recv().  Breakage was seen in 64-bit mode
 
1221
     on s/390.  PR #9712  [Neale.Ferguson@SoftwareAG-usa.coom]
 
1222
 
 
1223
  *) added APR_PROGRAM_ENV and APR_PROGRAM_PATH options for starting
 
1224
     processes via apr_proc_create() [Greg Stein]
 
1225
 
 
1226
  *) Deprecated apr_pool_free_blocks_num_bytes() [Sander Striker]
 
1227
 
 
1228
  *) Add --enable-pool-debug to make it easier for people to
 
1229
     enable pool debug mode.  Removed the APR_POOL_DEBUG_VERBOSE
 
1230
     define that was previously being used. [Sander Striker]
 
1231
     
 
1232
  *) Changed the apr_file_dup2() function prototype. It can only
 
1233
     take and reuse an apr_file_t*, and will no longer create one
 
1234
     if *new_file == NULL (use apr_file_dup() for that).  [Aaron Bannert]
 
1235
 
 
1236
  *) Implemented name-based shared memory on Unix.  [Aaron Bannert]
 
1237
 
 
1238
  *) Fix spelling mistakes in APRDesign.  
 
1239
     [Blair Zajac <blair@orcaware.com>]
 
1240
 
 
1241
  *) Ensure that apr_file_mktemp creates the temp file if it isn't there.
 
1242
     [John Sterling <sterling@covalent.net>]
 
1243
 
 
1244
  *) Make sure to pre-mark anon SysV shared memory segments as
 
1245
     removed. [Jim Jagielski]
 
1246
 
 
1247
  *) Add --with-efence to allow usage of Electric Fence.
 
1248
     [Justin Erenkrantz]
 
1249
 
 
1250
  *) Updated the pools debug code.  Check if a pool is still
 
1251
     valid on the most common apr_pool_xxx functions.
 
1252
     Fix the way APR_POOL_DEBUG_VERBOSE was using stderr.
 
1253
     Make the output somewhat nicer in this debug mode. [Sander Striker]
 
1254
 
 
1255
  *) Add new define APR_POOL_DEBUG_VERBOSE which spits out info
 
1256
     about pool creation/destruction [Ian Holsman]
 
1257
 
 
1258
  *) Fix GMT offset adjustments for platforms that do not have native
 
1259
     GMT offset adjustments.  [Jon Travis <jtravis@covalent.net>]
 
1260
 
 
1261
  *) Add new apr_shm_t API and remove old apr_shmem_t API. The new
 
1262
     API handles both anonymous and name-based shared memory. Anonymous
 
1263
     shared memory segments are only usable on systems with process
 
1264
     inheritance, and so the new API with name-based segments is
 
1265
     usable on platforms like Win32.  [Aaron Bannert and William Rowe
 
1266
     with much help from Justin Erenkrantz and Sander Striker]
 
1267
 
 
1268
  *) Add --with-egd to support EGD-compatible entropy gatherers for 
 
1269
     those platforms without native support.  [Justin Erenkrantz]
 
1270
 
 
1271
  *) apr_lock_create() and apr_proc_mutex_create() now have an
 
1272
     additional parameter for specifying the lock mechanism.  
 
1273
     apr_lock_create_np() and apr_proc_mutex_create_np() have been
 
1274
     removed.  [Jeff Trawick]
 
1275
 
 
1276
  *) Change the prototype of apr_thread_exit() so that the apr_status_t
 
1277
     is no longer a pointer. It was difficult and sometimes hazardous
 
1278
     to return a apr_status_t* at times, and this allows us to return
 
1279
     the APR_* error codes directly.  [Aaron Bannert]
 
1280
 
 
1281
  *) Add apr_sockaddr_equal() for comparing APR sockaddrs.
 
1282
     [Jeff Trawick]
 
1283
 
 
1284
  *) Win32: apr_sendfile() should return APR_ENOTIMPL if
 
1285
     oslevel < WINNT. [Bill Stoddard]
 
1286
 
 
1287
  *) Put new pools code in place which allows applications to
 
1288
     switch off locking on pools operations in case a pool is
 
1289
     guaranteed to never being used in more than one thread
 
1290
     at the same time.  We've seen a significant performance
 
1291
     improvement over the old code. [Sander Striker]
 
1292
 
 
1293
  *) Add apr-config - a shell script to allow third-party programs
 
1294
     easy access to APR configuration parameters.  [Justin Erenkrantz]
 
1295
 
 
1296
  *) Add find_apr.m4 to allow third-party programs that use APR to
 
1297
     have a standard m4 macro for detection.  [Greg Stein]
 
1298
 
 
1299
  *) SEGV in apr_table_overlap [Brian Pane]
 
1300
 
 
1301
  *) apr_array_copy speedup by removing the zero-fill [Brian Pane]
 
1302
 
 
1303
  *) Fix build breakage on systems with getaddrinfo() but not 
 
1304
     gai_strerror() (e.g., RedHat 5.2).  [Jeff Trawick]
 
1305
 
 
1306
  *) Fix a problem in Unix apr_file_dup() which caused 0 to be returned
 
1307
     by the first read.  [Stas Bekman <stas@stason.org>]
 
1308
 
 
1309
  *) Fix a buglet that caused APR_FILE_BASED_SHM to be set inadvertently 
 
1310
     on some platforms (e.g., Linux, AIX).  [Jeff Trawick]
 
1311
 
 
1312
  *) Speed up apr_table operations by using a cache/checksum and a
 
1313
     red-black tree in the overlay.
 
1314
     [Brian Pane <bpane@pacbell.net>, Cliff Woolley]
 
1315
 
 
1316
  *) Speed up apr_pool_userdata_set[n] by letting hash_set figure out
 
1317
     the strings length.  [Brian Pane <bpane@pacbell.net>]
 
1318
 
 
1319
  *) New function apr_mmap_dup. This is called in the mmap_setaside.
 
1320
     [Brian Pane <bpane@pacbell.net>]
 
1321
 
 
1322
  *) Speed up the apr_hash_t implementation's handling of APR_HASH_KEY_STRING.
 
1323
     [Brian Pane <bpane@pacbell.net>]
 
1324
 
 
1325
  *) Tweak apr_gethostname() so that it detects truncation of the
 
1326
     name and returns an error.  [Jeff Trawick]
 
1327
 
 
1328
  *) Fix bug in Darwin DSO code.  [Sander Temme]
 
1329
 
 
1330
  *) Fix apr_setup_signal_thread() to grab the right error code from
 
1331
     a sigprocmask() failure.  This only affects platforms that use
 
1332
     sigprocmask() in lieu of pthread_sigmask().  [Jeff Trawick]
 
1333
 
 
1334
  *) Fix the Unix HAVE_POLL flavor of apr_poll_socket_mask() so that
 
1335
     it doesn't segfault.  Avoid some wasted storage in a poll-related
 
1336
     APR structure.  [INOUE Seiichiro <inoue@ariel-networks.com>]
 
1337
 
 
1338
  *) Fix apr_setup_signal_thread() so that threads don't block
 
1339
     synchronous signals (e.g., SIGSEGV).  It is a programming error
 
1340
     to do so, and some platforms (e.g., Solaris, AIX) don't call any
 
1341
     registered signal handler when such signals are blocked.
 
1342
     [Jeff Trawick]
 
1343
 
 
1344
  *) Change the apr_table_elts macro so that it provides access via
 
1345
     a const pointer instead of a non-const pointer.
 
1346
     [Brian Pane <bpane@pacbell.net>]
 
1347
 
 
1348
  *) Use strerror_r() where available, since strerror() isn't always
 
1349
     thread-safe.  Example systems where strerror() isn't thread-safe:
 
1350
     Linux+glibc, AIX  [Jeff Trawick]
 
1351
 
 
1352
  *) Fix some file cleanup problems in apr_proc_create() which could
 
1353
     result in the pipes for stdin/stdout/stderr being closed
 
1354
     immediately.  [Jeff Trawick]
 
1355
 
 
1356
  *) New functions apr_hash_[merge|copy], change to overlay fn
 
1357
     so that it calls merge, which does a inline iteration instead
 
1358
     of calling the iterator function. [Brian Pane <bpane@pacbell.net>]
 
1359
 
 
1360
  *) Introduce the apr_pool_userdata_setn() variant that doesn't 
 
1361
     strdup the key.  Allows both the _setn() and _set() variant to 
 
1362
     accept NULL for the cleanup.  [Brian Pane <bpane@pacbell.net>]
 
1363
 
 
1364
  *) Re-vamp the apr_proc_wait and apr_proc_wait_all functions.  We
 
1365
     now return the exit code from the program and a reason that the
 
1366
     program died, either normal exit or signalled.
 
1367
     [Jeff Trawick and Ryan Bloom]
 
1368
 
 
1369
  *) Implement portable accessors for proc mutex. These are equivalent
 
1370
     to apr_os_lock_get/set, but they work for apr_proc_mutex_t types
 
1371
     instead.   [Aaron Bannert]
 
1372
 
 
1373
  *) Added a new parameter to apr_thread_mutex_init(). Now, by default,
 
1374
     thread mutexes are not nested (sometimes called "recursive"). To
 
1375
     enable nested mutexes, a flag must be passed to the init script.
 
1376
     Non-nested mutexes are much faster than nested ones.
 
1377
     [Aaron Bannert]
 
1378
 
 
1379
  *) read_with_timeout in apr/file_io/win32/readwrite.c incorrectly 
 
1380
     returned APR_SUCCESS instead of APR_EOF when PeekNamedPipe failed
 
1381
     and the result from GetLastError() was ERROR_BROKEN_PIPE. Because 
 
1382
     of this, the pipe wasn't closed as soon as it could be.
 
1383
     [Tim Costello <tim.costello@zcmgroup.com.au>]
 
1384
 
 
1385
  *) Fix a problem in the Win32 pipe creation code called by 
 
1386
     apr_proc_create():  It didn't register cleanups for either the 
 
1387
     read or the write ends of the pipe, so file handles (and event 
 
1388
     handles for pipes with asynchronous I/O mode set) are never 
 
1389
     closed.  [Tim Costello <tim.costello@zcmgroup.com.au>]
 
1390
 
 
1391
  *) Add support for QNX 6.  [J.T. Conklin <jtc@acorntoolworks.com>]
 
1392
 
 
1393
  *) We now create exports.c and export_vars.h, which in turn create
 
1394
     exports.c.  From this we generate two more files with different
 
1395
     purposes: apr.exp - list of exported symbols; and exports.lo
 
1396
     (exports.o) - an object file that can be linked with an executable
 
1397
     to force resolution of all apr symbols.   [Aaron Bannert]
 
1398
 
 
1399
  *) Add the apr_thread_cond_timedwait function to the condition
 
1400
     variable API.   [Aaron Bannert]
 
1401
 
 
1402
  *) Fixed apr_file_mktemp on systems without mkstemp (Win32, etc).
 
1403
     [Mladen Turk, Cliff Woolley]
 
1404
 
 
1405
  *) Fix a segfault in apr_poll_clear on Unix.   Also fix the logic 
 
1406
     for the case where there are multiple events ORed together in 
 
1407
     the events list.   [Jamshid Mahdavi <mahdavi@volera.com>]
 
1408
 
 
1409
  *) Files opened on Unix with the flag APR_DELONCLOSE are now
 
1410
     not unlinked until they are actually closed, rather than as
 
1411
     soon as they're opened.  The old approach worked but made
 
1412
     handling temp files harder.  [Cliff Woolley]
 
1413
 
 
1414
  *) Fix potential segfault when closing a file on Unix.  If
 
1415
     apr_file_close() was called and it failed, it would not
 
1416
     deregister the file cleanup.  Therefore the cleanup would
 
1417
     be run again later on a now-invalid descriptor.  [Cliff Woolley]
 
1418
 
 
1419
  *) Introduce apr_pool_lock for debugging, in combination with
 
1420
     ALLOC_USE_MALLOC + DEBUG_WITH_MPROTECT.  Only implemented
 
1421
     on Win32 today, very effective for debugging pool constness.
 
1422
     [William Rowe]
 
1423
 
 
1424
  *) Optimize apr_pstrcat by caching lengths of first 6 strings
 
1425
     [Brian Pane <bpane@pacbell.net>]
 
1426
 
 
1427
  *) Add pool accessors to the apr_thread_mutex_t datatype.
 
1428
     [Aaron Bannert <aaron@clove.org>]
 
1429
 
 
1430
  *) Add the apr_file_mktemp function.  This creates and opens a 
 
1431
     temporary file, for use by the program.  This file is created
 
1432
     delete_on_close.  The initial implementation only works on
 
1433
     Unix, but Windows is coming soon.  [Ryan Bloom]
 
1434
 
 
1435
  *) Make the unix version of apr_proc_wait_all_procs a simple wrapper 
 
1436
     around apr_proc_wait, and which extracts the exit code from the 
 
1437
     status returned by waitpid.  
 
1438
     [Kevin Pilch-Bisson <kevin@pilch-bisson.net>]
 
1439
 
 
1440
  *) Add process locking API to APR. [Aaron Bannert <aaron@clove.org>]
 
1441
 
 
1442
  *) Add condition variables for Windows.  [Ryan Bloom]
 
1443
 
 
1444
  *) Add condition variables to the APR set of locking functions.
 
1445
     This does Unix, and provides stubs for all other platforms.
 
1446
     [Aaron Bannert <aaron@clove.org>]
 
1447
 
 
1448
  *) Don't search for IPv6 names in apr_sockaddr_info_get() if the 
 
1449
     application doesn't specify the family (i.e., the application
 
1450
     passes in AF_UNSPEC) and APR isn't built with IPv6 support.  
 
1451
     [Jeff Trawick]
 
1452
 
 
1453
  *) Fix the API for the apr_proc_create() call on Win32.  Several
 
1454
     bad assumptions are gone, including a mismatch between unix and
 
1455
     win32, where win32 was defaulting to create detached.  Also fixes
 
1456
     the apr_proc_t's pid member to a real pid (identity that works
 
1457
     across processes) instead of the handle (which is a new hproc
 
1458
     member value.)  [William Rowe]
 
1459
 
 
1460
  *) Modify the external apr_filepath_get() fn to take a flags arg,
 
1461
     currently only for APR_FILEPATH_NATIVE.  This returns c:\foo
 
1462
     format on Win32, and should do the same on OS2, or sys\vol:\foo
 
1463
     on Netware.  Primarily for internals, but possibly useful to
 
1464
     others (and it mirrors some of the other apr_filepath_*() calls.)
 
1465
     [William Rowe]
 
1466
 
 
1467
  *) Add the new thread read/write lock API to APR.
 
1468
     [Aaron Bannert <aaron@clove.org>]
 
1469
 
 
1470
  *) Add the new thread mutex lock API to APR.
 
1471
     [Aaron Bannert <aaron@clove.org>]
 
1472
  
 
1473
  *) Cache GMT offset on platforms that don't store it in the tm struct.
 
1474
     This offset is normalized to be independent of daylight savings
 
1475
     time.  [Brian Pane <bpane@pacbell.net>]
 
1476
 
 
1477
  *) Initial support for cygwin.  [Stipe Tolj <tolj@wapme-systems.de>]
 
1478
 
 
1479
  *) Fix a problem with buffered files on Unix.  [Brian Havard]
 
1480
 
 
1481
  *) Fix the bungling of getaddrinfo() error codes.  [Jeff Trawick]
 
1482
 
 
1483
  *) Add an apr_thread_once function to APR.  This allows a
 
1484
     program to ensure that a function is only called once.
 
1485
     [Ryan Bloom]
 
1486
 
 
1487
  *) APR Documentation is now in Doxygen format.
 
1488
     [Ian Holsman]
 
1489
 
 
1490
  *) Get apr_ungetc() to work with buffered files on Unix.
 
1491
     [Jeff Trawick]
 
1492
 
 
1493
  *) Fixed apr_filepath_root on Unix [William Rowe, Cliff Woolley].
 
1494
 
 
1495
  *) Rename XtOffset to APR_XtOffset.  This namespace protection
 
1496
     is important to keep from conflicting with other packages.
 
1497
     [Perl]
 
1498
 
 
1499
  *) Introduce a new --disable-ipv6 option to disable IPv6 support.
 
1500
     [Sterling Hughes <sterling@designmultimedia.com>, Jeff
 
1501
     Trawick]
 
1502
 
 
1503
  *) Fix the new shared memory code.  We need to pass a pointer to
 
1504
     an apr_file_t to apr_file_open.  Also, apr_os_file_get returns
 
1505
     a status value, not the OS file descriptor.  [Ryan Bloom]
 
1506
 
 
1507
  *) Fix the new shared memory configure script.  The APR_DECIDE
 
1508
     macros go in order, so the last set of dependancies that are
 
1509
     met are the ones used.  That means that when using those macros,
 
1510
     options should be listed with the least desirable option first,
 
1511
     and the most desirable last.  The new shared memory routines did
 
1512
     the opposite, so we chose the wrong shared memory option on Linux.
 
1513
     [Ryan Bloom]
 
1514
 
 
1515
  *) Move the necessary shared memory code from MM into APR and remove
 
1516
     our dependency upon MM.  [Justin Erenkrantz]
 
1517
 
 
1518
  *) Get apr_lock_file and apr_unlock_file working on Windows 9x.
 
1519
     [Mladen Turk, Bill Stoddard]
 
1520
 
 
1521
  *) Make all APR pools be allocated out of the permanent pool.
 
1522
     This brings APR pools back to a tree structure.  There are
 
1523
     no longer any way to create a pool that is not a decendant
 
1524
     of the permanent_pool.  [Ryan Bloom]
 
1525
 
 
1526
  *) Wrap all functions in APR_DECLARE macro. 
 
1527
     [Sterling Hughes <sterling@designmultimedia.com>]
 
1528
 
 
1529
  *) Non-blocking connects shouldn't be calling connect a second
 
1530
     time.  According to Single Unix, a non-blocking connect has
 
1531
     succeeded when the select pops successfully.  It has failed
 
1532
     if the select failed.  The second connect was causing 502's
 
1533
     in the httpd-proxy.  [John Barbee barbee@veribox.net]
 
1534
 
 
1535
  *) Fix apr_dir_rewind() for Win32 to avoid returning a bogus error.
 
1536
     [Jeff Trawick, William Rowe]
 
1537
 
 
1538
  *) Detect required libraries first.  This minimizes the libraries
 
1539
     needed in apr_hints.m4.  [Justin Erenkrantz]
 
1540
 
 
1541
  *) Support the AIX, glibc2, and Solaris variants of gethostby{name|addr}_r.
 
1542
     Use gethostbyaddr_r function when available.
 
1543
     [Sterling Hughes <sterling@designmultimedia.com>]
 
1544
 
 
1545
  *) Add new socket option, APR_INCOMPLETE_READ, that should be
 
1546
     set when you expect the first non-blocking read to fail with
 
1547
     EAGAIN. Setting APR_INCOMPLETE_READ prior to calling apr_read
 
1548
     will cause select() to be called first to wait for bytes
 
1549
     to read. [Brian Pane, Dean Gaudet]
 
1550
 
 
1551
  *) Better installation.  This makes us install the APRVARS file,
 
1552
     as well as MM.  [Ryan Bloom]
 
1553
 
 
1554
  *) Provide new number conversion functions apr_itoa, apr_ltoa, and 
 
1555
     apr_off_t_toa, and inline code in inet_ntop4, to reduce CPU
 
1556
     consumption. [Brian Pane]
 
1557
 
 
1558
  *) Updated APR to pass the thread worker_function prototype 
 
1559
     (apr_thread_start_t) two parameters, the apr private data 
 
1560
     (apr_thread_t*) and the application private data (void*).  
 
1561
     Applications' worker_thread() routines may use apr_thread_pool_get
 
1562
     to access the pool (implemented using APR_POOL_*_ACCESSOR() macros.)
 
1563
     [Aaron Bannert <aaron@ebuilt.com>]
 
1564
 
 
1565
  *) Add Solaris 8's sendfilev() support.  This requires the following 
 
1566
     patches from Sun: 111297 (Sparc), 111298 (x86).  You'll need the
 
1567
     other patches listed in the patch description.  [Justin Erenkrantz]
 
1568
 
 
1569
  *) Close file descriptor when we are done with fcntl or flock-based
 
1570
     cross-process lock.  Otherwise, we leak descriptors.
 
1571
     [Justin Erenkrantz]
 
1572
 
 
1573
  *) Fix a possible data corruption problem with the use of getpwnam_r() on 
 
1574
     all platforms where that function is used.
 
1575
     Use getpwnam_r() and getgrgid_r() instead of getpwnam() and getgrgid()
 
1576
     with threaded builds on glibc (2.1, at least) to avoid thread safety
 
1577
     issues.  [Jeff Trawick]
 
1578
 
 
1579
  *) Added apr_lock_tryacquire.  It will attempt to acquire the lock, but 
 
1580
     will not block if it can not acquire the lock.  Returns APR_EBUSY if 
 
1581
     acquistion can not happen.  [Justin Erenkrantz]
 
1582
 
 
1583
  *) Added an inherit flag to apr_socket_create and other socket creation
 
1584
     functions.  This allows APR programs to specify that a socket should
 
1585
     be passed to any child processes that are created.  The inherit flag
 
1586
     is only meaningful if programs use apr_process_create().  This
 
1587
     also adds a couple of macros that allow APR types to set and unset
 
1588
     the inherit flag.  [Ryan Bloom]
 
1589
 
 
1590
  *) apr_connect()on Windows: Handle timeouts and returning the proper
 
1591
     status code when a connect is in progress. [Bill Stoddard]
 
1592
 
 
1593
  *) apr_connect() on Unix: Handle EINTR during connect().  Handle timeouts.
 
1594
     [Jeff Trawick]
 
1595
 
 
1596
  *) Handle the weird case where getpwnam() returns NULL but errno is zero.
 
1597
     [Jeff Trawick]
 
1598
 
 
1599
  *) Add apr_file_flags_get() which returns the flags that were originally
 
1600
     passed in to apr_file_open().  [Cliff Woolley]
 
1601
 
 
1602
  *) Added APR_HAS_XTHREAD_FILES macro that indicates whether or not the
 
1603
     platform handles files opened in APR_XTHREAD mode natively.  Currently
 
1604
     only Win32 has such native support.  [Cliff Woolley]
 
1605
 
 
1606
  *) Fix gmt offset handling on Solaris.  Apache log messages now show
 
1607
     local time again. PR #7902 [Taketo Kabe <kabe@sra-tohoku.co.jp>]
 
1608
 
 
1609
  *) apr_pstrcat() optimizations [Doug MacEachern, Jeff Trawick]
 
1610
 
 
1611
  *) Make the apr_pool_is_ancestor logic public.  This is required for 
 
1612
     some new logic that is going into HTTPD.  I have left the join logic
 
1613
     in that function debug only.  [Ryan Bloom]
 
1614
 
 
1615
  *) Clean up Win32 locks when the pool goes away.
 
1616
     [Justin Erenkrantz, Jeff Trawick]
 
1617
 
 
1618
  *) Implement apr_get_home_directory for Win32.  [William Rowe]
 
1619
 
 
1620
  *) Complete the implementation of LARGEFILE support on Win32, although
 
1621
     the mmap semantics still need a touch of work.  [William Rowe]
 
1622
 
 
1623
  *) Fix the APR_XTHREAD support, and apr_sendfile mechanics, so we can
 
1624
     handle cross-threaded file handles on Win32.  [William Rowe]
 
1625
 
 
1626
  *) Implement APR_READWRITE locks on Unix with POSIX rwlocks.
 
1627
     Introduce new apr_lock_acquire_rw() function which takes in 
 
1628
     APR_READER or APR_WRITER.  [Justin Erenkrantz]
 
1629
 
 
1630
  *) Add apr_open_stdin.  This mirrors apr_open_stderr, except it works
 
1631
     on stdin.  [Aaron Bannert <abannert@ebuilt.com>]
 
1632
 
 
1633
  *) Add apr_strtok(), a thread-safe flavor of strtok() which has the
 
1634
     same interface as strtok_r().  [Jeff Trawick]
 
1635
     
 
1636
  *) Add other child support to Win32 [Bill Stoddard]
 
1637
 
 
1638
  *) Other-child registrations are automatically removed when the
 
1639
     associated pool is destroyed.  This avoids garbage in the list
 
1640
     of registrations when a pool with a registration is freed.
 
1641
     [Jeff Trawick]
 
1642
 
 
1643
  *) Allow LTFLAGS to be overridden by the configure command-line 
 
1644
     (default="--silent") and introduce LT_LDFLAGS.  [Roy Fielding]
 
1645
 
 
1646
  *) Add memory code kindly donated to APR by  
 
1647
       Elrond  <elrond@samba-tng.org> 
 
1648
       Luke Kenneth Casson Leighton <lkcl@samba-tng.org>
 
1649
       Sander Striker <striker@samba-tng.org>
 
1650
     [David Reid]
 
1651
 
 
1652
  *) Fix a problem with the FreeBSD flavor of apr_sendfile() where we 
 
1653
     could return APR_EAGAIN+bytes_sent.  [Jeff Trawick]
 
1654
 
 
1655
  *) Fix a problem on unixware where clearing h_errno wouldn't work.
 
1656
     Use set_h_errno() instead.  PR #7651  [Jeff Trawick]
 
1657
 
 
1658
  *) Add the test and build directories (when present) to the recursive
 
1659
     make process, being sure that they are run last.  test is only done
 
1660
     recursively for make *clean targets.  [Roy Fielding]
 
1661
 
 
1662
  *) Make the apr_mmap_create() function use the native_flags variable.
 
1663
     This allows us to actually create WRITEABLE MMAPs.
 
1664
     [Ed Korthof <ed@apache.org>]
 
1665
 
 
1666
  *) Completely revamp configure so that it preserves the standard make
 
1667
     variables CPPFLAGS, CFLAGS, CXXFLAGS, LDFLAGS and LIBS by moving
 
1668
     the configure additions to EXTRA_* variables.  Also, allow the user
 
1669
     to specify NOTEST_* values for all of the above, which eliminates the
 
1670
     need for THREAD_CPPFLAGS, THREAD_CFLAGS, and OPTIM.  Fix the setting
 
1671
     of INCLUDES and EXTRA_INCLUDES.  Check flags as they are added to
 
1672
     avoid pointless duplications.  Fix the order in which flags are given
 
1673
     on the compile and link lines.  [Roy Fielding]
 
1674
 
 
1675
  *) Fix DSO code on HP/UX.  We have to use == not =, and it makes more
 
1676
     sense to actually return errno, so that the return code means 
 
1677
     something.  [Ryan Bloom]
 
1678
 
 
1679
  *) Clean up conditionals in unix DSO code so that we decide based on
 
1680
     the dynamic loading implementation, which we noticed at configure
 
1681
     time, instead of by operating system.
 
1682
     [Wilfredo Sanchez]
 
1683
 
 
1684
  *) Add DSO support for dyld platforms (Darwin/Mac OS and OpenStep).
 
1685
     [Wilfredo Sanchez]
 
1686
 
 
1687
  *) Amend the time code to better deal with time zones.
 
1688
     [David Reid]
 
1689
 
 
1690
  *) Carefully select an appropriate native type for apr_int64_t and
 
1691
     define its format as APR_INT64_T_FMT and literal using APR_INT64_C().
 
1692
     [Justin Erenkrantz, William Rowe]
 
1693
 
 
1694
  *) Make clean, distclean, and extraclean consistently according to the
 
1695
     Gnu makefile guidelines.  [Justin Erenkrantz <jerenkrantz@ebuilt.com>]
 
1696
 
 
1697
  *) Initial implementation of of apr_filepath (get/set/parse_root and 
 
1698
     merge) for Windows.  [William Rowe]
 
1699
 
 
1700
  *) Cleaned up implementation of of apr_filepath (get/set/parse_root
 
1701
     and merge) for Unix.  [Greg Stein, William Rowe]
 
1702
 
 
1703
  *) Fixup the --enable-libtool option.  This allows the test directory
 
1704
     to compile again.  The test directory still doesn't work when
 
1705
     APR is configured without libtool.  [Ryan Bloom]
 
1706
 
 
1707
  *) If we don't have sigwait() in the system, see if sigsuspend() is
 
1708
     available, and use that instead. [Wilfredo Sanchez]
 
1709
 
 
1710
  *) Make libtool optional at configure time.  This is done with 
 
1711
     --disable-libtool.  [Ryan Bloom]
 
1712
 
 
1713
  *) Recognize systems where the TCP_NODELAY setting is inherited from
 
1714
     the listening socket, and optimize apr_setsockopt(APR_TCP_NODELAY)
 
1715
     accordingly.  [Jeff Trawick]
 
1716
 
 
1717
  *) Recognize the presence of getnameinfo() on Tru64.  [David Reid]
 
1718
 
 
1719
  *) Allow APR to be installed. [Ryan Bloom]
 
1720
 
 
1721
  *) Generate config.nice for easy re-run of configure. [Roy Fielding]
 
1722
 
 
1723
  *) Define preprocessor flags in CPPFLAGS instead of CFLAGS and
 
1724
     bring some sanity to the compiler command-lines. [Roy Fielding]
 
1725
 
 
1726
  *) Use the dso/aix subdirectory for older versions of AIX and fix 
 
1727
     a number of bugs in the dso code in that directory.
 
1728
     [Victor Orlikowski]
 
1729
 
 
1730
  *) Allow libtool 1.3b to be used.  [Victor Orlikowski]
 
1731
 
 
1732
  *) Misc. Win32 fixes: Set the pool pointer in apr_sockaddr_t 
 
1733
     structures created with the apr_socket_t to prevent segfault 
 
1734
     in certain apps.  Flush unwritten buffered data when the file 
 
1735
     is closed.  [Jeff Trawick]
 
1736
 
 
1737
  *) Win32: Get APR to compile with MSVC 5.0 (a.k.a. VC97).
 
1738
     PR #7489  [Jeff Trawick]
 
1739
 
 
1740
  *) First draft implementation of apr_filepath (get/set/parse_root
 
1741
     and merge) for Unix.  [William Rowe]
 
1742
 
 
1743
  *) Add apr_ipsubnet_create() and apr_ipsubnet_test() for testing
 
1744
     whether or not an address is within a subnet.  [Jeff Trawick]
 
1745
 
 
1746
  *) Add apr_sendto and apr_recvfrom for Unix.  Start of adding UDP
 
1747
     support.  [David Reid]
 
1748
 
 
1749
  *) Add a method to get the password from the system for a given
 
1750
     user.  [John Barbee <jbarbee@covalent.net>]
 
1751
 
 
1752
  *) Change the include path order, so that we look for included files
 
1753
     in the APR paths first, and the system paths second.
 
1754
     [jean-frederic clere <jfrederic.clere@fujitsu-siemens.com>]
 
1755
 
 
1756
  *) Add a with-sendfile option, so that people on platforms without a
 
1757
     sendfile implementation for APR can easily disable it from the 
 
1758
     configure line.  [Ryan Bloom]
 
1759
 
 
1760
  *) Change the check for netinet/tcp.h to work around an issue with
 
1761
     that header file on IRIX 6.5 which prevented it from being
 
1762
     detected.  PR #6459  [Jeff Trawick]
 
1763
 
 
1764
  *) Introduce apr_get_userid to return a named user's apr_uid_t and
 
1765
     apr_gid_t across platforms [Cliff Woolley, William Rowe]
 
1766
 
 
1767
  *) In apr_shm_init(), check the retcode from mm_malloc().  Previously,
 
1768
     we segfaulted here if mm_malloc() failed to get a lock.  An example
 
1769
     error scenario is when the lock file lives on a filesystem which
 
1770
     doesn't support locking.  [Jeff Trawick]
 
1771
 
 
1772
  *) Name protected the autoconf macros defined by APR.  Moved the
 
1773
     REENTRANCY_FLAGS settings into apr_hints.m4. Inlined the
 
1774
     APR_PREPARE_MM_DIR macro because it could only be used once.
 
1775
     Removed the unused macros MY_TRY_RUN, MY_TRY_RUN_NATIVE, and
 
1776
     AC_USE_FUNCTION.  Added some macro comments.  [Roy Fielding]
 
1777
 
 
1778
  *) Cope with BSDi installations where the default make has been
 
1779
     replaced with GNU make.  [Joe Orton <joe@manyfish.co.uk>]
 
1780
 
 
1781
  *) Changed apr/helpers to apr/build to be consistent with other Apache
 
1782
     source trees.  Added make variables to rules.mk.in that point to the
 
1783
     builders directory and its scripts.  Updated buildconf, configure.in,
 
1784
     and Makefile.in files to create and use the new scripts.  Moved scandoc
 
1785
     to scandoc.pl and its default.pl template to scandoc_template.pl.
 
1786
     [Roy Fielding]
 
1787
 
 
1788
  *) Updated config.guess and config.sub to GNU libtool 1.3.5 features,
 
1789
     with the Apache additions for OS/390 and OS/2 emx.  [Roy Fielding]
 
1790
 
 
1791
  *) Moved hints.m4, apr_common.m4, and helpers/apr-conf.m4 into the
 
1792
     new build directory as apr_hints.m4, apr_common.m4, apr_network.m4,
 
1793
     and apr_threads.m4.  [Roy Fielding]
 
1794
 
 
1795
  *) Get apr_sendfile() working on HP-UX.  This gets APR to build on
 
1796
     HP-UX without having to turn off APR_HAS_SENDFILE.  [Jeff Trawick]
 
1797
 
 
1798
  *) Force FreeBSD to compile without threads by default.  To enable
 
1799
     threads, use --enable-threads on the configure line.
 
1800
     [Ryan Bloom]
 
1801
 
 
1802
  *) Purge system password buffer before returning from apr_password_get.
 
1803
     No longer abuses bufsize argument on return.  [William Rowe]
 
1804
 
 
1805
  *) Moved the prototypes for apr_snprintf and apr_vsnprintf to the
 
1806
     apr_strings.h header, from apr_lib.h.  This location makes more
 
1807
     sense.  [Ryan Bloom]
 
1808
 
 
1809
  *) Added the APR_TRY_COMPILE_NO_WARNING configure macro for testing a
 
1810
     compile with -Werror as well as the APR_CHECK_ICONV_INBUF macro to
 
1811
     test for annoying iconv prototype differences.
 
1812
     [Jeff Trawick, Roy Fielding]
 
1813
 
 
1814
  *) Fix a problem with configure on NetBSD.  We must include sys/types.h
 
1815
     for some platforms.  [jun-ichiro hagino <itojun@kame.net>]
 
1816
 
 
1817
  *) Some fixes in the Win32 time support.
 
1818
     (IsLeapYear): New macro for quickly figgerin' out if a given year is a 
 
1819
     leap year. (SystemTimeToAprExpTime): Perform the calculation of
 
1820
     tm_yday.  Also, negate the sign of the tm_gmtoff field to be
 
1821
     consistent with Unix platforms and APR header file comments.
 
1822
     [Mike Pilato]
 
1823
 
 
1824
  *) Implement WinNT Unix'ish permissions. [William Rowe]
 
1825
 
 
1826
  *) Corrected an OS2'ism of apr_get_home_directory.  OS2 now returns the
 
1827
     proper directory, including the user's name.
 
1828
 
 
1829
  *) Removed private os2errno.h and integrated the OS2 network error codes
 
1830
     into apr_errno.h for optimized error tests (APR_STATUS_IS_EFOO(rv)).
 
1831
     [William Rowe]
 
1832
 
 
1833
  *) Moved inclusion of <os2.h> header from multiple modules into apr.h
 
1834
     [William Rowe]
 
1835
 
 
1836
  *) Added apr_compare_users() and apr_compare_groups() for more complex
 
1837
     apr_uid_t and apr_gid_t structures.  Enabled both .user and .group
 
1838
     results from WinNT/2000 stat/getfileinfo, but expect to find that 
 
1839
     .group is 'None' in most cases.  [William Rowe]
 
1840
 
 
1841
  *) Replace configure --with-optim option by using the environment
 
1842
     variable OPTIM instead.  This is needed because configure options
 
1843
     do not support multiple flags separated by spaces.  [Roy Fielding]
 
1844
 
 
1845
  *) Eliminate the APR_SIG* aliases for standard signal names,
 
1846
     since they serve no useful purpose.  [Roy Fielding]
 
1847
 
 
1848
  *) Abstracted apr_get_username and apr_get_groupname for unix and win32.
 
1849
     Modified Win32 apr_uid_t and apr_gid_t to use PSIDs, and elimintated
 
1850
     the uid_t and gid_t definitions.  [William Rowe]
 
1851
 
 
1852
  *) Radically refactored apr_stat/lstat/getfileinfo/dir_read for Win32
 
1853
     to assure we are retrieving what we expect to retrieve, and reporting
 
1854
     the correct result (APR_SUCCESS or APR_INCOMPLETE).  The potential
 
1855
     for a bit more optimization still remains.  [William Rowe]
 
1856
 
 
1857
  *) While we have the future opportunity to cache the apr_stat'ed file
 
1858
     handle for a very fast open (dup handle) on Win32, patched to close
 
1859
     that file after a stat always.  Needs a new semantic before we leave
 
1860
     handles dangling when the user intends to rm.  [William Rowe]
 
1861
 
 
1862
  *) Correct Win32 apr_stat/lstat/getfileinfo/dir_read to all zero out
 
1863
     the finfo buffer on success (or incomplete success).  [William Rowe]
 
1864
 
 
1865
  *) Fix Win32/Unix apr_lstat to throw the .valid bit APR_FINFO_LINK to
 
1866
     indicate we attempted to open the link.  Only the .filetype APR_LNK
 
1867
     reflects if the file found was, in fact, a link.   [William Rowe]
 
1868
 
 
1869
  *) Fixed apr_open and apr_rename to function on Win9x.
 
1870
     [Mike Pilato <cmpilato@collab.net>] 
 
1871
  
 
1872
  *) Add apr_open_stdout.  This mirrors apr_open_stderr, except it works
 
1873
     on stdout.  [Mike Pilato <cmpilato@collab.net>]
 
1874
 
 
1875
  *) Fix bug in file_io/unix/dir.c.  There is no such thing as a dirent,
 
1876
     it must be a struct dirent.  
 
1877
     [Kevin Pilch-Bisson <kevin@pilch-bisson.net>]
 
1878
 
 
1879
  *) Fix the configure script so that we can build from a different
 
1880
     directory.  [Kevin Pilch-Bisson <kevin@pilch-bisson.net>]
 
1881
 
 
1882
  *) Introduce the wanted flag argument to the apr_stat/lstat/getfileinfo
 
1883
     family of functions.  This change allows the user to determine what
 
1884
     platform-specific file information is retrieved, to optimize both
 
1885
     portability and performance.  [William Rowe]
 
1886
 
 
1887
  *) Fix make depend.  [Ryan Bloom]
 
1888
 
 
1889
  *) All dso implementations now register a cleanup to unload the DSO
 
1890
     when it is loaded.  If the pool is removed, we really do need to
 
1891
     remove the DSO.  In the past, different platforms behaved differently
 
1892
     it this respect.  [Ryan Bloom]
 
1893
 
 
1894
  *) Add linkage declarations to the DSO code.
 
1895
     [Gregory Nicholls <gnicholls@level8.com>]
 
1896
 
 
1897
  *) Some adjustment of hints.m4 setting flags (used to check if null
 
1898
     first) and added some verbosity. [Jim Jagielski]
 
1899
 
 
1900
  *) Specify APR_DECLARE to some of the APR functions.  This helps linking
 
1901
     on some operating systems.  [Gregory Nicholls <gnicholls@level8.com>]
 
1902
 
 
1903
  *) Libtool'ized APR and converted all the makefiles to share rules
 
1904
     from helpers/rules.mk. [Greg Stein]
 
1905
 
 
1906
  *) Remove a warning on FreeBSD.  FreeBSD defines TCP_NO_PUSH, but we
 
1907
     don't actually use it.  This causes os_cork to be defined but not
 
1908
     used.  This patch keeps us from defining os_cork and os_uncork on
 
1909
     FreeBSD.  [Ryan Bloom]
 
1910
 
 
1911
  *) Keep apr_terminate from seg faulting on terminate.  This is
 
1912
     happening on systems that do not NULL out locks when they are
 
1913
     destroyed.  To keep this from happening, we set the locks to
 
1914
     NULL after destroying them in apr_terminate, and we have to 
 
1915
     check for NULL in free_blocks.  
 
1916
     [Allan Edwards and Gregory Nicholls <gnicholls@level8.com>]
 
1917
 
 
1918
  *) Remove the ability to allocate memory out of a NULL pool.
 
1919
     [Ryan Bloom]
 
1920
 
 
1921
  *) Add an APR_GET_POOL macro to get a pool from any APR type that has
 
1922
     a pool.  This requires that ALL apr types put the pool as the first
 
1923
     field in their structure. [Ryan Bloom]
 
1924
 
 
1925
  *) Begin to remove the ability to allocate out of NULL pools.  The first
 
1926
     problem to solve, is that we need an apr_lock in order to allocate
 
1927
     pools, so that we can lock things out when allocating.  So, how do we
 
1928
     allocate locks without a pool to allocate from?  The answer is to create
 
1929
     a global_apr_pool, which is a bootstrapping pool.  There should NEVER
 
1930
     be a sub-pool off this pool, and it is static to an APR file.  This is
 
1931
     only used to allow us to allocate the locks cleanly, without using the
 
1932
     NULL pool hack.  [Ryan Bloom]
 
1933
 
 
1934
  *) Fix a logic error in the poll code when implemented using select.
 
1935
     [Nick Caruso <ncaruso@gamesville.com>]
 
1936
 
 
1937
  *) FreeBSD does not support sendfile() in combination with threads
 
1938
     before version 4.2.  We no longer even try to support it.
 
1939
     [Ryan Bloom]
 
1940
 
 
1941
  *) On FreeBSD, it is possible for the first call to sendfile to
 
1942
     get EAGAIN, but still send some data.  This means that we cannot
 
1943
     call sendfile and then check for EAGAIN, and then wait and call
 
1944
     sendfile again.  If we do that, then we are likely to send the
 
1945
     first chunk of data twice, once in the first call and once in the
 
1946
     second.  If we are using a timed write, then we check to make sure
 
1947
     we can send data before trying to send it. [Ryan Bloom]
 
1948
 
 
1949
  *) Cleanup to help Apache support programs build cleanly.
 
1950
     [Cliff Woolley <cliffwoolley@yahoo.com>]
 
1951
 
 
1952
  *) Cleanup some compiler warnings on Solaris
 
1953
     [Dale Ghent <daleg@elemental.org>]
 
1954
 
 
1955
  *) apr_getaddrinfo() can now return multiple addresses for a host
 
1956
     via the next field in apr_sockaddr_t.  [Jeff Trawick]
 
1957
 
 
1958
  *) Tighten up the check for getaddrinfo().  If it can't figure out
 
1959
     the appropriate address family for 127.0.0.1, it fails.  
 
1960
     Unfortunately, Tru64 fails this test so we won't do IPv6 on
 
1961
     Tru64.  [Jeff Trawick]
 
1962
 
 
1963
  *) Rename apr_opendir to apr_dir_open.  [Ryan Bloom]
 
1964
 
 
1965
  *) apr_snprintf()'s %pI format string now takes apr_sockaddr_t *
 
1966
     instead of sockaddr_in *.  [Jeff Trawick]
 
1967
 
 
1968
  *) Fix a bug in apr_accept() for Win32 and Unix where the local 
 
1969
     apr_sockaddr_t in the new connected socket was not initialized
 
1970
     properly.  This could result in a bad string for apr_get_ipaddr(),
 
1971
     among other things.  [Jeff Trawick]
 
1972
 
 
1973
  *) Add apr_getnameinfo(), a replacement for apr_get_hostname() which
 
1974
     supports IPv6 and will be friendlier for use with eventual 
 
1975
     SOCK_DGRAM support.  apr_get_hostname() is gone.  [Jeff Trawick]
 
1976
 
 
1977
 
 
1978
Changes with APR a9
 
1979
 
 
1980
  *) Removed the iconv implementation from the i18n/unix/iconv branch.
 
1981
     This now resides in the apr-iconv repository, and will be ported
 
1982
     over time to use native apr types (e.g. apr_dso) for portability.
 
1983
 
 
1984
  *) Only support IPv6 if we have sockaddr_in and a working 
 
1985
     getaddrinfo().  [Jeff Trawick]
 
1986
 
 
1987
  *) Add apr_parse_addr_port() for parsing the hostname:port portion
 
1988
     of URLs and similar strings.  [Jeff Trawick]
 
1989
 
 
1990
  *) Add Win32 MMAP support [William Rowe]
 
1991
 
 
1992
  *) Allow the APR programmer to specify if the MMAP is read-only or
 
1993
     write-able.
 
1994
     [Ryan Bloom and Will Rowe]
 
1995
 
 
1996
  *) Check more carefully for getaddrinfo().  Accept those that
 
1997
     require <netdb.h> to be included (e.g., Tru64).  Reject those that 
 
1998
     fail a very basic operational test (e.g., AIX).  [Jeff Trawick]
 
1999
 
 
2000
  *) Add apr_make_os_sock() for constructing a fully-capable APR
 
2001
     socket.  [Jeff Trawick]
 
2002
 
 
2003
  *) Make APR's shared memory routines always allocate enough memory
 
2004
     for the requested segment, the MM internal types, and the APR
 
2005
     internal types.
 
2006
     [Ryan Bloom]
 
2007
 
 
2008
  *) Add APR_SIZE_T_FMT.  Get the other APR_xx_T_FMT variables
 
2009
     defined properly on AIX.  [Jeff Trawick]
 
2010
 
 
2011
  *) network API changes: get rid of apr_get_socket_inaddr(), 
 
2012
     apr_get_remote_name(), and apr_get_local_name()  [Jeff Trawick]
 
2013
 
 
2014
  *) Add a step at configure time to create a file at the top-level,
 
2015
     apr.exports, which lists every function exported by APR.  The
 
2016
     file is generated by a script in helpers, that reads each header
 
2017
     file.
 
2018
     [Ryan Bloom]
 
2019
 
 
2020
  *) Lock config changes: Detect SysV sem capability by the presence of
 
2021
     sempaphore functions, not by the presence of union semun.  New
 
2022
     config variable apr_lock_method can override autodetection of the 
 
2023
     apr_lock implementation method.  For now, hints.m4 uses it to select 
 
2024
     SysV semaphores for OS/390.  New config variable 
 
2025
     apr_process_lock_is_global specifies that the selected inter-process
 
2026
     lock method is sufficient for APR_LOCKALL (i.e., it blocks all
 
2027
     threads and processes).  For now, hints.m4 turns on this flag for
 
2028
     OS/390.  [Jeff Trawick]
 
2029
     
 
2030
  *) Get APR_OFF_T_FMT defined properly on Solaris Sparc.
 
2031
     [Jeff Trawick]
 
2032
 
 
2033
 
 
2034
Changes with APR a8
 
2035
 
 
2036
  *) Change the name of the sa_len field in apr_sockaddr_t to salen.
 
2037
     Some platforms have a macro named sa_len.
 
2038
     [Tony Finch]
 
2039
 
 
2040
  *) apr_set_port(), apr_get_port(), apr_set_ipaddr(), and apr_get_ipaddr()
 
2041
     now take apr_sockaddr_t as a parameter instead of apr_socket_t +
 
2042
     apr_interface_e.  This will allow the same routines to be used with
 
2043
     datagram APIs to be added later.  Note that code which calls 
 
2044
     apr_set_ipaddr() should probably be changed to call apr_getaddrinfo()
 
2045
     for protocol independence.  [Jeff Trawick]
 
2046
 
 
2047
  *) apr_create_tcp_socket() has been removed.  Use apr_create_socket()
 
2048
     instead.  [Jeff Trawick]
 
2049
 
 
2050
  *) Source was moved from the apache-2.0 repository.  For all CHANGES
 
2051
     prior to this time, please see the apache-2.0 repository