123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082 |
- Changes for APR 1.2.8
- *) Correctly retrieve 'empty' environment values with apr_env_get
- on Win32 (e.g. "VAR="), and added validation to testall suite.
- PR 40764. [Issac Goldstand <margol beamartyr.net>]
- *) APR_FIND_APR macro no longer checks /usr/local/apache2/.
- PR 40842. [Colm MacCarthaigh]
- *) Portably check for EEXIST in mktemp code. PR 40818
- [Kenneth Golomb <KGolomb TradeCard.com>]
- *) Fix apr_snprintf/apr_vsnprintf return value to not count the
- NUL terminator in the overflow case. PR 39996.
- [Michal Luczaj <regenrecht o2.pl>]
- *) Provide folding in autogenerated .manifest files for Win32 builders
- using VisualStudio 2005 [William Rowe]
- *) Fix detection of pthread cross-process robust mutexes.
- PR 39833. [Tsuyoshi SASAMOTO <nazonazo miobox.jp>]
- *) NetBSD: Avoid leaving zombie process when using apr_signal()
- to ignore SIGCHLD. PR 36750. [Todd Vierling <tv pobox.com>]
- *) Fix apr_socket_sendv() for platforms without writev.
- PR 38822. [Joe Orton]
- *) Avoid issues using >2Gb of data per call with sendfile() on
- 64-bit Linux platforms. [Joe Orton]
- Changes for APR 1.2.7
- *) Netware - add missing apu_version.c parsing for apu_version_string()
- to the Netware specific builds. Unix platforms support this API
- since 0.9.1. [Brad Nicholes]
- *) Fix a regression in the updated win32 apr_file_read with timeouts
- since 1.2.6 which would fail to return the bytes read in specific
- edge cases. [William Rowe]
- Changes for APR 1.2.6
- *) Fully test the detected libuuid or libc based uuid_create or
- uuid_generate function against the detected uuid.h, uuid/uuid.h,
- or sys/uuid.h (using only the first-found .h examined in that order)
- for correct compilation. Resolves various apr_os_uuid issues on
- multiple environments. [William Rowe]
- *) Prevent detection of robust mutex support with glibc 2.4,
- fixing APR_LOCK_PROC_PTHREAD locks. PR 38442. [Joe Orton]
- *) Correct bug in kqueue backend for apr_pollset where we would
- erroneously indicate that a socket was readable or writeable.
- [Garrett Rooney]
- *) Make the filePtr in apr_file_t an apr_off_t on Unix, to avoid issues
- truncating offsets down to 32 bits on large file systems.
- [Garrett Rooney]
- *) Fix seeks with files opened in xthread mode for append on win32.
- [M Joonas Pihlaja <jpihlaja cc.helsinki.fi>, Garrett Rooney]
- *) Keep testpipe.c from hanging on win32. [Garrett Rooney]
- *) Cause apr_file_write_full on win32 to consider the timeout value set by
- apr_file_pipe_timeout_set. PR 30182
- [<eholyat olf.com>]
- *) Fix assertion from double close of a handle with a rwlock on win32.
- [Evgueni Brevnov <evgueni.brevnov gmail.com>]
- *) Fix EOF handling for unbuffered reads on win32.
- [Konstantin Sharenkov <Konstantin.Sharenkov enterra-inc.com>]
- *) Documented that apr_stat and apr_dir_read can return APR_INCOMPLETE,
- and how to determine which parts of the resulting apr_finfo_t can be
- used in such a case.
- [Garrett Rooney]
- *) Fix passing "" as an argument to the program started by apr_proc_create
- on Win32.
- [Philip Martin <philip codematters.co.uk>
- *) Bugfix for apr_pollset_poll() on systems that implement pollsets
- using select(2): properly compute the number of signalled desciptors
- when one or more of them are both readable and writable.
- [Dror Shilo <Dror.Shilo ericom.com>, Gerry <gerry everythingsucks.co.uk>]
- *) Fix apr_file_seek() to catch write failures when flushing
- pending writes for a buffered file. [Joe Orton]
- Changes for APR 1.2.2
- *) Fix crash in apr_dir_make_recursive() for relative path
- when the working directory has been deleted. [Joe Orton]
- *) Win32: fix apr_proc_mutex_trylock() to handle WAIT_TIMEOUT,
- returning APR_EBUSY. [Ronen Mizrahi <ronen@tversity.com>]
- *) Fix apr_socket_opt_set() issue where TCP_NODELAY would be
- set when TCP_DEFER_ACCEPT was set. [Brian Pane]
- *) Allow TCP_NODELAY and TCP_CORK to be set concurrently on
- Linux 2.6 and later. [Joe Orton]
- *) Fix apr_socket_addr_get(,APR_REMOTE,) after a non-blocking
- connection is completed. PR 32737. [Joe Orton]
- *) Fix apr_file_gets() and apr_file_read() to catch write failures
- when flushing pending writes for a buffered file. [Joe Orton]
- *) Fix apr_file_write() infinite loop on write failure for buffered
- files. [Erik Huelsmann <ehuels gmail.com>]
- *) Fix error handling where apr_uid_* and apr_gid_* could return
- APR_SUCCESS in failure cases. PR 34053 continued. [Joe Orton]
- Changes for APR 1.2.1
- *) Refactor Win32 condition variables code to address bugs 27654, 34336.
- [Henry Jen <henryjen ztune.net>, E Holyat <eholyat yahoo.com>]
- Changes for APR 1.2.0
- *) If getpwuid_r or getgrgid_r set their results to NULL, it is an error.
- PR 34053. [Paul Querna]
- *) Switch to lazy initialization of the pollset that's used within
- apr_file_t on platforms where apr_wait_for_io_or_timeout() doesn't
- use poll(2). (This fixes a performance problem observed in httpd-2.x
- on OS X due to the use of poll now being disabled by default on that
- platform.) [Brian Pane]
- *) Fix Pollset corruption on Solaris 10. [Paul Querna]
- *) Add %pt support to apr_snprintf() for printing an apr_os_thread_t
- in hex format. [Jeff Trawick]
- *) Support APR_SO_SNDBUF and APR_SO_RCVBUF on Windows. PR 32177.
- [Sim <sgobbi datamanagement.it>, Jeff Trawick]
- *) Fix apr_table_overlap()'s handling of tables allocated from
- different pools. [Joe Schaefer <joe+gmane sunstarsys.com>]
- *) Add support for uuid_generate on OS X 10.4. [Paul Querna]
- *) Include the C preprocessor flags in --cflags for pkg-config.
- [Paul Querna]
- *) Fix issue with poll() followed by net I/O yielding EAGAIN on
- Mac OS 10.4 (Darwin 8). [Wilfredo Sanchez]
- Changes for APR 1.1.1
- *) Disable sendfile support for S/390 only in kernel versions < 2.4.0.
- [Joe Orton]
- *) Fix posix rwlock detection on Darwin. [Aaron Bannert]
- *) Build fix for Multicast support on HP-UX 11.00 and Tru64 [Joe Orton]
- *) Fix libapr.rc for Win32 builds [William Rowe]
- *) Rewrite apr_file_writev_full using apr_file_write_full. [Paul Querna]
- *) Use APR_RING_CONCAT for moving dead list in KQueue, sys_epoll, and
- Event Ports. [Paul Querna]
- *) find_apr.m4: Try installed APR before bundled copy if --with-apr not
- passed to configure. [Justin Erenkrantz]
- Changes for APR 1.1.0
- *) Added apr_procattr_user_set and apr_procattr_group_set
- setting the user and group for new processes. [Mladen Turk]
- *) Add APR Multicast functions; including support for
- Source-Specific Multicast from Colm MacCarthaigh. [Paul Querna]
- *) Add a build script to create a solaris package. [Graham Leggett]
-
- *) Add support for APR_TCP_DEFER_ACCEPT. [Paul Querna]
- *) Rename the apr_file_permissions macros (APR_UREAD, APR_UWRITE etc.)
- to have prefix APR_FPROT_ (old names kept for compatibility).
- [Stas Bekman]
- *) Emit the run-time link path option in apr-config after installation
- if the user is linking with libtool. [Justin Erenkrantz]
- *) Add apr_file_writev_full to ensure an entire iovec is writen to a file.
- [Paul Querna]
- *) Remove the runtime test for Sendfile versions on FreeBSD. PR 25718.
- [Mike Silbersack <silby silby.com>, Paul Querna]
- *) Rename the apr_file_open macros (APR_READ, APR_WRITE, etc.) to
- have prefix APR_FOPEN_ (old names kept for compatibility).
- [Stas Bekman]
- *) Added apr_os_uuid_get() support for Linux via libuuid and for modern
- BSDs which have uuid_create as part of their libc. [Paul Querna]
- *) Added Solaris 10 'Event Ports' as a backend for APR Pollset. This
- backend also supports the APR_POLLSET_THREADSAFE flag. [Paul Querna]
- *) Added the APR_POLLSET_THREADSAFE flag. This allows multiple threads
- to call the Pollset Add or Remove functions in a thread safe manner.
- Currently only EPoll and KQueue support this flag. [Paul Querna]
- *) Split poll/unix/poll.c into separate files for each Poll or Pollset
- implementation. [Paul Querna]
- *) Rewrite apr_file_printf to handle arbitrary length strings.
- PR 28029. [Chris Knight <Christopher.D.Knight nasa.gov>,
- Garrett Rooney <rooneg electricjellyfish.net>]
- Changes for APR 1.0.2
- *) [NetWare] Fixed some type mismatches in threadproc/netware/proc.c and
- locks/netware/thread_mutex.c that prevented APR from building with the
- latest release of the LibC SDK. [Brad Nicholes]
-
- Changes for APR 1.0.1
- *) apr_password_get(): Fix the check for buffer overflow. [Jeff Trawick]
- *) Fix HUP return codes in pollset when using KQueue.
- [Paul Querna]
- *) Prevent unbounded memory use during repeated operations on a hash table.
- [Julian Foad <julianfoad btopenworld.com>
- *) Moved repository to SVN
- [Hackathon]
- *) jlibtool: Ignore '-export-symbols-regexp' option.
- [Justin Erenkrantz]
- *) fix apr_file_dup and apr_file_dup2 win32 implementations
- to create a mutex [Steve Hay <steve.hay uk.radan.com>]
- *) Makes the threads to behave like on posix. If the thread is created
- without APR_DETACH expect that the thread_join will be called, so don't
- close the handle in advance, if the thread has already finished.
- [Mladen Turk]
- *) The apr/test/Makefile.win is missing a target to build a
- readchild.exe that test is depending on but is never built.
- [Mladen Turk]
- *) Improve apr_file_gets() performance on buffered files. [Justin Erenkrantz]
- *) Win32: Fix bug in apr_socket_sendfile that interferred with
- Win32 LSPs. PR 23982 [Jan Bilek, Bill Stoddard]
- *) Win32: Fix bug tracking the file pointer on a file opened for
- overlapped/APR_XTHREAD io. [Bill Stoddard]
- Changes with APR 1.0
- *) Only install apr-$MAJOR-config and add appropriate detection code to
- find_apr.m4 (APR_FIND_APR). [Max Bowsher <maxb ukf.net>]
- *) Remove APR_STATUS_IS_SUCCESS() macro. [Justin Erenkrantz]
- *) apr_proc_create() on Unix: Remove unnecessary check for read
- access to the working directory of the child process.
- PR 30137. [Jeremy Chadwick <apache jdc.parodius.com>]
- *) Add jlibtool - enabled with '--enable-experimental-libtool' option.
- [Justin Erenkrantz]
- *) Add support for KQueue and sys_epoll to apr_pollset. [Paul Querna]
- *) Support threading on FreeBSD 5.x where kern.osreldate >= 502102.
- [Craig Rodrigues <rodrigc crodrigues.org>]
- *) Add an RPM spec file derived from Fedora Core.
- [Graham Leggett, Joe Orton]
- *) Fix apr_threadattr_detach_set() on Mac OS X. PR 28472.
- [INOUE Seiichiro <inoue ariel-networks.com>]
- *) Change default inter-process locking mechanisms: POSIX semaphores
- and pthread cross-process mutexes are not used by default; on
- Solaris, fcntl locks are used by default. [Joe Orton]
- *) Add apr_threadattr_guardsize_set() for overriding the default stack
- guard area size for created created by apr_thread_create().
- [Joe Orton]
- *) Add apr_shm_remove() function for removing a named shared
- memory segment. [Amit Athavale <amit_athavale persistent.co.in>]
- *) Add apr_strtoff() function for converting numeric strings into
- apr_off_t values. [André Malo <nd perlig.de>, Joe Orton]
- *) Fix stack overflow with IPv6 apr_socket_accept() on Win32.
- PR 28471. [inoue <inoue ariel-networks.com>]
- *) Add new functions apr_signal_block, apr_signal_unblock to block/unblock
- the delivery of a particular signal. [Madhusudan Mathihalli]
- *) Add support for developers to use their own hashing function with
- apr_hash_make_custom. [Ami Ganguli <hse_ami yahoo.co.uk>]
- *) Support "large files" by default on 32-bit Unix platforms which
- implement the LFS standard. [Joe Orton]
- *) Add apr_threadattr_stacksize_set() for overriding the default
- stack size for threads created by apr_thread_create().
- [Jeff Trawick]
- *) The whole codebase was relicensed and is now available under
- the Apache License, Version 2.0 (http://www.apache.org/licenses).
- [Apache Software Foundation]
- *) Switch to a single, top-level make. [Greg Stein]
- *) new error status APR_STATUS_IS_ENOTENOUGHENTROPY, Doxygen fixes
- [Sander Temme <sander at temme dot net]
- *) Add apr_socket_type_get() for retrieving the type (e.g., stream)
- of the socket. [Philippe M. Chiasson]
- *) Removed deprecated interface apr_proc_other_child_check()
- that behaved differently between win32 and unix.
- The unix behavor is now accomplished with
- apr_proc_other_child_refresh_all(APR_OC_REASON_RESTART)
- The win32 behavor is now accomplished with
- apr_proc_other_child_refresh_all(APR_OC_REASON_RUNNING)
- *) Removed apr_socket_opt_{get|set}(..., APR_SO_TIMEOUT) which
- was deprecated in favor of apr_socket_timeout_{get|set}().
- *) Change i386 FreeBSD to use the asm routines in apr_atomic.h
- to overcome issues with the FreeBSD atomic functions return
- type on i386. [David Reid]
- *) Added new versions of the apr_atomic functions for
- use with 32-bit ints [Brian Pane]
- *) The following deprecated interfaces have been removed:
- apr_accept -> apr_socket_accept
- apr_allocator_get_mutex -> apr_allocator_mutex_get
- apr_allocator_get_owner -> apr_allocator_owner_get
- apr_allocator_set_max_free -> apr_allocator_max_free_set
- apr_allocator_set_mutex -> apr_allocator_mutex_set
- apr_allocator_set_owner -> apr_allocator_owner_set
- apr_atomic_add -> apr_atomic_add32
- apr_atomic_cas -> apr_atomic_cas32
- apr_atomic_dec -> apr_atomic_dec32
- apr_atomic_inc -> apr_atomic_inc32
- apr_atomic_read -> apr_atomic_read32
- apr_atomic_set -> apr_atomic_set32
- apr_bind -> apr_socket_bind
- apr_compare_groups -> apr_gid_compare
- apr_compare_users -> apr_uid_compare
- apr_connect -> apr_socket_connect
- apr_current_userid -> apr_uid_current
- apr_explode_localtime -> apr_time_exp_lt
- apr_explode_time -> apr_time_exp_tz
- apr_filename_of_pathname -> apr_filepath_name_get
- apr_file_set_inherit -> apr_file_inherit_set
- apr_file_unset_inherit -> apr_file_inherit_unset
- apr_getsocketopt -> apr_socket_opt_get
- apr_get_groupid -> apr_gid_get
- apr_get_groupname -> apr_gid_name_get
- apr_get_home_directory -> apr_uid_homepath_get
- apr_get_userid -> apr_uid_get
- apr_get_username -> apr_uid_name_get
- apr_group_name_get -> apr_gid_name_get
- apr_implode_gmt -> apr_time_exp_gmt_get
- apr_is_fnmatch -> apr_fnmatch_test
- apr_listen -> apr_socket_listen
- apr_lstat -> apr_stat
- apr_pool_get_abort -> apr_pool_abort_get
- apr_pool_get_parent -> apr_pool_parent_get
- apr_pool_set_abort -> apr_pool_abort_set
- apr_pool_sub_make -> apr_pool_create_ex
- apr_proc_other_child_read -> apr_proc_other_child_alert
- apr_recv -> apr_socket_recv
- apr_recvfrom -> apr_socket_recvfrom
- apr_send -> apr_socket_send
- apr_sendfile -> apr_socket_sendfile
- apr_sendto -> apr_socket_sendto
- apr_sendv -> apr_socket_sendv
- apr_setsocketopt -> apr_socket_opt_set
- apr_shutdown -> apr_socket_shutdown
- apr_signal_get_description -> apr_signal_description_get
- apr_sockaddr_ip_set -> apr_sockaddr_info_get
- apr_sockaddr_port_get -> (access directly)
- apr_sockaddr_port_set -> apr_sockaddr_info_get
- apr_socket_create_ex -> apr_socket_create
- apr_socket_set_inherit -> apr_socket_inherit_set
- apr_socket_unset_inherit -> apr_socket_inherit_unset
- FNM_NOMATCH -> APR_FNM_NOMATCH
- FNM_NOESCAPE -> APR_FNM_NOESCAPE
- FNM_PATHNAME -> APR_FNM_PATHNAME
- FNM_PERIOD -> APR_FNM_PERIOD
- FNM_CASE_BLIND -> APR_FNM_CASE_BLIND
- MAX_SECONDS_TO_LINGER -> APR_MAX_SECONDS_TO_LINGER
- The following interfaces have function argument changes:
- apr_mmap_dup
- apr_socket_create
- The following header files have been removed:
- apr_compat.h
- Changes with APR 0.9.5
- *) Fix apr_snprintf() to respect precision for small floating point
- numbers. PR 29621. [Artur Zaprzala <zybi talex.pl>]
- *) Add command type APR_SHELLCMD_ENV for creating a process
- which is started by the shell and which inherits the parent's
- environment variables. [Jeff Trawick]
- *) Don't try to enable run-time linking on AIX < 4.2, as this
- results in invalid linker options being used. PR 29170.
- [Jeff Trawick]
- *) Don't assume getnameinfo() can handle IPv4-mapped IPv6 addresses
- on any platforms.
- [Jeff Trawick, Joe Orton, Colm MacCárthaigh <colm stdlib.net>]
- *) Support setuid, setgid and sticky file permissions bits on Unix.
- [André Malo]
- *) Fix sign error in apr_file_seek(APR_END).
- [Greg Hudson <ghudson MIT.EDU>]
- *) Provide workaround for socklen_t declaration problem with 64-bit
- build on HP-UX. Stop setting a PA-RISC-specific compile option
- on ia64. Look for -mt thread option, which is used with HP-UX
- vendor compiler on ia64. [Jeff Trawick, based on idea from
- Madhusudan Mathihalli]
- *) Return an error instead of silently failing when apr_poll() is
- used with file descriptors >= FD_SETSIZE. (Unix systems with
- no native poll()) [Jeff Trawick, Brad Nicholes]
- *) Fix handling of negative numbers in apr_strtoi64() on platforms
- without strtoll. [Joe Orton]
- *) Fix printing apr_int64_t values smaller than LONG_MIN on 32-bit
- platforms in apr_vformatter. [Joe Orton]
- *) Fix apr_socket_opt_set with APR_IPV6_V6ONLY flag. Fixes httpd
- Listen IPv6 socket behavior on FreeBSD 5.x, OpenBSD, NetBSD.
- [Justin Erenkrantz]
- *) Fix apr_time_exp_get() for dates in 2038.
- [Philip Martin <philip codematters.co.uk>]
- *) Add APR_LARGEFILE flag to allow opening files with the
- O_LARGEFILE flag; not recommended for general use, see
- include/apr_file_io.h. [Joe Orton]
- *) Various build fixes: thread_rwlock.c on some Solaris platforms
- (PR 22990); filestat.c on ReliantUnix (PR 22990); config.status
- on IRIX (PR 19251). [Various]
- *) Use NI_NAMEREQD instead of NI_NUMERICHOST in
- APR_CHECK_GETNAMEINFO_IPV4_MAPPED. PR 24469. [Justin Erenkrantz]
- *) Ensure that apr_sockaddr_info_get() does not return anything
- other than AF_INET and AF_INET6 addresses. [Joe Orton]
- *) Clarify that apr_dir_read() does not guarantee order of returned
- entries as previously claimed. [Joe Orton]
- *) The whole codebase was relicensed and is now available under
- the Apache License, Version 2.0 (http://www.apache.org/licenses).
- [Apache Software Foundation]
- *) Define apr_off_t as long rather than as off_t on platforms with a
- 32-bit off_t to prevent incompatibility with packages such as
- Perl which redefine the size of off_t via _FILE_OFFSET_BITS on
- some platforms. [Ben Reser <ben reser.org>]
- *) apr_socket_connect(): allow app to make subsequent call on
- non-blocking socket. [Jeff Trawick]
-
- *) Add apr_os_pipe_put_ex(), which allows the caller to tell APR
- to establish a cleanup on the pipe. [Jeff Trawick, Brad Nicholes]
- *) Fix make_exports.awk to work with apr-iconv. [Justin Erenkrantz]
- Changes with APR 0.9.4
- *) win32: fix apr_file_dup() and apr_file_dup2() to dup the
- ungetchar member [Stas Bekman]
- *) Preserve leading '../' segments as when merging to an empty and
- unrooted path - fixes a bug observed in SVN with Win32/Netware/OS2.
- [Mike Pilato <cmpilato collab.net>, William Rowe]
- *) Work around a bug in Darwin when calling getnameinfo() on IPv4-mapped
- IPv6-addresses. [Colm MacCárthaigh <colm stdlib.net>, Jeff Trawick,
- Justin Erenkrantz]
- *) Add apr_temp_dir_get() for getting the most suitable temp directory
- [Mike Pilato <cmpilato collab.net>, Thom May]
- *) Modify apr_sockaddr_info_get to call the resolver when we
- do not have a hostname. Also, fix bugs in the getaddrinfo()
- implementation.
- [Colm MacCárthaigh <colm stdlib.net>, Justin Erenkrantz]
- *) Change the behavior of unix process 'trylock's to return
- APR_ENOTIMPL instead of segfaulting, consistent with the
- other lock implementations. [William Rowe]
- *) Fix a subtle race where the ownership of a unix nested
- thread lock could be corrupted when the prior owner released
- the lock with another thread waiting on the same lock.
- [William Rowe]
- *) apr_socket_data_set(): allow the same key to be used for
- multiple sockets in the same pool. [Jeff Trawick]
- *) Add new table function apr_table_compress() and replace
- red-black trees with mergesort in apr_table_overlap()
- [Joe Schaefer <joe+gmane sunstarsys.com>, Brian Pane]
- *) Win32: Adopt Brian Havard's OS/2 rwlock implementation for
- Windows [Marc Adkins, Bill Stoddard]
- *) Add apr_proc_mutex_lockfile() for retrieving the name of the
- file associated with a mutex. [Jeff Trawick]
- *) Don't require the lock file name to be passed into
- apr_proc_mutex_child_init() or apr_global_mutex_child_init().
- This allows child init to work when the lock file was a temp
- file created by APR. (The problem only occurred with flock-
- based mutexes.) [Jeff Trawick]
- *) When using a temporary file for flock- and fcntl-based mutexes,
- don't let the file be deleted on close. For flock-based mutexes,
- this corrects a fatal problem, since the file would disappear
- when a program was spawned and cleanup-for-exec was performed,
- and a subsequent attempt to perform child process mutex
- initialization would fail. For fcntl-based mutexes, this was a
- very minor issue that resulted in a failing unlink() when the
- file was closed, since fcntl lock initialization always removes
- the file immediately. [Jeff Trawick]
- *) When writing to pipes with a timeout set, handle the situation
- where the kernel says the pipe is writable but an attempt to
- write <= PIPE_BUF bytes gets EAGAIN. APR will now write whatever
- data will fit. APR applications that relied on the atomic nature
- of relatively small pipe write requests may be affected.
- PR 20295 [Mark Street <mark faime.demon.co.uk>, Jeff Trawick]
- *) Define _THREAD_SAFE for all compilations on AIX. Previously
- those of us who used the vendor compiler had it defined
- implicitly and others did not. The difference became obvious
- with the recent thread safety fixes to apr_password_validate().
- PR 20420 [Jeff Trawick]
- *) For apr_proc_detach(APR_PROC_DETACH_FOREGROUND), don't treat
- a setsid() failure as fatal, as the usual cause is that the
- caller is already a process group leader. PR 18519
- [Jeff Trawick]
- *) Fix some problems with non-blocking socket handling on unix
- that resulted in infinite timeouts being used for non-blocking
- sockets with apr_socket_connect() and some read/write calls.
- [Jeff Trawick]
- *) Fix a bug in socket timeout handling on unix that left the
- socket non-blocking after disabling the timeout.
- [Jacob Craig Lewallen <jlewalle cs.ucr.edu>]
- *) Added flag APR_FILE_ATTR_HIDDEN for manipulating the "hidden"
- file attribute on Windows and OS/2. [Branko Cibej]
- *) SECURITY [CAN-2003-0245]: Fixed a bug that could be triggered
- remotely through mod_dav and possibly other mechanisms, causing
- an Apache child process to crash. The crash was first reported
- by David Endler <DEndler iDefense.com> and was researched and
- fixed by Joe Orton <jorton redhat.com>. Details will be released
- on 30 May 2003.
- *) apr_proc_wait(): Handle interrupted waitpid(2) calls by calling
- it repeatedly until it succeeds or fails with errno other than
- EINTR. This hides this UNIX-specific behavior from APR clients.
- *) Removed the solaris-specific atomic code, due to licence
- concerns (it was MPL 1.0, and the author could not be contacted)
- [Ian Holsman]
- *) apr_file_gets(): Return APR_SUCCESS if any characters are
- returned. Any I/O errors or EOF will be reported on the
- next call. Callers that are coded to expect returned
- data + APR_EOF when there is no final newline are affected
- by this change. [Jeff Trawick]
- *) apr_proc_create() on Unix: Make the APR_SHELLCMD mode work
- when there is more than one program argument passed in.
- [Jeff Trawick]
- *) Add --cc and --cpp flags to apr-config. [Jeff Trawick]
- *) Don't segfault trying to close a file in error paths of flock
- and fcntl mutex creation. PR 19036 [Jeff Trawick]
- *) Add %pT support to apr_snprintf() for printing an apr_os_thread_t.
- [Jeff Trawick]
- *) Add APR_TCP_NODELAY_INHERITED & APR_O_NONBLOCK_INHERITED to apr.hw
- [Allan Edwards]
- *) Add APR_UINT64_T_HEX_FMT. [Jeff Trawick]
- *) Add parameter to APR_SUBDIR_CONFIG to drop options passed to configure
- before the subdir's configure is invoked.
- [Jeff Trawick, Justin Erenkrantz]
- *) Implement APR_SO_RCVBUF socket option on Unix.
- [Adam Sussman <myddryn vishnu.vidya.com>]
- *) Don't add the math library (-lm) if the modf() function
- is already available via libc. [Roy Fielding]
- *) Solaris cc: Don't use the -mt option for threaded builds. That
- is for non-Posix threading, and the use of it prevented us from
- linking with -lpthread, which in turn caused weird problems for
- APR applications. [Kristofer Spinka <kspinka style.net>]
- *) OS/2: apr_stat() fixes - When a character device is stat'ed,
- fill in finfo.name if it was asked for. Return APR_INCOMPLETE
- when appropriate. Addresses httpd incident [CAN-2003-0134].
- [Brian Havard]
- Changes with APR 0.9.3
- *) Don't enable posixsem, at build time, on systems where sem_t *
- won't "fit" into an int (sizeof-wise). Also, better error handling
- when we fail to create a posixsem. PR 17186 [Scott Herod
- <sherod pillardata.com>, Jim Jagielski]
- *) Default hpux 10.x to disable threading, since if it exists at all
- the pthread implementation should not be trusted, while hpux 10
- had its own threads implementation that is no longer supported.
- PR 9457 [William Rowe]
- *) Fix error in apr-config when symlinks are involved.
- [Garrett Rooney <rooneg electricjellyfish.net>]
- Changes with APR 0.9.2
- *) Numerous bug fixes for file and socket inheritence by child
- processes on Unix, correcting bugs that affected the correct
- behavior of apr_[file|socket]_inherit_[un]set() API.
- [Bjoern A. Zeeb <bz zabbadoz.net>, William Rowe, Joe Orton]
- *) Define APR_UINT64_T_FMT and APR_UINT64_T_FMT_LEN.
- Define APR_INT64_T_FMT_LEN on Windows and Netware. [Branko Cibej]
- *) Correct apr_file_gets() on OS2 and Win32 so that '\r's are no longer
- eaten, and apr_file_gets() -> apr_file_puts() moves the contents
- uncorrupted. [William Rowe]
- *) Alter Win32's handling of the apr_proc_t hproc member, so that we
- close that system handle wherever an apr function would invoke the
- final waitpid() against a zombie process on Unix. [William Rowe]
- *) APR_MAX_SECONDS_TO_LINGER and APR_FNM_* #defines replace their
- old undecorated names (missing APR_ prefix). The old names will
- disappear with APR 1.0.0.
- [Craig Rodrigues <rodrigc@attbi.com>, William Rowe]
- *) When generating a semaphore name for posixsem locking, try to
- be a little more robust (and unique). [Jim Jagielski]
- *) Add functions apr_env_get, apr_env_set and apr_env_delete for
- manipulating the environment. [Branko Cibej]
- *) Fix APR_LAYOUT to work with layout files with no preceding blank lines
- and emit errors when layout is not found. PR 15679.
- [Justin Erenkrantz]
- *) Add functions apr_filepath_list_split and apr_filepath_list_merge
- for managing search paths. [Branko Cibej]
- *) Introduce Release mode debugging symbols for Win32 builds of apr.
- All library builds gain /Zi for debug symbols (which are discarded
- at link time if some flavor of the /debug flag isn't passed to link)
- and .dll builds gain .pdb symbols. [Allen Edwards, William Rowe]
- *) Add two new proc attributes to improve diagnostics for
- apr_proc_create() failures on platforms where fork()+exec() is used.
- See the doc for apr_procattr_child_errfn_set() and
- apr_procattr_error_check_set(). [Jeff Trawick]
- *) Rename rules.mk to apr_rules.mk and make apr_rules.mk be installed.
- [Thom May]
-
- *) Fix a bug in apr_proc_create() that could cause a new child process
- to run the parent's code if setrlimit() fails. [Jeff Trawick]
- *) Disable apr_socket_sendfile() on 64-bit AIX to avoid an apparent
- system problem. PR 11408. [Jeff Trawick]
- *) Add --includedir flag to apr-config. [Justin Erenkrantz]
- *) Only include sys/syslimits.h if we don't have limits.h
- [Craig Rodrigues <rodrigc@attbi.com>, Garrett Rooney
- <rooneg@electricjellyfish.net>, Thom May]
- *) Allow apr-config to work in symlinked install directories when
- 'realpath' is available. [Justin Erenkrantz]
- *) Namespace protect the header files in include/arch
- [Thom May]
- *) Add function apr_filepath_encoding and associated constants.
- [Branko Cibej]
- *) Allow apr_hash to have greater than int number of elements.
- [Justin Erenkrantz]
- *) Allow generation of dependencies by non-GCC compilers.
- [Justin Erenkrantz]
- *) Prevent obscenely large values of precision in apr_vformatter
- from clobbering a buffer. [Sander Striker, Jim Jagielski]
- *) limit the renames performed in apr_rename.pl to the most recent renames.
- [Thom May]
- *) Changed apr_mmap_dup() and friends so that there's no longer any
- is_owner concept on the mmaped region, but rather something more
- along the lines of a reference count. This allows the old apr_mmap_t
- to still be used safely when the new apr_mmap_t is in a disjoint pool.
- [Cliff Woolley, Sander Striker]
- *) Fix a bug in apr_hash_merge() which caused the last entry in the
- overlay hash to be lost. PR 10522 [Jeff Trawick]
- *) Add DougM's apr_rename.pl script into helpers, and update for the new
- batch of updates [Thom May]
- *) Renames done (deprecated functions wrapped):
- apr_filename_of_pathname -> apr_filepath_name_get
- apr_get_groupid -> apr_gid_get
- apr_get_groupname -> apr_gid_name_get
- apr_compare_groups -> apr_gid_compare
- apr_parse_addr_port -> apr_port_addr_parse
- apr_shutdown -> apr_socket_shutdown
- apr_bind -> apr_socket_bind
- apr_listen -> apr_socket_listen
- apr_accept -> apr_socket_accept
- apr_connect -> apr_socket_connect
- apr_send -> apr_socket_send
- apr_sendv -> apr_socket_sendv
- apr_sendto -> apr_socket_sendto
- apr_implode_gmt -> apr_time_exp_gmt_get
- apr_get_home_directory -> apr_uid_homepath_get
- apr_get_userid -> apr_uid_get
- apr_current_userid -> apr_uid_current
- apr_compare_users -> apr_uid_compare
- apr_get_username -> apr_uid_name_get
- apr_recvfrom -> apr_socket_recvfrom
- apr_sendfile -> apr_socket_sendfile
- apr_recv -> apr_socket_recv
- [Thom May]
- *) Add APR_IPV6_V6ONLY socket option. [Jeff Trawick]
- *) Update timeout algorithm in free_proc_chain. If a subprocess
- did not exit immediately, the thread would sleep for 3 seconds
- before checking the subprocess exit status again. In a very
- common case when the subprocess was an HTTP server CGI script,
- the CGI script actually exited a fraction of a second into the 3
- second sleep, which effectively limited the server to serving one
- CGI request every 3 seconds across a persistent connection.
- [Bill Stoddard, Kai.Risku@arrak.fi]
- *) Update doxygen tags. [Justin Erenkrantz]
- *) NetWare: implemented a file IO path context scheme to directly
- reference directory paths and files in the file system rather
- than having to traverse the file system on every stat() or
- open() call. (Performance enhancement) [Brad Nicholes]
-
- *) ReliantUnix: recognize that dlsym() is in libdl and dlopen() is in
- libc. The check is generic so maybe this fixes some other system.
- PR 14189 [Jeff Trawick]
- *) Win32: Fix APR_APPEND file i/o. [Bill Stoddard]
- *) Fix a problem retrieving the remote socket address for sockets
- created via apr_os_sock_put() or apr_os_sock_make(). [Jeff Trawick]
- *) Add recognition of and socket API support for the SCTP protocol.
- [Randall Stewart <randall@stewart.chicago.il.us>]
- *) Win32: apr_shutdown was not honoring apr_shutdown_how_e and
- always shutting down the socket for read. This could result
- in Apache HTTPD 2.0 clients getting early connection closures
- because lingering_close() was broken. [Bill Stoddard, Allan Edwards]
- *) Add apr_atomic_casptr() to support atomic compare-and-swap
- of pointers [Brian Pane]
- *) Add apr_socket_create_ex() to allow protocol to be specified for the
- socket. With APR 1.0, this function will be removed and apr_socket_create()
- will have the additional parameter.
- [Randall Stewart <randall@stewart.chicago.il.us>]
- *) Fix the detection of INT64_C() when defined in <stdint.h>.
- [Joe Orton <joe@manyfish.co.uk>]
- *) Don't use whitespace before preprocessor directives in the configure
- logic. Such whitespace breaks with some older preprocessors; a
- particularly nasty break occurs on Tru64 4.0f where APR_CHECK_DEFINE
- will always succeed. [Joe Orton <joe@manyfish.co.uk>]
- *) Add APR_IPV4_ADDR_OK flag to apr_sockaddr_info_get() to allow
- apps to avoid lookup of IPv6 address if IPv4 address is sufficient.
- (New APR_IPV6_ADDR_OK flag is similar.) [Jeff Trawick]
- *) Disable IPv6 support on Darwin. The current IPv6 support has a
- problem in getnameinfo() which breaks certain applications.
- [Sander Temme <sctemme@covalent.net>, Jeff Trawick]
- *) Support for SCO OpenServer Release 5 [Kean Johnston <jkj@caldera.com>]
- *) Faster (inline and mutex-free) implementations of all apr_atomic
- operations for Linux/x86 (requires a 486 or later; to enable,
- configure APR with --enable-nonportable-atomics=yes ) [Brian Pane]
- *) Add --bindir option to apr-config. [Justin Erenkrantz]
- *) Begin to rehash the test suite. There is now a new test program called
- testall. This program currently runs testtime and teststr with the
- CuTest framework. The stand-alone programs for testtime and teststr
- can be built, but only if a special flag is specified when building.
- [Ryan Bloom]
- *) Fix a broken check for a failure to read from the random device file.
- PR 12615 [tenthumbs@cybernex.net]
- *) Print informative link errors on Darwin. [Justin Erenkrantz]
- Changes with APR 0.9.1
- *) Fixed usage of alloca in apr_poll() on Tru64
- [Dave Hill <ddhill@zk3.dec.com>]
- *) Running "make check" in the toplevel directory or the test/ directory
- will build and run all test programs. [Aaron Bannert]
- *) Add apr_array_pop(). [Justin Erenkrantz]
- *) Fixed the native SPARC v8plus version of apr_atomic_dec
- to match the semantics of the default C version [Brian Pane]
- Changes with APR 0.9.0
- *) If the length argument to apr_snprintf is 0, then we should return the
- length that the string would be if we actually were going to fill it out.
- However, if the length argument is 0, we can also accept a NULL string.
- Also, added a test case for this. [Ryan Bloom]
- *) Printing a string with apr_snprintf can seg fault, if a precision is
- specified for the string, and the string being printed doesn't have a
- trailing '\0'. Fix that seg fault by not calling strlen if a precision
- is specified when printing a string. Also add a test to the test suite
- for this case.
- [R Samuel Klatchko <rsk@brightmail.com>]
- *) handle leak related to threads on Windows2000/XP
- [INOUE Seiichiro <inoue@ariel-networks.com>]
- *) Includes moved to INCLUDEDIR/apr-{major} (e.g. /usr/include/apr-0)
- [Greg Stein]
- *) libtool versioning is used to give the library sonames a real
- value. The libraries will be libapr-{major}.so.0.{minor}.{patch}
- [Greg Stein]
- *) Fix apr_tokenize_to_argv() to remove the escape character
- (backslash) from the argument tokens. PR 11793 [Paul J. Reder]
- *) Add APR_PARSE_ARGUMENTS and APR_LAYOUT macros for better layout
- support. [Thom May]
- *) Add parallel-apr layout which utilizes the major version number in
- directories and library names. [Justin Erenkrantz]
- *) Add a version number to the library name (e.g. libapr-1.so) so
- that apps can do things like: -lapr-1 or -lapr-2, depending on
- which version they want to use and link against. [Greg Stein]
- *) Add --version to apr-config so that apps can retrieve the version
- information of the (installed) APR. [Greg Stein]
- *) Remove the APRVARS system; apps should use apr-config. [Greg Stein]
- *) EBCDIC: fix compile failure in strings/apr_strings.c in
- httpd-2.0.40 with the following error message:
- CANNOT COMPILE apr_strtoi64(), only ASCII and EBCDIC supported
-
- *) In apr_signal_thread() remove synchronous signals from the mask
- passed to sigwait(). It is never valid for them to be there.
- Some platforms silently ignore them, some return EINVAL, some
- don't process it as desired. [Jeff Trawick]
- *) Change config.nice generation to always expand variables.
- [Justin Erenkrantz]
- *) Renamed apr_strtoll()/apr_atoll() to follow int64 convention,
- so these new helpers are apr_strtoi64/apr_atoi64(), since
- 'll' (long long) is a nonportable and aspecific construct.
- Used ac/m4 tests to choose the appropriate fn behind strtoi64.
- [William Rowe]
- *) don't perform a strlen on that name value without checking for NULL
- first (in getopt)
- [David Waite <mass@akuma.org>, Ian Holsman]
- *) Added apr_strtoll() and apr_atoll() to strings lib.
- [Shantonu Sen <ssen@apple.com>, Wilfredo Sanchez]
- *) Added a lightweight internal index to apr_table_t to speed up
- table lookup operations [Brian Pane]
- *) initalize handle members to invalid before calling createprocess
- on win32 [Rob Saccoccio <robs@fastcgi.com>]
- *) Removed apr/i18n to apr-util/xlate for inclusion of apr-iconv
- as required by missing libiconv. [William Rowe]
- *) Removed apr/md5 and apr/uuid into apr-util/crypto. [William Rowe]
- *) Add APR_BUFFERED support to apr_os_file_put(). [Justin Erenkrantz]
- *) Fix misinterpretation of timeout for select() on Win32/Netware.
- Identified by [TANAKA Koichi <tanaka@ariel-networks.com>]
- *) Re-write apr_poll() on Unix. This improves the performance by
- giving the user back control over the memory in the pollset.
- [Ryan Bloom]
- *) Added APR_LIMIT_NOFILE option to apr_procattr_limit_set() to
- control the file descriptor limit on platforms that support
- RLIMIT_NOFILE. [Brian Pane]
- *) FreeBSD: change apr_sendfile to accomodate a 4.6 kernel patch.
- [Greg Ames]
- *) Faster code for the apr_table get/set functions [Brian Pane]
- *) Fix the userid functions on Irix to handle the way that Irix
- reports a failure from getpwnam_r(). PR 10095.
- [Robert I. Cowles <ric@cs.uregina.ca>, Jeff Trawick]
- *) apr_table_do() and apr_table_vdo() now return an int rather than
- void to indicate whether or not any of its iterations returned 0.
- [Cliff Woolley]
- *) Fix the definition of union semun so that it is valid on systems
- where sizeof(long) != sizeof(int). This resolves a hang on
- HP-UX/Itanium.
- [Madhusudan Mathihalli <madhusudan_mathihalli@hp.com>]
- *) Correct shared library support on Darwin to not fatally error out
- when a shared library does not exist. [Justin Erenkrantz]
- *) Added optimized atomic CAS support for Linux/x86 (available only
- when APR is configured with --enable-nonportable-atomics=yes)
- [Brian Pane]
- *) Fix a compile error in the EGD support in rand.c on older Solaris
- versions. PR 9976 [Jim Morris <jmorris@sunflower.com>]
- *) Fixed apr_file_seek() to unset the eof_hit flag. [Stas Bekman]
- *) Removed --disable-atomics flag and added --enable-nonportable-atomics,
- thereby defaulting to portable binaries on those systems that could
- be optimized at the expense of portability. PR: 9507 [Aaron Bannert]
- *) Added 2 additional lock functions: apr_proc_mutex_name and
- apr_proc_mutex_defname which returns the type name of the mutex
- (eg: "sysvsem") as well as the default mutex type (APR_LOCK_DEFAULT).
- Mostly useful under Unix were the locktypes are selectable.
- [Jim Jagielski]
- *) Fixed apr_generate_random_bytes() for Win32 on Win NT or 9x by
- dropping the 0x40 bit (CRYPT_SILENT) for earlier OS'es.
- PR 9286 [William Rowe]
- *) Added --with-devrandom=[DEV] configure flag which allows a particular
- "/dev/random"-compatible device to be specified, overriding the
- default search path (/dev/random then /dev/arandom then /dev/urandom).
- Also, if --with-egd=<path> is specified, it now implies
- --without-devrandom. [Cliff Woolley]
- *) Darwin/Mac OS X: Don't leave zombie processes when the app calls
- apr_signal(SIGCHLD, SIG_IGN). This fixes a problem with Apache's
- mod_cgid. PR 9168. [Jeff Trawick]
- *) Win32: Fix bug where apr_sendfile() was incorrectly returning
- APR_SUCCESS on a TransmitFile call that was interrupted by
- the client closing its end of the connection. Always call
- GetOverlappedResults() to get results of async TransmitFile()
- completion notification. [Bill Stoddard]
- *) Renamed APR_XtOffset -> APR_OFFSET and APR_XtOffsetOf -> APR_OFFSETOF.
- [Cliff Woolley]
- *) Cygwin: the unix version of apr_file_open() must respect the
- APR_BINARY flag if the underlying platform requires it (in
- which case we assume O_BINARY is defined). PR 9185.
- [Cliff Woolley]
- *) Linux, AIX: Use crypt_r() instead of crypt() because the native
- crypt() is not thread-safe. The misuse of crypt() led to
- intermittent failures with Apache basic authentication when crypt
- passwords were being used. [Jeff Trawick]
- *) AIX: Global mutexes don't need an intraprocess mutex when SysV
- sems are used for the crossprocess mutex.
- Darwin: The same optimization was applied for Posix sems.
- [Jeff Trawick]
- *) Fix a problem with global mutexes on OS/390 when something other
- than the default mechanism (SysV sem) was used. The mutexes didn't
- necessarily block out other threads in the same process.
- [Jeff Trawick]
- *) Fixed apr_strfsize formatting of values over 1 gig
- [Matsuzaki Yoshinobu <maz@iij.ad.jp>]
- *) Renamed --disable-atomics as --disable-optimized-atomics,
- since it doesn't really disable the atomics. [Aaron Bannert]
- *) Converted apr_pcalloc to a macro [Brian Pane]
- *) Fixed APR_STATUS_IS_ETIMEDOUT macro.
- [Dagfinn Aarvaag <dagfinn.aarvaag@beepscience.com>]
- *) Add --disable-atomics switch to override our handcoded assembly
- optimizations. Note that this has no effect if your operating
- system has a userspace atomic interface. [Justin Erenkrantz]
- *) Remove Linux atomic support since it does not have a usable
- userspace atomic interface. [Justin Erenkrantz]
- *) Don't require that the DNS can map 127.0.0.1 when checking for
- the presence/usability of getnameinfo(). PR 7642. [Jeff Trawick]
- *) Remove APR_WANT_SIGNAL from apr_want.h because code must include
- apr_signal.h in order to get consistent definitions. [Roy Fielding]
- *) Don't try to use /dev/zero and mmap on platforms that don't
- support that (such as HP-UX). PR 8537. [Justin Erenkrantz]
- *) Reduce the number of apr_sendfile calls on AIX and OS/390 by
- remembering when the kernel tells us the next one will block.
- [Jeff Trawick]
- *) Reduce the number of apr_sendfile calls on FreeBSD by remembering
- when the kernel tells us the next one will block. [Greg Ames]
- *) To support modules like PHP, which implement their own
- loaded extensions, Darwin needs to place their public
- symbols in the global table. [Marko Karppinen <markonen@php.net>,
- Jim Jagielski]
- *) Rename apr_get_groupname to apr_group_name_get.
- [Thom May <thom@planetarytramp.net>]
-
- *) Allow VPATH builds to properly build dependencies and switch to
- a .deps dependency model to mimic httpd-2.0. [Justin Erenkrantz]
- *) Tru64: Stop leaving zombies in APR apps like mod_cgid which
- tell APR to ignore SIGCHLD.
- [Dave Hill <David.D.Hill@Compaq.com>]
- *) Ensure that the ATOMIC_HASH can not be negative.
- [Joe Orton <jorton@redhat.com>]
- *) Fix a problem with eof reporting with Unix file I/O on
- unbuffered files. [Stas Bekman <stas@stason.org>]
- *) Rename apr_explode_time to apr_time_exp_tz.
- [Thom May <thom@planetarytramp.net>]
- *) Rename apr_explode_localtime to apr_time_exp_lt.
- [Thom May <thom@planetarytramp.net>]
- *) Set precompiler for Solaris atomics when using GNU binutils.
- PR 7876. [solomon@conceptshopping.com (Marvin Solomon)]
- *) AIX: Fix breakage with 64-bit builds on versions of AIX prior
- to 5L. PR 7957 [Jeff Trawick]
- *) On socket write functions (apr_sendfile, apr_send, apr_sendv),
- added a select to wait for writability on the socket if the
- previous write was incomplete. [Jeff Trawick, Brian Pane]
- *) Deprecated the apr_lock.h API. Please see the following files
- for the improved thread and process locking and signaling:
- apr_proc_mutex.h, apr_thread_mutex.h, apr_thread_rwlock.h,
- apr_thread_cond.h, and apr_global_mutex.h. [Aaron Bannert]
- *) Fix some daylight savings time breakage on (at least) AIX,
- Solaris, and HP-UX. [Jeff Trawick]
- *) Added support for Posix semaphores (sem_open, et.al.) for mutex
- locking. We use named semaphores in this implementation. The
- default priority is between pthread and sysvsem.
- [Jim Jagielski]
- *) Get flock-based mutexes to work in apps like Apache. Use the
- same permissions on flock- and fcntl-based mutexes as Apache
- 1.3. [Jeff Trawick]
- *) Fix apr-config so that it will not attempt to cd to a non-existent
- directory. [Justin Erenkrantz]
- *) Change the ordering of the apr_lock implementation method to
- better match what's done in Apache 1.3. The ordering is
- now (highest to lowest): pthread -> sysvsem -> fcntl -> flock.
- [Jim Jagielski]
- *) Improve detection of the INT64_C macro to prevent problems
- with HP-UX's ANSI C compiler. PR 8932. [Justin Erenkrantz]
- *) Make sure gethostbyname() can handle 255.255.255.255 if we
- are to trust it to handle numeric address strings in
- apr_sockaddr_info_get(). This fixes a problem on HP-UX
- which led to an assertion failure at Apache startup when
- using vhosts. [Jeff Trawick]
- *) Don't mask SIGUSR2 [Jin Hong <jinh@cnet.com>]
- *) Load libraries if they not MH_BUNDLE, but if they are not, it
- just attempts to link them as shared libs.
- [Pier Fumagalli <pier@betaversion.org>]
- *) apr_atomic_dec now returns a zero value if the value of
- the atomic is zero, non-zero otherwise [Ian Holsman]
- *) When opening a file, only create an internal thread mutex
- if APR_XTHREAD is set. [Brian Pane]
- *) Move the kill_conditions enum in apr_thread_proc.h into the
- APR namespace. kill_after_timeout et al have been renamed
- appropriately (e.g., APR_KILL_AFTER_TIMEOUT). [Jeff Trawick]
- *) Fix a segfault in apr_thread_rwlock_destroy() on Win32.
- [INOUE Seiichiro <inoue@ariel-networks.com>]
-
- *) configure now checks to see if we can change DNS timeout values
- [Ian Holsman]
- *) Fix a bug in apr_file_seek() on Unix when using buffered
- files. PR 10003 [Jeff Trawick]
- *) Small table performance optimization: eliminate the
- zero-fill of newly allocated elements when expanding
- a table's size. [Brian Pane]
- *) Allow APR to install its generated libtool(s) via the
- --with-installbuilddir option (defaults to ${datadir}/build).
- [Justin Erenkrantz]
- *) renames: apr_ansi_time_to_apr_time becomes apr_time_ansi_put
- ap_exploded_time_t becomes apr_time_exp_t
- [Thom May <thom@planetarytramp.net>]
- *) Add the APR_FILE_NOCLEANUP flag to apr_file_open().
- Adding the flag will prevent the file from being closed
- when the pool passed in on apr_file_open() is destroyed.
- This feature is useful when using apr_os_file_get|put()
- to manage the apr_os_file_t in apr_file_t (ie, file handle
- caching in the HTTP server) [Bill Stoddard]
- *) Win32: Fix APR_XTHREAD problems in apr_file_read()
- and apr_file_write(). Multiple threads were using the
- same overlapped structure and io event handle created
- in the open call, which could cause unpredictable
- file i/o results. [Bill Stoddard]
- *) Win32: apr_proc_mutex_trylock and apr_proc_mutex_lock were
- incorrectly returning APR_BUSY if the lock was previously
- held by a thread that exited before releasing the lock
- (ie, if the process holding the lock segfaults). The MSDN
- doc says when WaitForSingleObject returns WAIT_ABANDONED,
- the calling thread takes ownership of the mutex, so these
- two routines should return APR_SUCCESS in this case, not
- APR_BUSY. [Bill Stoddard]
- *) Added a new m4 function APR_EXPAND_VAR that will iteratively
- interpolate the contents of a variable, such as $sysconfdir,
- for use in a borne script. [Aaron Bannert]
- *) apr-atomic support for old-sparc's and gas on solaris
- [Dale Ghent <daleg@elemental.org>, jean-frederic clere, Ian Holsman]
- *) Change apr_proc_detach to take a parameter that can enable/disable
- automatic forking (aka, to "daemonize").
- [Jos Backus <josb@cncdsl.com>, Aaron Bannert]
- *) Implement apr_global_lock_foo() on Win32
- [Bill Stoddard]
- *) Fix select() argument call when waiting for IO. PR 9674.
- [David MacKenzie <djm@pix.net>]
- *) Add a new lock API (apr_global_mutex_t) to provide guaranteed
- cross-process AND cross-thread mutual exclusion. [Aaron Bannert]
- *) Note: We are in the process of deprecating the apr_lock.h API.
- The new and improved lock/synchronization APIs now reside
- in apr_thread_mutex.h, apr_proc_mutex.h, apr_thread_rwlock.h,
- and apr_thread_cond.h. [Aaron Bannert]
- *) Enable autoconf 2.52{f,g} build support.
- [Blair Zajac <blair@orcaware.com>]
- *) Added new functions for atomic operations. These are experimental
- at the moment, so use in apps is discouraged [Ian Holsman]
- *) Correct serious problems with the Win32 apr_file_dup2
- and apr_file_open_stdxxx() fns. [William Rowe]
- *) Begin implementation of the WinCE port.
- [Mladen Turk <mturk@mappingsoft.com>]
- *) Disable SHMEM_MMAP_ZERO on HPUX 11.x where it is not supported.
- Use SHMEM_SHMGET_ANON instead. [Aaron Bannert]
- *) Fix a few attempts to add to a void * ptr in the Unix shared
- memory support code. PR #9710 Per Ekman [pek@pdc.kth.se]
- *) In the Linux apr_sendfile(), fix the types of some parameters
- to apr_send() and apr_recv(). Breakage was seen in 64-bit mode
- on s/390. PR #9712 [Neale.Ferguson@SoftwareAG-usa.coom]
- *) added APR_PROGRAM_ENV and APR_PROGRAM_PATH options for starting
- processes via apr_proc_create() [Greg Stein]
- *) Deprecated apr_pool_free_blocks_num_bytes() [Sander Striker]
- *) Add --enable-pool-debug to make it easier for people to
- enable pool debug mode. Removed the APR_POOL_DEBUG_VERBOSE
- define that was previously being used. [Sander Striker]
-
- *) Changed the apr_file_dup2() function prototype. It can only
- take and reuse an apr_file_t*, and will no longer create one
- if *new_file == NULL (use apr_file_dup() for that). [Aaron Bannert]
- *) Implemented name-based shared memory on Unix. [Aaron Bannert]
- *) Fix spelling mistakes in APRDesign.
- [Blair Zajac <blair@orcaware.com>]
- *) Ensure that apr_file_mktemp creates the temp file if it isn't there.
- [John Sterling <sterling@covalent.net>]
- *) Make sure to pre-mark anon SysV shared memory segments as
- removed. [Jim Jagielski]
- *) Add --with-efence to allow usage of Electric Fence.
- [Justin Erenkrantz]
- *) Updated the pools debug code. Check if a pool is still
- valid on the most common apr_pool_xxx functions.
- Fix the way APR_POOL_DEBUG_VERBOSE was using stderr.
- Make the output somewhat nicer in this debug mode. [Sander Striker]
- *) Add new define APR_POOL_DEBUG_VERBOSE which spits out info
- about pool creation/destruction [Ian Holsman]
- *) Fix GMT offset adjustments for platforms that do not have native
- GMT offset adjustments. [Jon Travis <jtravis@covalent.net>]
- *) Add new apr_shm_t API and remove old apr_shmem_t API. The new
- API handles both anonymous and name-based shared memory. Anonymous
- shared memory segments are only usable on systems with process
- inheritance, and so the new API with name-based segments is
- usable on platforms like Win32. [Aaron Bannert and William Rowe
- with much help from Justin Erenkrantz and Sander Striker]
- *) Add --with-egd to support EGD-compatible entropy gatherers for
- those platforms without native support. [Justin Erenkrantz]
- *) apr_lock_create() and apr_proc_mutex_create() now have an
- additional parameter for specifying the lock mechanism.
- apr_lock_create_np() and apr_proc_mutex_create_np() have been
- removed. [Jeff Trawick]
- *) Change the prototype of apr_thread_exit() so that the apr_status_t
- is no longer a pointer. It was difficult and sometimes hazardous
- to return a apr_status_t* at times, and this allows us to return
- the APR_* error codes directly. [Aaron Bannert]
- *) Add apr_sockaddr_equal() for comparing APR sockaddrs.
- [Jeff Trawick]
- *) Win32: apr_sendfile() should return APR_ENOTIMPL if
- oslevel < WINNT. [Bill Stoddard]
- *) Put new pools code in place which allows applications to
- switch off locking on pools operations in case a pool is
- guaranteed to never being used in more than one thread
- at the same time. We've seen a significant performance
- improvement over the old code. [Sander Striker]
- *) Add apr-config - a shell script to allow third-party programs
- easy access to APR configuration parameters. [Justin Erenkrantz]
- *) Add find_apr.m4 to allow third-party programs that use APR to
- have a standard m4 macro for detection. [Greg Stein]
- *) SEGV in apr_table_overlap [Brian Pane]
- *) apr_array_copy speedup by removing the zero-fill [Brian Pane]
- *) Fix build breakage on systems with getaddrinfo() but not
- gai_strerror() (e.g., RedHat 5.2). [Jeff Trawick]
- *) Fix a problem in Unix apr_file_dup() which caused 0 to be returned
- by the first read. [Stas Bekman <stas@stason.org>]
- *) Fix a buglet that caused APR_FILE_BASED_SHM to be set inadvertently
- on some platforms (e.g., Linux, AIX). [Jeff Trawick]
- *) Speed up apr_table operations by using a cache/checksum and a
- red-black tree in the overlay.
- [Brian Pane <bpane@pacbell.net>, Cliff Woolley]
- *) Speed up apr_pool_userdata_set[n] by letting hash_set figure out
- the strings length. [Brian Pane <bpane@pacbell.net>]
- *) New function apr_mmap_dup. This is called in the mmap_setaside.
- [Brian Pane <bpane@pacbell.net>]
- *) Speed up the apr_hash_t implementation's handling of APR_HASH_KEY_STRING.
- [Brian Pane <bpane@pacbell.net>]
- *) Tweak apr_gethostname() so that it detects truncation of the
- name and returns an error. [Jeff Trawick]
- *) Fix bug in Darwin DSO code. [Sander Temme]
- *) Fix apr_setup_signal_thread() to grab the right error code from
- a sigprocmask() failure. This only affects platforms that use
- sigprocmask() in lieu of pthread_sigmask(). [Jeff Trawick]
- *) Fix the Unix HAVE_POLL flavor of apr_poll_socket_mask() so that
- it doesn't segfault. Avoid some wasted storage in a poll-related
- APR structure. [INOUE Seiichiro <inoue@ariel-networks.com>]
- *) Fix apr_setup_signal_thread() so that threads don't block
- synchronous signals (e.g., SIGSEGV). It is a programming error
- to do so, and some platforms (e.g., Solaris, AIX) don't call any
- registered signal handler when such signals are blocked.
- [Jeff Trawick]
- *) Change the apr_table_elts macro so that it provides access via
- a const pointer instead of a non-const pointer.
- [Brian Pane <bpane@pacbell.net>]
- *) Use strerror_r() where available, since strerror() isn't always
- thread-safe. Example systems where strerror() isn't thread-safe:
- Linux+glibc, AIX [Jeff Trawick]
- *) Fix some file cleanup problems in apr_proc_create() which could
- result in the pipes for stdin/stdout/stderr being closed
- immediately. [Jeff Trawick]
- *) New functions apr_hash_[merge|copy], change to overlay fn
- so that it calls merge, which does a inline iteration instead
- of calling the iterator function. [Brian Pane <bpane@pacbell.net>]
- *) Introduce the apr_pool_userdata_setn() variant that doesn't
- strdup the key. Allows both the _setn() and _set() variant to
- accept NULL for the cleanup. [Brian Pane <bpane@pacbell.net>]
- *) Re-vamp the apr_proc_wait and apr_proc_wait_all functions. We
- now return the exit code from the program and a reason that the
- program died, either normal exit or signalled.
- [Jeff Trawick and Ryan Bloom]
- *) Implement portable accessors for proc mutex. These are equivalent
- to apr_os_lock_get/set, but they work for apr_proc_mutex_t types
- instead. [Aaron Bannert]
- *) Added a new parameter to apr_thread_mutex_init(). Now, by default,
- thread mutexes are not nested (sometimes called "recursive"). To
- enable nested mutexes, a flag must be passed to the init script.
- Non-nested mutexes are much faster than nested ones.
- [Aaron Bannert]
- *) read_with_timeout in apr/file_io/win32/readwrite.c incorrectly
- returned APR_SUCCESS instead of APR_EOF when PeekNamedPipe failed
- and the result from GetLastError() was ERROR_BROKEN_PIPE. Because
- of this, the pipe wasn't closed as soon as it could be.
- [Tim Costello <tim.costello@zcmgroup.com.au>]
- *) Fix a problem in the Win32 pipe creation code called by
- apr_proc_create(): It didn't register cleanups for either the
- read or the write ends of the pipe, so file handles (and event
- handles for pipes with asynchronous I/O mode set) are never
- closed. [Tim Costello <tim.costello@zcmgroup.com.au>]
- *) Add support for QNX 6. [J.T. Conklin <jtc@acorntoolworks.com>]
- *) We now create exports.c and export_vars.h, which in turn create
- exports.c. From this we generate two more files with different
- purposes: apr.exp - list of exported symbols; and exports.lo
- (exports.o) - an object file that can be linked with an executable
- to force resolution of all apr symbols. [Aaron Bannert]
- *) Add the apr_thread_cond_timedwait function to the condition
- variable API. [Aaron Bannert]
- *) Fixed apr_file_mktemp on systems without mkstemp (Win32, etc).
- [Mladen Turk, Cliff Woolley]
- *) Fix a segfault in apr_poll_clear on Unix. Also fix the logic
- for the case where there are multiple events ORed together in
- the events list. [Jamshid Mahdavi <mahdavi@volera.com>]
- *) Files opened on Unix with the flag APR_DELONCLOSE are now
- not unlinked until they are actually closed, rather than as
- soon as they're opened. The old approach worked but made
- handling temp files harder. [Cliff Woolley]
- *) Fix potential segfault when closing a file on Unix. If
- apr_file_close() was called and it failed, it would not
- deregister the file cleanup. Therefore the cleanup would
- be run again later on a now-invalid descriptor. [Cliff Woolley]
- *) Introduce apr_pool_lock for debugging, in combination with
- ALLOC_USE_MALLOC + DEBUG_WITH_MPROTECT. Only implemented
- on Win32 today, very effective for debugging pool constness.
- [William Rowe]
- *) Optimize apr_pstrcat by caching lengths of first 6 strings
- [Brian Pane <bpane@pacbell.net>]
- *) Add pool accessors to the apr_thread_mutex_t datatype.
- [Aaron Bannert <aaron@clove.org>]
- *) Add the apr_file_mktemp function. This creates and opens a
- temporary file, for use by the program. This file is created
- delete_on_close. The initial implementation only works on
- Unix, but Windows is coming soon. [Ryan Bloom]
- *) Make the unix version of apr_proc_wait_all_procs a simple wrapper
- around apr_proc_wait, and which extracts the exit code from the
- status returned by waitpid.
- [Kevin Pilch-Bisson <kevin@pilch-bisson.net>]
- *) Add process locking API to APR. [Aaron Bannert <aaron@clove.org>]
- *) Add condition variables for Windows. [Ryan Bloom]
- *) Add condition variables to the APR set of locking functions.
- This does Unix, and provides stubs for all other platforms.
- [Aaron Bannert <aaron@clove.org>]
- *) Don't search for IPv6 names in apr_sockaddr_info_get() if the
- application doesn't specify the family (i.e., the application
- passes in AF_UNSPEC) and APR isn't built with IPv6 support.
- [Jeff Trawick]
- *) Fix the API for the apr_proc_create() call on Win32. Several
- bad assumptions are gone, including a mismatch between unix and
- win32, where win32 was defaulting to create detached. Also fixes
- the apr_proc_t's pid member to a real pid (identity that works
- across processes) instead of the handle (which is a new hproc
- member value.) [William Rowe]
- *) Modify the external apr_filepath_get() fn to take a flags arg,
- currently only for APR_FILEPATH_NATIVE. This returns c:\foo
- format on Win32, and should do the same on OS2, or sys\vol:\foo
- on Netware. Primarily for internals, but possibly useful to
- others (and it mirrors some of the other apr_filepath_*() calls.)
- [William Rowe]
- *) Add the new thread read/write lock API to APR.
- [Aaron Bannert <aaron@clove.org>]
- *) Add the new thread mutex lock API to APR.
- [Aaron Bannert <aaron@clove.org>]
-
- *) Cache GMT offset on platforms that don't store it in the tm struct.
- This offset is normalized to be independent of daylight savings
- time. [Brian Pane <bpane@pacbell.net>]
- *) Initial support for cygwin. [Stipe Tolj <tolj@wapme-systems.de>]
- *) Fix a problem with buffered files on Unix. [Brian Havard]
- *) Fix the bungling of getaddrinfo() error codes. [Jeff Trawick]
- *) Add an apr_thread_once function to APR. This allows a
- program to ensure that a function is only called once.
- [Ryan Bloom]
- *) APR Documentation is now in Doxygen format.
- [Ian Holsman]
- *) Get apr_ungetc() to work with buffered files on Unix.
- [Jeff Trawick]
- *) Fixed apr_filepath_root on Unix [William Rowe, Cliff Woolley].
- *) Rename XtOffset to APR_XtOffset. This namespace protection
- is important to keep from conflicting with other packages.
- [Perl]
- *) Introduce a new --disable-ipv6 option to disable IPv6 support.
- [Sterling Hughes <sterling@designmultimedia.com>, Jeff
- Trawick]
- *) Fix the new shared memory code. We need to pass a pointer to
- an apr_file_t to apr_file_open. Also, apr_os_file_get returns
- a status value, not the OS file descriptor. [Ryan Bloom]
- *) Fix the new shared memory configure script. The APR_DECIDE
- macros go in order, so the last set of dependancies that are
- met are the ones used. That means that when using those macros,
- options should be listed with the least desirable option first,
- and the most desirable last. The new shared memory routines did
- the opposite, so we chose the wrong shared memory option on Linux.
- [Ryan Bloom]
- *) Move the necessary shared memory code from MM into APR and remove
- our dependency upon MM. [Justin Erenkrantz]
- *) Get apr_lock_file and apr_unlock_file working on Windows 9x.
- [Mladen Turk, Bill Stoddard]
- *) Make all APR pools be allocated out of the permanent pool.
- This brings APR pools back to a tree structure. There are
- no longer any way to create a pool that is not a decendant
- of the permanent_pool. [Ryan Bloom]
- *) Wrap all functions in APR_DECLARE macro.
- [Sterling Hughes <sterling@designmultimedia.com>]
- *) Non-blocking connects shouldn't be calling connect a second
- time. According to Single Unix, a non-blocking connect has
- succeeded when the select pops successfully. It has failed
- if the select failed. The second connect was causing 502's
- in the httpd-proxy. [John Barbee barbee@veribox.net]
- *) Fix apr_dir_rewind() for Win32 to avoid returning a bogus error.
- [Jeff Trawick, William Rowe]
- *) Detect required libraries first. This minimizes the libraries
- needed in apr_hints.m4. [Justin Erenkrantz]
- *) Support the AIX, glibc2, and Solaris variants of gethostby{name|addr}_r.
- Use gethostbyaddr_r function when available.
- [Sterling Hughes <sterling@designmultimedia.com>]
- *) Add new socket option, APR_INCOMPLETE_READ, that should be
- set when you expect the first non-blocking read to fail with
- EAGAIN. Setting APR_INCOMPLETE_READ prior to calling apr_read
- will cause select() to be called first to wait for bytes
- to read. [Brian Pane, Dean Gaudet]
- *) Better installation. This makes us install the APRVARS file,
- as well as MM. [Ryan Bloom]
- *) Provide new number conversion functions apr_itoa, apr_ltoa, and
- apr_off_t_toa, and inline code in inet_ntop4, to reduce CPU
- consumption. [Brian Pane]
- *) Updated APR to pass the thread worker_function prototype
- (apr_thread_start_t) two parameters, the apr private data
- (apr_thread_t*) and the application private data (void*).
- Applications' worker_thread() routines may use apr_thread_pool_get
- to access the pool (implemented using APR_POOL_*_ACCESSOR() macros.)
- [Aaron Bannert <aaron@ebuilt.com>]
- *) Add Solaris 8's sendfilev() support. This requires the following
- patches from Sun: 111297 (Sparc), 111298 (x86). You'll need the
- other patches listed in the patch description. [Justin Erenkrantz]
- *) Close file descriptor when we are done with fcntl or flock-based
- cross-process lock. Otherwise, we leak descriptors.
- [Justin Erenkrantz]
-
- *) Fix a possible data corruption problem with the use of getpwnam_r() on
- all platforms where that function is used.
- Use getpwnam_r() and getgrgid_r() instead of getpwnam() and getgrgid()
- with threaded builds on glibc (2.1, at least) to avoid thread safety
- issues. [Jeff Trawick]
- *) Added apr_lock_tryacquire. It will attempt to acquire the lock, but
- will not block if it can not acquire the lock. Returns APR_EBUSY if
- acquistion can not happen. [Justin Erenkrantz]
- *) Added an inherit flag to apr_socket_create and other socket creation
- functions. This allows APR programs to specify that a socket should
- be passed to any child processes that are created. The inherit flag
- is only meaningful if programs use apr_process_create(). This
- also adds a couple of macros that allow APR types to set and unset
- the inherit flag. [Ryan Bloom]
- *) apr_connect()on Windows: Handle timeouts and returning the proper
- status code when a connect is in progress. [Bill Stoddard]
- *) apr_connect() on Unix: Handle EINTR during connect(). Handle timeouts.
- [Jeff Trawick]
- *) Handle the weird case where getpwnam() returns NULL but errno is zero.
- [Jeff Trawick]
- *) Add apr_file_flags_get() which returns the flags that were originally
- passed in to apr_file_open(). [Cliff Woolley]
- *) Added APR_HAS_XTHREAD_FILES macro that indicates whether or not the
- platform handles files opened in APR_XTHREAD mode natively. Currently
- only Win32 has such native support. [Cliff Woolley]
- *) Fix gmt offset handling on Solaris. Apache log messages now show
- local time again. PR #7902 [Taketo Kabe <kabe@sra-tohoku.co.jp>]
- *) apr_pstrcat() optimizations [Doug MacEachern, Jeff Trawick]
- *) Make the apr_pool_is_ancestor logic public. This is required for
- some new logic that is going into HTTPD. I have left the join logic
- in that function debug only. [Ryan Bloom]
- *) Clean up Win32 locks when the pool goes away.
- [Justin Erenkrantz, Jeff Trawick]
- *) Implement apr_get_home_directory for Win32. [William Rowe]
- *) Complete the implementation of LARGEFILE support on Win32, although
- the mmap semantics still need a touch of work. [William Rowe]
- *) Fix the APR_XTHREAD support, and apr_sendfile mechanics, so we can
- handle cross-threaded file handles on Win32. [William Rowe]
- *) Implement APR_READWRITE locks on Unix with POSIX rwlocks.
- Introduce new apr_lock_acquire_rw() function which takes in
- APR_READER or APR_WRITER. [Justin Erenkrantz]
- *) Add apr_open_stdin. This mirrors apr_open_stderr, except it works
- on stdin. [Aaron Bannert <abannert@ebuilt.com>]
- *) Add apr_strtok(), a thread-safe flavor of strtok() which has the
- same interface as strtok_r(). [Jeff Trawick]
-
- *) Add other child support to Win32 [Bill Stoddard]
- *) Other-child registrations are automatically removed when the
- associated pool is destroyed. This avoids garbage in the list
- of registrations when a pool with a registration is freed.
- [Jeff Trawick]
- *) Allow LTFLAGS to be overridden by the configure command-line
- (default="--silent") and introduce LT_LDFLAGS. [Roy Fielding]
- *) Add memory code kindly donated to APR by
- Elrond <elrond@samba-tng.org>
- Luke Kenneth Casson Leighton <lkcl@samba-tng.org>
- Sander Striker <striker@samba-tng.org>
- [David Reid]
- *) Fix a problem with the FreeBSD flavor of apr_sendfile() where we
- could return APR_EAGAIN+bytes_sent. [Jeff Trawick]
- *) Fix a problem on unixware where clearing h_errno wouldn't work.
- Use set_h_errno() instead. PR #7651 [Jeff Trawick]
- *) Add the test and build directories (when present) to the recursive
- make process, being sure that they are run last. test is only done
- recursively for make *clean targets. [Roy Fielding]
- *) Make the apr_mmap_create() function use the native_flags variable.
- This allows us to actually create WRITEABLE MMAPs.
- [Ed Korthof <ed@apache.org>]
- *) Completely revamp configure so that it preserves the standard make
- variables CPPFLAGS, CFLAGS, CXXFLAGS, LDFLAGS and LIBS by moving
- the configure additions to EXTRA_* variables. Also, allow the user
- to specify NOTEST_* values for all of the above, which eliminates the
- need for THREAD_CPPFLAGS, THREAD_CFLAGS, and OPTIM. Fix the setting
- of INCLUDES and EXTRA_INCLUDES. Check flags as they are added to
- avoid pointless duplications. Fix the order in which flags are given
- on the compile and link lines. [Roy Fielding]
-
- *) Fix DSO code on HP/UX. We have to use == not =, and it makes more
- sense to actually return errno, so that the return code means
- something. [Ryan Bloom]
- *) Clean up conditionals in unix DSO code so that we decide based on
- the dynamic loading implementation, which we noticed at configure
- time, instead of by operating system.
- [Wilfredo Sanchez]
- *) Add DSO support for dyld platforms (Darwin/Mac OS and OpenStep).
- [Wilfredo Sanchez]
- *) Amend the time code to better deal with time zones.
- [David Reid]
- *) Carefully select an appropriate native type for apr_int64_t and
- define its format as APR_INT64_T_FMT and literal using APR_INT64_C().
- [Justin Erenkrantz, William Rowe]
- *) Make clean, distclean, and extraclean consistently according to the
- Gnu makefile guidelines. [Justin Erenkrantz <jerenkrantz@ebuilt.com>]
- *) Initial implementation of of apr_filepath (get/set/parse_root and
- merge) for Windows. [William Rowe]
- *) Cleaned up implementation of of apr_filepath (get/set/parse_root
- and merge) for Unix. [Greg Stein, William Rowe]
- *) Fixup the --enable-libtool option. This allows the test directory
- to compile again. The test directory still doesn't work when
- APR is configured without libtool. [Ryan Bloom]
- *) If we don't have sigwait() in the system, see if sigsuspend() is
- available, and use that instead. [Wilfredo Sanchez]
- *) Make libtool optional at configure time. This is done with
- --disable-libtool. [Ryan Bloom]
- *) Recognize systems where the TCP_NODELAY setting is inherited from
- the listening socket, and optimize apr_setsockopt(APR_TCP_NODELAY)
- accordingly. [Jeff Trawick]
- *) Recognize the presence of getnameinfo() on Tru64. [David Reid]
- *) Allow APR to be installed. [Ryan Bloom]
- *) Generate config.nice for easy re-run of configure. [Roy Fielding]
- *) Define preprocessor flags in CPPFLAGS instead of CFLAGS and
- bring some sanity to the compiler command-lines. [Roy Fielding]
- *) Use the dso/aix subdirectory for older versions of AIX and fix
- a number of bugs in the dso code in that directory.
- [Victor Orlikowski]
- *) Allow libtool 1.3b to be used. [Victor Orlikowski]
- *) Misc. Win32 fixes: Set the pool pointer in apr_sockaddr_t
- structures created with the apr_socket_t to prevent segfault
- in certain apps. Flush unwritten buffered data when the file
- is closed. [Jeff Trawick]
- *) Win32: Get APR to compile with MSVC 5.0 (a.k.a. VC97).
- PR #7489 [Jeff Trawick]
- *) First draft implementation of apr_filepath (get/set/parse_root
- and merge) for Unix. [William Rowe]
- *) Add apr_ipsubnet_create() and apr_ipsubnet_test() for testing
- whether or not an address is within a subnet. [Jeff Trawick]
- *) Add apr_sendto and apr_recvfrom for Unix. Start of adding UDP
- support. [David Reid]
- *) Add a method to get the password from the system for a given
- user. [John Barbee <jbarbee@covalent.net>]
- *) Change the include path order, so that we look for included files
- in the APR paths first, and the system paths second.
- [jean-frederic clere <jfrederic.clere@fujitsu-siemens.com>]
- *) Add a with-sendfile option, so that people on platforms without a
- sendfile implementation for APR can easily disable it from the
- configure line. [Ryan Bloom]
- *) Change the check for netinet/tcp.h to work around an issue with
- that header file on IRIX 6.5 which prevented it from being
- detected. PR #6459 [Jeff Trawick]
- *) Introduce apr_get_userid to return a named user's apr_uid_t and
- apr_gid_t across platforms [Cliff Woolley, William Rowe]
- *) In apr_shm_init(), check the retcode from mm_malloc(). Previously,
- we segfaulted here if mm_malloc() failed to get a lock. An example
- error scenario is when the lock file lives on a filesystem which
- doesn't support locking. [Jeff Trawick]
- *) Name protected the autoconf macros defined by APR. Moved the
- REENTRANCY_FLAGS settings into apr_hints.m4. Inlined the
- APR_PREPARE_MM_DIR macro because it could only be used once.
- Removed the unused macros MY_TRY_RUN, MY_TRY_RUN_NATIVE, and
- AC_USE_FUNCTION. Added some macro comments. [Roy Fielding]
- *) Cope with BSDi installations where the default make has been
- replaced with GNU make. [Joe Orton <joe@manyfish.co.uk>]
- *) Changed apr/helpers to apr/build to be consistent with other Apache
- source trees. Added make variables to rules.mk.in that point to the
- builders directory and its scripts. Updated buildconf, configure.in,
- and Makefile.in files to create and use the new scripts. Moved scandoc
- to scandoc.pl and its default.pl template to scandoc_template.pl.
- [Roy Fielding]
- *) Updated config.guess and config.sub to GNU libtool 1.3.5 features,
- with the Apache additions for OS/390 and OS/2 emx. [Roy Fielding]
- *) Moved hints.m4, apr_common.m4, and helpers/apr-conf.m4 into the
- new build directory as apr_hints.m4, apr_common.m4, apr_network.m4,
- and apr_threads.m4. [Roy Fielding]
- *) Get apr_sendfile() working on HP-UX. This gets APR to build on
- HP-UX without having to turn off APR_HAS_SENDFILE. [Jeff Trawick]
- *) Force FreeBSD to compile without threads by default. To enable
- threads, use --enable-threads on the configure line.
- [Ryan Bloom]
- *) Purge system password buffer before returning from apr_password_get.
- No longer abuses bufsize argument on return. [William Rowe]
- *) Moved the prototypes for apr_snprintf and apr_vsnprintf to the
- apr_strings.h header, from apr_lib.h. This location makes more
- sense. [Ryan Bloom]
- *) Added the APR_TRY_COMPILE_NO_WARNING configure macro for testing a
- compile with -Werror as well as the APR_CHECK_ICONV_INBUF macro to
- test for annoying iconv prototype differences.
- [Jeff Trawick, Roy Fielding]
- *) Fix a problem with configure on NetBSD. We must include sys/types.h
- for some platforms. [jun-ichiro hagino <itojun@kame.net>]
- *) Some fixes in the Win32 time support.
- (IsLeapYear): New macro for quickly figgerin' out if a given year is a
- leap year. (SystemTimeToAprExpTime): Perform the calculation of
- tm_yday. Also, negate the sign of the tm_gmtoff field to be
- consistent with Unix platforms and APR header file comments.
- [Mike Pilato]
- *) Implement WinNT Unix'ish permissions. [William Rowe]
- *) Corrected an OS2'ism of apr_get_home_directory. OS2 now returns the
- proper directory, including the user's name.
- *) Removed private os2errno.h and integrated the OS2 network error codes
- into apr_errno.h for optimized error tests (APR_STATUS_IS_EFOO(rv)).
- [William Rowe]
- *) Moved inclusion of <os2.h> header from multiple modules into apr.h
- [William Rowe]
- *) Added apr_compare_users() and apr_compare_groups() for more complex
- apr_uid_t and apr_gid_t structures. Enabled both .user and .group
- results from WinNT/2000 stat/getfileinfo, but expect to find that
- .group is 'None' in most cases. [William Rowe]
- *) Replace configure --with-optim option by using the environment
- variable OPTIM instead. This is needed because configure options
- do not support multiple flags separated by spaces. [Roy Fielding]
- *) Eliminate the APR_SIG* aliases for standard signal names,
- since they serve no useful purpose. [Roy Fielding]
- *) Abstracted apr_get_username and apr_get_groupname for unix and win32.
- Modified Win32 apr_uid_t and apr_gid_t to use PSIDs, and elimintated
- the uid_t and gid_t definitions. [William Rowe]
- *) Radically refactored apr_stat/lstat/getfileinfo/dir_read for Win32
- to assure we are retrieving what we expect to retrieve, and reporting
- the correct result (APR_SUCCESS or APR_INCOMPLETE). The potential
- for a bit more optimization still remains. [William Rowe]
- *) While we have the future opportunity to cache the apr_stat'ed file
- handle for a very fast open (dup handle) on Win32, patched to close
- that file after a stat always. Needs a new semantic before we leave
- handles dangling when the user intends to rm. [William Rowe]
- *) Correct Win32 apr_stat/lstat/getfileinfo/dir_read to all zero out
- the finfo buffer on success (or incomplete success). [William Rowe]
- *) Fix Win32/Unix apr_lstat to throw the .valid bit APR_FINFO_LINK to
- indicate we attempted to open the link. Only the .filetype APR_LNK
- reflects if the file found was, in fact, a link. [William Rowe]
- *) Fixed apr_open and apr_rename to function on Win9x.
- [Mike Pilato <cmpilato@collab.net>]
-
- *) Add apr_open_stdout. This mirrors apr_open_stderr, except it works
- on stdout. [Mike Pilato <cmpilato@collab.net>]
- *) Fix bug in file_io/unix/dir.c. There is no such thing as a dirent,
- it must be a struct dirent.
- [Kevin Pilch-Bisson <kevin@pilch-bisson.net>]
- *) Fix the configure script so that we can build from a different
- directory. [Kevin Pilch-Bisson <kevin@pilch-bisson.net>]
- *) Introduce the wanted flag argument to the apr_stat/lstat/getfileinfo
- family of functions. This change allows the user to determine what
- platform-specific file information is retrieved, to optimize both
- portability and performance. [William Rowe]
- *) Fix make depend. [Ryan Bloom]
- *) All dso implementations now register a cleanup to unload the DSO
- when it is loaded. If the pool is removed, we really do need to
- remove the DSO. In the past, different platforms behaved differently
- it this respect. [Ryan Bloom]
- *) Add linkage declarations to the DSO code.
- [Gregory Nicholls <gnicholls@level8.com>]
- *) Some adjustment of hints.m4 setting flags (used to check if null
- first) and added some verbosity. [Jim Jagielski]
- *) Specify APR_DECLARE to some of the APR functions. This helps linking
- on some operating systems. [Gregory Nicholls <gnicholls@level8.com>]
- *) Libtool'ized APR and converted all the makefiles to share rules
- from helpers/rules.mk. [Greg Stein]
- *) Remove a warning on FreeBSD. FreeBSD defines TCP_NO_PUSH, but we
- don't actually use it. This causes os_cork to be defined but not
- used. This patch keeps us from defining os_cork and os_uncork on
- FreeBSD. [Ryan Bloom]
- *) Keep apr_terminate from seg faulting on terminate. This is
- happening on systems that do not NULL out locks when they are
- destroyed. To keep this from happening, we set the locks to
- NULL after destroying them in apr_terminate, and we have to
- check for NULL in free_blocks.
- [Allan Edwards and Gregory Nicholls <gnicholls@level8.com>]
- *) Remove the ability to allocate memory out of a NULL pool.
- [Ryan Bloom]
- *) Add an APR_GET_POOL macro to get a pool from any APR type that has
- a pool. This requires that ALL apr types put the pool as the first
- field in their structure. [Ryan Bloom]
- *) Begin to remove the ability to allocate out of NULL pools. The first
- problem to solve, is that we need an apr_lock in order to allocate
- pools, so that we can lock things out when allocating. So, how do we
- allocate locks without a pool to allocate from? The answer is to create
- a global_apr_pool, which is a bootstrapping pool. There should NEVER
- be a sub-pool off this pool, and it is static to an APR file. This is
- only used to allow us to allocate the locks cleanly, without using the
- NULL pool hack. [Ryan Bloom]
- *) Fix a logic error in the poll code when implemented using select.
- [Nick Caruso <ncaruso@gamesville.com>]
- *) FreeBSD does not support sendfile() in combination with threads
- before version 4.2. We no longer even try to support it.
- [Ryan Bloom]
- *) On FreeBSD, it is possible for the first call to sendfile to
- get EAGAIN, but still send some data. This means that we cannot
- call sendfile and then check for EAGAIN, and then wait and call
- sendfile again. If we do that, then we are likely to send the
- first chunk of data twice, once in the first call and once in the
- second. If we are using a timed write, then we check to make sure
- we can send data before trying to send it. [Ryan Bloom]
- *) Cleanup to help Apache support programs build cleanly.
- [Cliff Woolley <cliffwoolley@yahoo.com>]
- *) Cleanup some compiler warnings on Solaris
- [Dale Ghent <daleg@elemental.org>]
- *) apr_getaddrinfo() can now return multiple addresses for a host
- via the next field in apr_sockaddr_t. [Jeff Trawick]
- *) Tighten up the check for getaddrinfo(). If it can't figure out
- the appropriate address family for 127.0.0.1, it fails.
- Unfortunately, Tru64 fails this test so we won't do IPv6 on
- Tru64. [Jeff Trawick]
- *) Rename apr_opendir to apr_dir_open. [Ryan Bloom]
- *) apr_snprintf()'s %pI format string now takes apr_sockaddr_t *
- instead of sockaddr_in *. [Jeff Trawick]
- *) Fix a bug in apr_accept() for Win32 and Unix where the local
- apr_sockaddr_t in the new connected socket was not initialized
- properly. This could result in a bad string for apr_get_ipaddr(),
- among other things. [Jeff Trawick]
- *) Add apr_getnameinfo(), a replacement for apr_get_hostname() which
- supports IPv6 and will be friendlier for use with eventual
- SOCK_DGRAM support. apr_get_hostname() is gone. [Jeff Trawick]
- Changes with APR a9
- *) Removed the iconv implementation from the i18n/unix/iconv branch.
- This now resides in the apr-iconv repository, and will be ported
- over time to use native apr types (e.g. apr_dso) for portability.
- *) Only support IPv6 if we have sockaddr_in and a working
- getaddrinfo(). [Jeff Trawick]
- *) Add apr_parse_addr_port() for parsing the hostname:port portion
- of URLs and similar strings. [Jeff Trawick]
- *) Add Win32 MMAP support [William Rowe]
- *) Allow the APR programmer to specify if the MMAP is read-only or
- write-able.
- [Ryan Bloom and Will Rowe]
- *) Check more carefully for getaddrinfo(). Accept those that
- require <netdb.h> to be included (e.g., Tru64). Reject those that
- fail a very basic operational test (e.g., AIX). [Jeff Trawick]
- *) Add apr_make_os_sock() for constructing a fully-capable APR
- socket. [Jeff Trawick]
- *) Make APR's shared memory routines always allocate enough memory
- for the requested segment, the MM internal types, and the APR
- internal types.
- [Ryan Bloom]
- *) Add APR_SIZE_T_FMT. Get the other APR_xx_T_FMT variables
- defined properly on AIX. [Jeff Trawick]
- *) network API changes: get rid of apr_get_socket_inaddr(),
- apr_get_remote_name(), and apr_get_local_name() [Jeff Trawick]
- *) Add a step at configure time to create a file at the top-level,
- apr.exports, which lists every function exported by APR. The
- file is generated by a script in helpers, that reads each header
- file.
- [Ryan Bloom]
- *) Lock config changes: Detect SysV sem capability by the presence of
- sempaphore functions, not by the presence of union semun. New
- config variable apr_lock_method can override autodetection of the
- apr_lock implementation method. For now, hints.m4 uses it to select
- SysV semaphores for OS/390. New config variable
- apr_process_lock_is_global specifies that the selected inter-process
- lock method is sufficient for APR_LOCKALL (i.e., it blocks all
- threads and processes). For now, hints.m4 turns on this flag for
- OS/390. [Jeff Trawick]
-
- *) Get APR_OFF_T_FMT defined properly on Solaris Sparc.
- [Jeff Trawick]
- Changes with APR a8
- *) Change the name of the sa_len field in apr_sockaddr_t to salen.
- Some platforms have a macro named sa_len.
- [Tony Finch]
- *) apr_set_port(), apr_get_port(), apr_set_ipaddr(), and apr_get_ipaddr()
- now take apr_sockaddr_t as a parameter instead of apr_socket_t +
- apr_interface_e. This will allow the same routines to be used with
- datagram APIs to be added later. Note that code which calls
- apr_set_ipaddr() should probably be changed to call apr_getaddrinfo()
- for protocol independence. [Jeff Trawick]
- *) apr_create_tcp_socket() has been removed. Use apr_create_socket()
- instead. [Jeff Trawick]
- *) Source was moved from the apache-2.0 repository. For all CHANGES
- prior to this time, please see the apache-2.0 repository
|