CHANGES 87 KB

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