1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
Changes with APR b1
*) Some adjustment of hints.m4 setting flags (used to check if null
first) and added some verbosity. [Jim Jagielski]
*) Specify APR_DECLARE to some of the APR functions. This helps linking
on some operating systems. [Gregory Nicholls <gnicholls@level8.com>]
*) Libtool'ized APR and converted all the makefiles to share rules
from helpers/rules.mk. [Greg Stein]
*) Remove a warning on FreeBSD. FreeBSD defines TCP_NO_PUSH, but we
don't actually use it. This causes os_cork to be defined but not
used. This patch keeps us from defining os_cork and os_uncork on
FreeBSD. [Ryan Bloom]
*) Keep apr_terminate from seg faulting on terminate. This is
happening on systems that do not NULL out locks when they are
destroyed. To keep this from happening, we set the locks to
NULL after destroying them in apr_terminate, and we have to
check for NULL in free_blocks.
[Allan Edwards and Gregory Nicholls <gnicholls@level8.com>]
*) Remove the ability to allocate memory out of a NULL pool.
[Ryan Bloom]
*) Add an APR_GET_POOL macro to get a pool from any APR type that has
a pool. This requires that ALL apr types put the pool as the first
field in their structure. [Ryan Bloom]
*) Begin to remove the ability to allocate out of NULL pools. The first
problem to solve, is that we need an apr_lock in order to allocate
pools, so that we can lock things out when allocating. So, how do we
allocate locks without a pool to allocate from? The answer is to create
a global_apr_pool, which is a bootstrapping pool. There should NEVER
be a sub-pool off this pool, and it is static to an APR file. This is
only used to allow us to allocate the locks cleanly, without using the
NULL pool hack. [Ryan Bloom]
*) Fix a logic error in the poll code when implemented using select.
[Nick Caruso <ncaruso@gamesville.com>]
*) FreeBSD does not support sendfile() in combination with threads
before version 4.2. We no longer even try to support it.
[Ryan Bloom]
*) On FreeBSD, it is possible for the first call to sendfile to
get EAGAIN, but still send some data. This means that we cannot
call sendfile and then check for EAGAIN, and then wait and call
sendfile again. If we do that, then we are likely to send the
first chunk of data twice, once in the first call and once in the
second. If we are using a timed write, then we check to make sure
we can send data before trying to send it. [Ryan Bloom]
*) Cleanup to help Apache support programs build cleanly.
[Cliff Woolley <cliffwoolley@yahoo.com>]
*) Cleanup some compiler warnings on Solaris
[Dale Ghent <daleg@elemental.org>]
*) apr_getaddrinfo() can now return multiple addresses for a host
via the next field in apr_sockaddr_t. [Jeff Trawick]
*) Tighten up the check for getaddrinfo(). If it can't figure out
the appropriate address family for 127.0.0.1, it fails.
Unfortunately, Tru64 fails this test so we won't do IPv6 on
Tru64. [Jeff Trawick]
*) Rename apr_opendir to apr_dir_open. [Ryan Bloom]
*) apr_snprintf()'s %pI format string now takes apr_sockaddr_t *
instead of sockaddr_in *. [Jeff Trawick]
*) Fix a bug in apr_accept() for Win32 and Unix where the local
apr_sockaddr_t in the new connected socket was not initialized
properly. This could result in a bad string for apr_get_ipaddr(),
among other things. [Jeff Trawick]
*) Add apr_getnameinfo(), a replacement for apr_get_hostname() which
supports IPv6 and will be friendlier for use with eventual
SOCK_DGRAM support. apr_get_hostname() is gone. [Jeff Trawick]
Changes with APR a9
*) Removed the iconv implementation from the i18n/unix/iconv branch.
This now resides in the apr-iconv repository, and will be ported
over time to use native apr types (e.g. apr_dso) for portability.
*) Only support IPv6 if we have sockaddr_in and a working
getaddrinfo(). [Jeff Trawick]
*) Add apr_parse_addr_port() for parsing the hostname:port portion
of URLs and similar strings. [Jeff Trawick]
*) Add Win32 MMAP support [William Rowe]
*) Allow the APR programmer to specify if the MMAP is read-only or
write-able.
[Ryan Bloom and Will Rowe]
*) Check more carefully for getaddrinfo(). Accept those that
require <netdb.h> to be included (e.g., Tru64). Reject those that
fail a very basic operational test (e.g., AIX). [Jeff Trawick]
*) Add apr_make_os_sock() for constructing a fully-capable APR
socket. [Jeff Trawick]
*) Make APR's shared memory routines always allocate enough memory
for the requested segment, the MM internal types, and the APR
internal types.
[Ryan Bloom]
*) Add APR_SIZE_T_FMT. Get the other APR_xx_T_FMT variables
defined properly on AIX. [Jeff Trawick]
*) network API changes: get rid of apr_get_socket_inaddr(),
apr_get_remote_name(), and apr_get_local_name() [Jeff Trawick]
*) Add a step at configure time to create a file at the top-level,
apr.exports, which lists every function exported by APR. The
file is generated by a script in helpers, that reads each header
file.
[Ryan Bloom]
*) Lock config changes: Detect SysV sem capability by the presence of
sempaphore functions, not by the presence of union semun. New
config variable apr_lock_method can override autodetection of the
apr_lock implementation method. For now, hints.m4 uses it to select
SysV semaphores for OS/390. New config variable
apr_process_lock_is_global specifies that the selected inter-process
lock method is sufficient for APR_LOCKALL (i.e., it blocks all
threads and processes). For now, hints.m4 turns on this flag for
OS/390. [Jeff Trawick]
*) Get APR_OFF_T_FMT defined properly on Solaris Sparc.
[Jeff Trawick]
Changes with APR a8
*) Change the name of the sa_len field in apr_sockaddr_t to salen.
Some platforms have a macro named sa_len.
[Tony Finch]
*) apr_set_port(), apr_get_port(), apr_set_ipaddr(), and apr_get_ipaddr()
now take apr_sockaddr_t as a parameter instead of apr_socket_t +
apr_interface_e. This will allow the same routines to be used with
datagram APIs to be added later. Note that code which calls
apr_set_ipaddr() should probably be changed to call apr_getaddrinfo()
for protocol independence. [Jeff Trawick]
*) apr_create_tcp_socket() has been removed. Use apr_create_socket()
instead. [Jeff Trawick]
*) Source was moved from the apache-2.0 repository. For all CHANGES
prior to this time, please see the apache-2.0 repository
|