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