aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/poco/CHANGELOG
blob: 59a11835d46527c5b32eff7e79c96409388ee69b (plain) (blame)
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
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
This is the changelog file for the POCO C++ Libraries.

Release 1.9.4 (2019-09-18)
==========================

- fixed GH #2784: Upgrade bundled expat XML parser library to release 2.2.8,
  which fixes CVE-2019-15903.


Release 1.9.3 (2019-08-20)
==========================

- fixed GH #2603: Remove incorrect upper size limits for SSL certificates in NetSSL_Win
- fixed GH #2661: Poco::Zip::ZipArchive cannot load new tomcat.zip file (additional fix)
- fixed GH #2742: Support of vs150 & vs160 with the official Microsoft localization executable,
  vswhere.exe, installed by MSVC starting from VS2017
- Data/ODBC: make binding of std::string configurable (SQL_LONGVARCHAR - default or SQL_VARCHAR)
  through a global setting (Poco::Data::ODBC::Connector::bindStringToLongVarChar()).
- added Poco::SharedLibrary::setSearchPath() (currently implemented on Windows only)
- Windows required minimum version is now Windows XP SP2
- upgraded bundled SQLite to 3.29.0
- CppParser now supports type aliases defined with using keyword.
- PageCompiler: added support for adding Content-Security-Policy and Cache-Control headers.


Release 1.9.2 (2019-07-02)
==========================

- fixed GH #2736: Error using CMake gui - latest version
- fixed GH #2737: Bundles vulnerable copy of Expat — please upgrade to Expat 2.2.7
- fixed GH #2738: Poco::AccessExpireStrategy::onGet() must not extend expiration time after expiration


Release 1.9.1 (2019-06-24)
==========================

- Added support for building with different OpenSSL distributions on Windows.
  See the POCO_EXTERNAL_OPENSSL macro defined in Foundation/include/Poco/Config.h
  for options.
- Added Poco::Net::HTTPClientSession::flushRequest()
- Added Poco::Net::WebSocket::setMaxPayloadSize() and Poco::Net::WebSocket::getMaxPayloadSize()
  to specify a maximum acceptable payload size for Poco::Net::WebSocket::receiveFrame().
- Poco::Net::WebSocket: don't attempt to send empty credentials in response to 401 response.
- Redis: added support for additional commands (exists, expire, ping, multi, exec, discard)
- Redis: added Poco::Redis::Client::isConnected()
- Upgraded bundled PCRE to version 8.43
- Upgraded bundled SQLite to version 3.28.0
- Added project/solution files for Visual Studio 2019
- Fixed Visual Studio project files (version information from DLLVersion.rc not included in DLLs)
- Include version resource in DLLs built with CMake
- Added HTTP*Credentials::empty() and HTTPCredentials::clear()
- fixed GH #2220: Encoding/DoubleByteEncoding.cpp fails to compile with VS2008 and _DEBUG
- fixed GH #2243: DLLVersion.rc is excluded from build, missing detail information in properties of *.dll
- fixed GH #2277: SQLite null pointer dereference occurs when exception is being thrown
- fixed GH #2313: PollSet behaves differently on windows
- fixed GH #2316: cmake can't find MySQL and ODBC libraries
- fixed GH #2336: Omit ContentLength in WebSocket accept response
- fixed GH #2358: Don't include <openssl/fips.h> for later OpenSSL
- fixed GH #2364: Stringify escapes every unicode symbol when object contain an array
- fixed GH #2380: Calling Poco::Net::X509Certificate::addChainCertificate() leads to double free.
- fixed GH #2492: Net::Socket::address() crash on Android
- fixed GH #2549: Fix keepAlive in http client session
- fixed GH #2565: HTMLForm: optional enforcement of Content-Length instead of Chunked Transfer-Encoding
- fixed GH #2570: DialogSocket: receiveStatusMessage() - line length limit applies to entire multi-line message
- fixed GH #2583: Crypto library does not build with OpenSSL 1.0.0
- fixed GH #2655: MongoDB Binary element to string - bug
- fixed GH #2661: Poco::Zip::ZipArchive cannot load new tomcat.zip file
- fixed GH #2700: Invalid read of memory in Poco::Environment::set which may cause crashes.
- fixed GH #2712: File_WIN32.cpp(168): error C2065: "_upath":Undeclared identifier
- fixed GH #2723: Access violation when trying to decompress .zip file with unsupported compression method.


Release 1.9.0 (2018-03-07)
==========================

- Added additional text encodings, available in the new PocoEncodings library (GH #2165)
- Added Punycode support for resolving Internationalized Domain Names to Poco::Net::DNS (GH #2164)
- Added XDG Base Directory Specification support in Poco::Path, Poco::Util::SystemConfiguration
  and Poco::Util::Application (GH #1609, GH #561, GH #1609)
- Added support for GCM ciphers in Crypto library (GH #2129)
- Poco::Net::RemoteSyslogChannel and Poco::Net::RemoteSyslogListener now have basic
  support for RFC 5424 structured data (GH #2173)
- Poco::File now has methods for obtaining partition space (GH #1545)
- Added Poco::Net::Context::addCertificateAuthority() (GH #2197)
- Added Poco::AutoPtr::reset() and Poco::SharedPtr::reset() to improve compatibility
  with std::shared_ptr() (GH #2172)
- fixed GH #703: Poco::Data::SQLite data types (INTEGER is now mapped to Int64)
- fixed GH #1426: inttypes.h is available on sun solaris
- fixed GH #1912: Run ping with custom data size #1912
- fixed GH #2177: Run ping with custom timeout instead of the default
- fixed GH #2058 and GH #2095: Synchronization issue/deadlock in Poco::Util::Timer at destruction
- fixed GH #2089: Allow hyphen in HTTP authentication scheme names
- fixed GH #2106: Undefined behavior in Delegate::equals()
- fixed GH #2108: POCO SQLite Data Connector hangs for 20 secs waiting for thread timeouts on Windows
- fixed GH #2142: JSON::Object preserveOrder keys not synced on assignment
- fixed GH #2199 and GH #2188: Illegal header in zip file exception/assertion failure during JAR file decompression
- fixed GH #2203: Use MAX_ADDRESS_LENGTH to determine buffer size


Release 1.8.1 (2018-01-09)
==========================

- Added Poco::File::linkTo()
- fixed GH #2044: Poco::Net::NetworkInterface::list does not list inactive interfaces
  even when explicitly being asked for it.
- fixed GH #2042: Android abstract namespace local socket address
- fixed GH #2038: Poco::Net::MultipartWriter::createBoundary() always returns the same string.
- fixed GH #2020: SQLite not handling parameter count mismatch correctly.
- fixed GH #2012: Data/SQLite: Exception messages contain duplicate text
- fixed GH #2005: Upgraded bundled PCRE to 8.41
- fixed GH #2000: Fix building XMLStreamParser with unbundled expat
- fixed GH #1603: fix MinGW 4.8.2 Compilation
- fixed GH #1991: Support building poco 1.8.0 as cmake sub-project
- fixed GH #2080: Bugs in Poco::Net::Socket::select when POCO_HAVE_FD_POLL is defined


Release 1.8.0.1 (2017-11-11)
============================

- Reverted change for GH #1828; DeflatingStreamBuf::sync() no longer flushes
  underlying stream as this causes corruption for some Zip files.
- PocoDoc: fix for handling compiler configuration for Gradle builds.


Release 1.8.0 (2017-11-10)
==========================

- Poco::Base64Encoder: add support for base64url encoding (GH #1967)
- Add Poco::Net::PollSet class to Net library (GH #1763)
- The Net library now supports Unix Domain Sockets, where available.
- Added stream parser (Poco::XML::XMLStreamParser) to XML library (GH #1697)
- Added Poco::Net::TCPServerConnectionFilter and Poco::Net::TCPServer::setConnectionFilter()
  to support connection filtering and IP blacklisting (GH #1485)
- Added Redis library (GH #1383)
- Added Zip64 support to Zip library (GH #1356)
- Upgraded bundled SQLite to 3.21.0
- Removed OpenVMS support (GH #1988)
- fixed GH #271: NamedMutex_UNIX.cpp must remove semid
- fixed GH #739: Add WebSocket::receiveFrame() that appends to a Poco::Buffer<char>
- fixed GH #749: NTP Packet impl not according to RFC958
- fixed GH #896: Sample "TwitterClient" of NetSSL_OpenSSL can't be build
- fixed GH #1172: Poco::Data default storage should be std::vector
- fixed GH #1337: Poco::HTMLForm throws exception HTMLFormException("Form must be prepared")
  even after form is prepared.
- fixed GH #1373: SessionImpl::close() does not check return code of close handle specific function
- fixed GH #1425: Workaround bug in SolarisStudio 12.4 on RVO-ed objects.
- fixed GH #1614: Problematic license for JSON component: the previously used JSON.org parser
  has been replaced with pdjson
- fixed GH #1659: wrong field size calculation in ODBC code
- fixed GH #1683: Poco::Data ODBC impl doesn't bind to unsigned numeric types properly
- fixed GH #1705: MongoDB: support URI in Connection
- fixed GH #1708: "SocketReactor::addEventHandler" and "SocketReactor::removeEventHandler"
  must protect the access to "NotifierPtr pNotifier"
- fixed GH #1729: getConnectionTimeout of SQLite DB wrapper returns wrong value
  (in milliseconds, should be in seconds)
- fixed GH #1739: OpenSSLInitializer isn't threadsafe
- fixed GH #1750: double_conversion in NumericString is in conflict with Qt5 Core
- fixed GH #1804 and GH #1805: Integer Overflow or Wraparound
- fixed GH #1828: DeflatingStreamBuf::sync() should also flush underlying stream.
- fixed GH #1880: FTPClientSession::close() error
- fixed GH #1897: DateTime wrong binding/extraction for MySQL database
- fixed GH #1905: Compiling Foundation library with POCO_NO_FPENVIRONMENT in Config.h fails
- fixed GH #1906: Race condition in ThreadPool
- fixed GH #1913: Message Doesn't Support 64-bit Thread IDs
- fixed GH #1921: ICMPSocket does not check reply address
- fixed GH #1926: Exception when using SortedDirectoryIterator
- fixed GH #1934: File::setExecutable() on POSIX should set executable bit for group and
  other if corresponding readable bit is set
- fixed GH #1950: Net Exception: Address family not supported with clang
- fixed GH #1964: Buffer<> swap miss ownMem


Release 1.7.9p2 (2017-11-06)
============================

- fixed GH #1628: Export Poco::Zip::ZipUtil class


Release 1.7.9p1 (2017-11-02)
============================

- fixed GH #1968: Zip Decompress Parent Path Injection


Release 1.7.9 (2017-09-11)
==========================

- fixed GH #1813: xmlparse.cpp doesn't compile in WinCE (poco 1.7.8p3)
- fixed GH #1826: XPath query error
- fixed GH #1834: Visual Studio 2008 cannot find stdint.h
- fixed GH #1842: Upgrade bundled expat to 2.2.3
- fixed GH #1843: Use random salt for Poco::XML::NamePool
- fixed GH #1865: AbstractEvent::hasDelegates() is not thread-safe
- improved/fixed QNX support
- Poco::Util::LayeredConfiguration: added support for labelling configurations and
  finding them by their label
- upgraded bundled SQLite to 3.20.1
- PageCompiler: support <%@ include file="<path>" %> syntax for includes, in addition
  to <%@ include page="<path>" %>
- PageCompiler: optimize generated request handler code by removing useless
  statements, e.g. writing empty strings.
- added POCO_DEPRECATED macro which will be used in the future to deprecate
  classes and methods.
- Poco::NamedMutex and Poco::NamedEvent (System V Semaphores implementation): files are
  now opened with O_RDONLY | O_CREAT instead of O_WRONLY | O_CREAT, allowing sharing
  between different users. Furthermore, ftok() is called with 'p' as project ID
  argument.


Release 1.7.8p3 (2017-06-22)
============================

- fixed GH #1760: Upgrade bundled expat to 2.2.1 which fixes some vulnerabilities:
  http://seclists.org/oss-sec/2017/q2/499


Release 1.7.8p2 (2017-04-18)
============================

- fixed GH #1655: CipherImpl memory leak with OpenSSL 1.1


Release 1.7.8 (2017-02-21)
==========================

- fixed GH #1212: Lost WebSocket Frames after Client Websocket Handshake is complete
- fixed GH #1260: URI encoding
- fixed GH #1501: Alpine 3.4 trouble with Foundation/src/Error.cpp
- fixed GH #1523: Long path names under Windows
- fixed GH #1536: Building with OS X 10.12 SDK and 10.7 deployment target without libc++ fails
- fixed GH #1537: Need to add multiple cflags parameters to configure
- fixed GH #1539: Allow overriding POCO_TARGET_OSARCH for iPhoneSimulator
- fixed GH #1546: Enable bitcode for iPhone build config
- fixed GH #1549: Latin2Encoding and 0xFF
- fixed GH #1551: Unable to use Poco on macOS 10.12
- fixed GH #1552: IPv6 & operator throws an exception when scope = 0
- fixed GH #1566: Poco/Zip issue with some CM_DEFLATE archives
- fixed GH #1567: Poco/ZIP issue with uncompressed archives
- fixed GH #1570: IPv6AddressImpl::toString() returns wrong output for IPv6 address "::"
- fixed GH #1571: ODBC Preparator memory leak
- fixed GH #1573: Poco::File::createDirectories() should not throw Poco::FileExistsException
- fixed GH #1580: Unable to unzip zip file created using non-seeking stream
- fixed GH #1581: Cannot find 'pcre.h' when using POCO_UNBUNDLED, a non-system PCRE, and CMake
- fixed GH #1588: Poco::Net::HTTPChunkedStreamBuf::readFromDevice(): restrict maximum
  size of chunk length
- fixed GH #1589: Poco::Net::HTMLForm: restrict maximum field and value length
- fixed GH #1590: Poco::Net::DialogSocket: restrict maximum line length
- fixed GH #1591: Poco::Net::MultipartReader: restrict maximum boundary string length
- fixed GH #1597: adding empty file to zip leads to archive that can't be unzipped by windows
- fixed GH #1599: readFromDevice() in AutoDetectStream.cpp in Poco Zip cannot detect signature
- fixed GH #1534: Upgraded bundled zlib to 1.2.11
- fixed GH #1558: Upgraded bundled SQLite to 3.16.2
- fixed GH #1586: Upgraded bundled PCRE to 8.40
- fixed GH #1538: Upgraded bundled double-conversion to 1.1.5
- MongoDB: added support for authentication using "MONGODB-CR" and "SCRAM-SHA-1"
  authentication schemes.
- MongoDB: additional documentation and fixes for style and consistency and minor
  API improvements (e.g., Poco::MongoDB::Binary)
  Note: some flag enumeration values have been renamed for better consistency
  and readability; existing code using these will have to be updated.


Release 1.7.7 (2016-12-31)
==========================

- fixed GH #865: FileChannel compress fails leaving empty .gz files
- fixed GH #990: Potential race condition in Poco::File on Windows
- fixed GH #1157: Fixing a bug in the NetSSL_Win module (Host name verification failed error)
- fixed GH #1351: Fix for android include pthread.h from /usr/include
- fixed GH #1436: ODBC Bug: Unicode text(NVARCHAT) read from DB is truncated to half
- fixed GH #1453: _clock_gettime Symbol not found on Mac 10.11
- fixed GH #1460: POCO does not build with OpenSSL 1.1
- fixed GH #1461: Poco::Data::SQLite::SQLiteStatementImpl::next() error
- fixed GH #1462: AbstractConfiguration::getUInt does not parse hex numbers
- fixed GH #1464: ODBCMetaColumn::init() always maps integer NUMERIC/DECIMAL to Int32
- fixed GH #1465: Assertion violation in DateTime.cpp using ZipArchive
- fixed GH #1472: HTTP(S)StreamFactory should send a User-Agent header.
- fixed GH #1476: Fixed error with Poco::UTF8Encoding::isLegal()
- fixed GH #1484: ODBC: fix uninitialized variable
- fixed GH #1486: Support ODBC GUID data type as string
- fixed GH #1488: Poco::ObjectPool shrinks if returned object is not valid
- fixed GH #1515: Detection of closed websocket connection
- fixed GH #1521: bug in JSON ParseHandler.cpp (empty keys should be valid)
- fixed GH #1526: iOS app rejected, IPv6 not working
- fixed GH #1532: RecordSet and RowFilter: bad use of reference counter


Release 1.7.6 (2016-10-18)
==========================

- fixed GH #1298: ZipFileInfo: Assertion violation when reading ods files
- fixed GH #1315: Redefine Poco assertions for static analysis
- fixed GH #1397: Fix issues reported by static source code analysis
- fixed GH #1403: Android compile with poco-1.7.5 no 'pthread_condattr_setclock' error
- fixed GH #1416: Assertion violation when unzipping
- fixed GH #1418: Poco::Delegate assignment operator fails to compile for some specializations
- fixed GH #1422: Can't build poco 1.7.4 or 1.7.5 on centos5 32 bit
- fixed GH #1429: exception thrown in MongoDB when using replicaset
- fixed GH #1431: Poco/FIFOBuffer.h copy issue
- fixed GH #1445: Use stable_sort to preserve order of IP addresses from DNS
- fixed GH #1456: better handle leap seconds in Poco::DateTime and Poco::LocalDateTime
- fixed GH #1458: Probably invalid epoll_create() usage inside Poco/Socket.cpp
- Poco::XML::NamePool: increased default size from 251 to 509. Default size can now
  be changed by defining the POCO_XML_NAMEPOOL_DEFAULT_SIZE macro accordingly.
- Enchancements: Poco::XML::Document and Poco::XML::DOMParser have new constructors
  taking a NamePool size. Poco::Util::XMLConfiguration::load() also has a new overload
  for that purpose.
- Improved error handling in the Zip library (getting rid of some poco_assert macros
  and did proper error handling instead).
- Added Poco::URISyntaxException (subclass of Poco::SyntaxException), which is now
  thrown by Poco::URI.
- Improved error handling in Poco::URIStreamOpener::open().
- Poco::Data::MySQL: Handle connection lost/server gone error when starting a transaction
  and retry.
- XMLConfiguration default (and single-argument delimiter) constructor now loads an empty
  XML document with "config" root element to make the configuration usable without an
  additional call to load() or loadEmpty().


Release 1.7.5 (2016-08-29)
==========================

- fixed GH #1252: Unable to compile Poco::Data for Windows Compact Embedded 2013
- fixed GH #1344: Poco::Event::wait(timeout) should use CLOCK_MONOTONIC on Linux
- fixed GH #1355: [JSON::Object] After copy-ctor, JSON::Object::_keys still points to
  keys in map of copied object
- GH #1361: Shell expansion rules say that tilde must be replaced with $HOME before
  calling getpwuid
- Poco::SingletonHolder: added reset() method
- prefer clock_getttime() over gettimeofday() if available
- Upgraded bundled SQLite to 3.14.1


Release 1.7.4 (2016-07-20)
==========================

- fixed GH #1300: Session constructor hangs
- fixed GH #1303: HTTPSClientSession::sendRequest() fails if server has wildcard cert
- fixed GH #1304: URI doesn't know "ws:/" or "wss://" schemes
- fixed GH #1307: Upgrade bundled expat to 2.2.0
- fixed GH #1313: XML library compilation error
- fixed GH #1316: Empty SocketReactor never sleeps
- Upgraded bundled SQLite to 3.13.0


Release 1.7.3 (2016-05-02)
==========================

- fixed GH #993: Invalid zip format when opening a docx in word
- fixed GH #1235: Poco::Net::HTTPClientSession::sendRequest() should also handle HTTP_PATCH
- fixed GH #1236: Remove Poco::Data::Row::checkEmpty() as it prevents Row from being used
  with all NULL rows
- fixed GH #1239: Poco::Zip::Compress with non-seekable stream fails for CM_STORE
- fixed GH #1242: Poco::Data::RowFormatter generate exception if the first column of first
  row is null
- fixed GH #1253: ListMap does not maintain insertion order if key already exists
- Upgraded bundled SQLite to 3.12.2


Release 1.7.2 (2016-03-21)
==========================

- fixed GH #1197: Upgrade bundled expat to 2.1.1
  Expat 2.1.1 fixes a CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-1283
- fixed GH #1204: getdtablesize has been removed on Android 21
- fixed GH #1203: Poco::Data::RecordSet should be reusable
- fixed GH #1198: Upgrade bundled SQLite to 3.12.1


Release 1.7.1 (2016-03-14)
==========================

- fixed GH #1187: Data/MySQL: Seeing frequent "MySQL server has gone away" errors
- fixed GH #1184: Attempting to connect via a proxy throws a DNS error "Host not found"
- fixed GH #1180: Possible deadlock when TaskManager::count() is called in onFinished
- NetSSL_OpenSSL: use TLS_*_method() instead of deprecated SSLv23_*_method()
  if OpenSSL version is >= 1.1; initialize default/fallback client context to support
  all TLS protocols, not just TLSv1


Release 1.7.0 (2016-03-07)
==========================

- POSSIBLE BREAKING CHANGE: removed automatic registration of Data connectors due to
  issues with static initialization order.
- NetSSL_OpenSSL: added support for ECDH and DH ciphers; added support to disable
  specific protocols (Poco::Net::Context::disableProtocols());
  new Poco::Net::Context constructor taking a Poco::Net::Context::Params structure that
  allows specifying ECDH and DH parameters.
- Poco::Net::TCPServer: add additional try ... catch block around poll() to
  gracefully deal with errors due to high system load (e.g., out of file descriptors).
- fixed GH #1171: Poco::Data::RecordSet: rowCount not reset after execute
- fixed GH #1167: CMake & POCO_UNBUNDLED: expat sources are compiled in libPocoXML
- fixed GH #1160: Poco::Net::NetException
  "SSL Exception: error:1409F07F:SSL routines:ssl3_write_pending:bad write retry"
- fixed GH #1152: Wrong TaskProgressNotification description
- fixed GH #1141: Poco::StringTokenizer::TOK_TRIM changes behavior between 1.4 and 1.6
- fixed GH #1137: Missing 'longint' type in SQLite
- fixed GH #1135: Different package on github and official web site
- fixed GH #1030: tvOS / WatchOS bitcode enabled for simulators
- fixed GH #1114: World-write permissions on files created by daemon
- fixed GH #1087: prevent line breaks in base64-encoded creds
- fixed GH #1026: Fixes for producing the poco-1.6.2 release on a Cygwin x86 platform
- fixed GH #1022: Abbreviation in setThreadName can happen even if thread name is not too long
- fixed GH #1002: ActiveDispatcher saves reference to event context after event was
  performed until it gets new event
- fixed GH #973: overwrite existing files on windows when moving files
- fixed GH #969: Poco::File::renameTo() behaviour differs on windows and linux
- fixed GH #967: Missing data types in SQLite
- fixed GH #966: Possible crash when processing a corrupted Zip file
- fixed GH #958: Bug while reading X509Certificate subjectName
- fixed GH #937: Missing build_vs140.cmd
- fixed GH #933: Change in JSON::Object::set(key,value) behavior in 1.6.1
- fixed GH #931: make strToInt() more strict in what it accepts
- fixed GH #921: `BasicUnbufferedStreamBuf` needs to be marked for import/export
- fixed GH #848: MailMessage::_encoding is not set when retrieving plain/text message
- fixed GH #767: Inconsistency in getPath & getPathAndQuery returns
- fixed GH #724: Poco 1.6.0 is not compiled with openssl 1.0.0
- fixed GH #713: Improved support for producing Canonical XML in XMLWriter
- fixed GH #696: bug in parsing name of attachment poco c++ 1.6.0
- fixed GH #335: Compress with nonseekable
- upgraded bundled SQLite to 3.11.0
- added Poco::Crypto::X509Certificate::equals() to compare two certificates
- support for detecting Win8/Win10 in Poco::Environment
- Poco::Net::HTTPServerRequestImpl: fixed an issue with DELETE in persistent connections
- NetSSL: added Context::preferServerCiphers()
- NetSSL: added support for ECDH, new Context constructor
- NetSSL: add support for disabling certain protocols
- SMTPClientSession: added support for XOAUTH2 authentication
- Poco::Data::SessionPool: re-added customizeSession() method from 1.4.x releases
- improved SSLManager to automatically set-up a reasonable client Context if
  none is configured
- add brew OpenSSL search paths to Darwin configs
- add HTTP/1.1 version to HTTPRequest for client WebSocket, as this is required for
  most servers
- remove GCC_DIAG_OFF as this caused more issues than it solved
- respect POCO_NO_FORK_EXEC in ServerApplication (tvOS)
- tvOS and WatchOS support
- fix: need an implementation of available() for WebSocketImpl
- HTTPSessionInstantiator: respect global proxy config
- added constant for HTTP PATCH method to Poco::Net::HTTPRequest
- NumberParser::parseHex[64](): allow 0x/0X prefix


Release 1.6.1 (2015-08-03)
==========================

- added project and solution files for Visual Studio 2015
- upgraded bundled SQLite to 3.8.11.1
- fixed GH #782: Poco::JSON::PrintHandler not working for nested arrays
- fixed GH #819: JSON Stringifier fails with preserve insert order
- fixed GH #878: UUID tryParse
- fixed GH #869: FIFOBuffer::read(T*, std::size_t) documentation inaccurate
- fixed GH #861: Var BadCastException
- fixed GH #779: BUG in 1.6.0 Zip code
- fixed GH #769: Poco::Var operator== throws exception
- fixed GH #766: Poco::JSON::PrintHandler not working for objects in array
- fixed GH #763: Unable to build static with NetSSL_OpenSSL for OS X
- fixed GH #750: BsonWriter::write<Binary::Ptr> missing size ?
- fixed GH #741: Timestamp anomaly in Poco::Logger on WindowsCE
- fixed GH #735: WEC2013 build fails due to missing Poco::Path methods.
- fixed GH #722: poco-1.6.0: Unicode Converter Test confuses string and char types
- fixed GH #719: StreamSocket::receiveBytes and FIFOBuffer issue in 1.6
- fixed GH #706: POCO1.6 Sample EchoServer BUG
- fixed GH #646: Prevent possible data race in access to Timer::_periodicInerval
- DeflatingStream: do not flush underlying stream on sync() as these can cause
  corrupted files in Zip archives


Release 1.6.0 (2014-12-22)
==========================

- fixed GH #625: MongoDB ensureIndex double insert?
- fixed GH #622: Crypto: RSATest::testSign() should verify with public key only
- fixed GH #620: Data documentation sample code outdated
- fixed GH #618: OS X 10.10 defines PAGE_SIZE macro, conflicts with PAGE_SIZE in Thread_POSIX.cpp
- fixed GH #616: Visual Studio warning C4244
- fixed GH #612: OpenSSLInitializer calls OPENSSL_config but not CONF_modules_free
- fixed GH #608: (Parallel)SocketAcceptor ctor/dtor call virtual functions
- fixed GH #607: Idle Reactor high CPU usage
- fixed GH #606: HTMLForm constructor read application/x-www-form-urlencoded UTF-8 request
  body first parameter with BOM in name
- fixed GH #596: For OpenSSL 1.0.1, include openssl/crypto.h not openssl/fips.h
- fixed GH #592: Incorrect format string in Poco::Dynamic::Struct
- fixed GH #590: Poco::Data::SQlite doesn't support URI filenames
- fixed GH #564: URI::encode
- fixed GH #560: DateTime class calculates a wrong day
- fixed GH #549: Memory allocation is not safe between fork() and execve()
- fixed GH #500: SSLManager causes a crash
- fixed GH #490: 2 byte frame with payload length of 0 throws "Incomplete Frame Received" exception
- fixed GH #483: multiple cases for sqlite_busy
- fixed GH #482: Poco::JSON::Stringifier::stringify bad behaviour
- fixed GH #478: HTTPCredentials not according to HTTP spec
- fixed GH #471: vs2010 release builds have optimization disabled ?
- fixed GH #468: HTTPClientSession/HTTPResponse not forwarding exceptions
- fixed GH #438: Poco::File::setLastModified() doesn't work
- fixed GH #402: StreamSocket::receiveBytes(FIFOBuffer&) and sendBytes(FIFOBuffer&) are
  not thread safe
- fixed GH #345: Linker warning LNK4221 in Foundation for SignalHandler.obj, String.obj
  and ByteOrder.obj
- fixed GH #331: Poco::Zip does not support files with ".." in the name.
- fixed GH #318: Logger local time doesn't automatically account for DST
- fixed GH #294: Poco::Net::TCPServerParams::setMaxThreads(int count) will not accept count == 0.
- fixed GH #215: develop WinCE build broken
- fixed GH #63: Net::NameValueCollection::size() returns int
- Poco::Logger: formatting methods now support up to 10 arguments.
- added Poco::Timestamp::raw()
- Poco::DeflatingOutputStream and Poco::InflatingOutputStreams also flush underlying stream
  on flush()/sync().
- Poco::Util::Timer: prevent re-schedule of cancelled TimerTask
- enabled WinRegistryKey and WinRegistryConfiguration for WinCE
- Poco::BasicEvent improvements and preparations for future support of lambdas/std::function
- upgraded bundled sqlite to 3.8.7.2
- Poco::Thread: added support for starting functors/lambdas
- Poco::Net::HTTPClientSession: added support for global proxy configuration
- added support for OAuth 1.0/2.0 via Poco::Net::OAuth10Credentials and
  Poco::Net::OAuth20Credentials classes.
- Poco::Net::IPAddress: fixed IPv6 prefix handling issue on Windows
- added Poco::Timestamp::TIMEVAL_MIN and Poco::Timestamp::TIMEVAL_MAX
- added Poco::Clock::CLOCKVAL_MIN and Poco::Clock::CLOCKVAL_MAX
- added poco_assert_msg() and poco_assert_msg_dbg() macros
- Poco::Net::Context: fixed a memory leak if the CA file was not found while creating the
  Context object (the underlying OpenSSL context would leak)
- Poco::URI: added new constructor to create URI from Path
- Various documentation and style fixes
- Removed support (project/solution files) for Visual Studio.NET 2003 and Visual Studio 2005.
- Improved CMake support


Release 1.5.4 (2014-10-14)
==========================

- fixed GH #326: compile Net lib 1.5.2 without UTF8 support enabled
- fixed GH #518: NetworkInterface.cpp compile error w/ POCO_NO_WSTRING (1.5.3)
- Fixed MSVC 2010 warnings on large alignment
- make HTTPAuthenticationParams::parse() add value on end of string
- fixed GH #482: Poco::JSON::Stringifier::stringify bad behaviour
- fixed GH #508: Can't compile for arm64 architecture
- fixed GH #510: Incorrect RSAKey construction from istream
- fix SharedMemory for WinCE/WEC2013
- Add NIOS2 double conversion detection, fixes compile errors
- added VS2013 project/solution files for Windows Embedded Compact 2013
- added Process::isRunning()
- NetSSL: Fix typo in documentation
- NetSSL_OpenSSL: support for TLS 1.1 and 1.2
- Zip: Added CM_AUTO, which automatically selects CM_STORE or CM_DEFLATE based
  on file extension. Used to avoid double-compression of already compressed file
  formats such as images.
- added %L modifier to PatternFormatter to switch to local time
- removed unnecessary explicit in some multi-arg constructors
- Allow SecureStreamSocket::attach() to be used in server connections
- added Var::isBoolean() and fixed JSON stringifier
- added poco_unexpected() macro invoking Bugcheck::unexpected() to deal
  with unexpected exceptions in destructors
- fixed GH #538 prevent destructors from throwing exceptions
- improved HTTP server handling of errors while reading header
- fixed GH #545: use short for sign
- upgraded SQLite to 3.8.6
- fixed GH #550 WebSocket fragmented message problem
- improved HTTPClientSession handling of network errors while sending the request
- updated bundled PCRE to 8.35.0
- fixed GH #552: FIFOBuffer drain() problem
- fixed GH #402: StreamSocket::receiveBytes(FIFOBuffer&) and sendBytes(FIFOBuffer&) are
  not thread safe
- HTTPCookie: fix documentation for max age
- added Timestamp::raw() and Clock::raw()
- Poco::Buffer properly handles zero-sized buffers
- GH #512: Poco:Data:ODBC:Binder.h causes a crash
- Added Crypto_Win and NetSSL_Win libraries which are re-implementations of existing
  Crypto and NetSSL_OpenSSL libraries based on WinCrypt/Schannel. The new libraries
  can be used as an almost drop-in replacement for the OpenSSL based libraries on
  Windows and Windows Embedded Compact platforms. Only available from GitHub for now.


Release 1.5.3 (2014-06-30)
==========================

- fixed GH# 316: Poco::DateTimeFormatter::append() gives wrong result for
  Poco::LocalDateTime
- Poco::Data::MySQL: added SQLite thread cleanup handler
- Poco::Net::X509Certificate: improved and fixed domain name verification for
  wildcard domains
- added Poco::Clock class, which uses a system-provided monotonic clock
  (if available) and is thus not affected by system realtime clock changes.
  Monotonic Clock is available on Windows, Linux, OS X and on POSIX platforms
  supporting clock_gettime() and CLOCK_MONOTONIC.
- Poco::Timer, Poco::Stopwatch, Poco::TimedNotificationQueue and Poco::Util::Timer
  have been changed to use Poco::Clock instead of Poco::Timestamp and are now
  unaffected by system realtime clock changes.
- fixed GH# 350: Memory leak in Data/ODBC with BLOB
- Correctly set MySQL time_type for Poco::Data::Date.
- fixed GH #352: Removed redundant #includes and fixed spelling mistakes.
- fixed setting of MYSQL_BIND is_unsigned value.
- fixed GH #360: CMakeLists foundation: add Clock.cpp in the list of source files
- Add extern "C" around <net/if.h> on HPUX platform.
- added runtests.sh
- fixed CPPUNIT_IGNORE parsing
- fixed Glob from start path, for platforms not alowing transverse from root (Android)
- added NTPClient (Rangel Reale)
- added PowerShell build script
- added SmartOS build support
- fix warnings in headers
- XMLWriter: removed unnecessary apostrophe escaping (&apos)
- MongoDB: use Int32 for messageLength
- fixed GH #380: SecureSocket+DialogSocket crashes with SIGSEGV when timeout occours
- Improve RSADigestEngine, using Poco::Crypto::DigestEngine to calculate hash before signing
- added Poco::PBKDF2Engine
- Fixed GH #380: SecureSocket+DialogSocket crashes with SIGSEGV when timeout occours
- added support for a 'Priority' attribute on cookies.
- GH #386: fixed bug in MailMessage without content-transfer-encoding header
- GH #384: ew hash algorithms support for RSADigestEngine
- fixed Clock overflow bug on Windows
- Poco::ByteOrder now uses intrinsics, if available
- CMake: added /bigobj option for msvc
- Fix typo to restore Net/TestSuite_x64_vs120 build
- correct path for CONFIGURE_FILE in CMakeLists.txt
- Building Poco 1.5.2 for Synology RS812+ (Intel Atom) (honor POCO_NO_INOTIFY)
- added WEC2013 support to buildwin.cmd and buildwin.ps1
- HTMLForm: in URL encoding, percent-encode more characters
- Fixed #include <linux/if.h> conflict with other libraries
- Poco::Net::X509Certificate::verify() no longer uses DNS reverse lookups to validate host names
- cert hostname validation is case insensitive and stricter for wildcard certificates
- TCPServer: do not reduce the capacity of the default ThreadPool
- added POCO_LOG_DEBUG flag
- Zip: fixed a crash caused by an I/O error
- added runtest script for windows
- added SQlite Full Text Search support
- added Thread::trySleep() and Thread::wakeUp()
- fixed GH #410: Bug in JSON::Object.stringify() in 1.5.2
- fixed GH #362: Defect in Var::parseString when there is no space between value and newline
- fixed GH #314: JSON parsing bug
- added GH #313: MetaColumn additions for Data::ODBC and Data::SQLite
- fixed GH #346: Make Poco::Data::Date and Poco::Data::Time compare functions const.
- fixed GH #341: Compiling poco-1.5.2 for Cygwin
- fixed GH #305: There are bugs in Buffer.h
- fixed GH #321: trivial build fixes (BB QNX build)
- fixed GH #440: MongoDB ObjectId string formatting
- added SevenZip library (Guenter Obiltschnig)
- fixed GH #442: Use correct prefix length field of Windows IP_ADAPTER_PREFIX structure
- improved GH #328: NetworkInterface on Windows XP
- fixed GH #154 Add support for MYSQL_TYPE_NEWDECIMAL to Poco::Data::MySQL
- fixed GH #290: Unicode support
- fixed GH #318: Logger local time doesn't automatically account for DST
- fixed GH #363: DateTimeParser tryParse/parse
- added HTMLForm Content-Length calculation (Rangel Reale)
- Make TemporaryFile append a slash to tempDir
- fixed GH #319 android build with cmake
- added hasDelegates() method to AbstractEvent
- fixed GH #230: Poco::Timer problem
- fixed GH #317: Poco::Zip does not support newer Zip file versions.
- fixed GH #176: Poco::JSON::Stringifier UTF encoding
- fixed GH #458: Broadcast address and subnet mask for IEEE802.11 network interface
- fixed GH #456: poco: library install dirs per RUNTIME/LIBRARY/ARCHIVE


Release 1.5.2 (2013-09-16)
==========================

- added MongoDB library
- fixed GH #57: poco-1.5.1: Doesn't compile for Android
- added VoidEvent (Arturo Castro)
- fixed GH #80: NumberFormatter::append broken
- fixed GH #93: ParallelSocketAcceptor virtual functions
- optional small object optimization for IPAddress, SocketAddress, Any and Dynamic::Var
- SQLite events (insert, update, delete, commit, rollback) handlers
- merged GH #91: Improve SQLite multi-threaded use (Rangel Reale)
- merged GH #86: Invalid pointers to vector internals (Adrian Imboden)
- automatic library initialization macros
- fixed GH #110: WebSocket accept() fails when Connection header contains multiple tokens
- fixed GH #71: WebSocket and broken Timeouts (POCO_BROKEN_TIMEOUTS)
- fixed a warning in Poco/Crypto/OpenSSLInitializer.h
- fixed GH #109: Bug in Poco::Net::SMTPClientSession::loginUsingPlain
- added clang libc++ build configurations for Darwin and iPhone (Andrea Bigagli)
- fixed GH #116: Wrong timezone parsing in DateTimeParse (Matej Knopp)
- fixed GH #118: JSON::Object::stringify endless loop
- added Recursive and SortedDirectoryIterator (Marian Krivos)
- added ListMap (map-like container with preserving insertion order)
- MailMessage: attachments saving support and consistent read/write
- fixed GH #124: Possible buffer overrun in Foundation/EventLogChannel
- fixed GH #119: JSON::Object holds values in ordered map
- added JSON::PrintHandler
- renamed JSON::DefaultHandler to ParseHandler (breaking change!)
- fixed GH #127: Eliminate -Wshadow warnings
- fixed GH #79: Poco::Thread leak on Linux
- fixed GH #61: static_md build configs for Crypto and NetSSL
- fixed GH #130: prefer sysconf over sysctlbyname
- fixed GH #131: no timezone global var on OpenBSD
- fixed GH #102: Some subprojects don't have x64 solutions for VS 2010
- added GH #75: Poco::Uri addQueryParameter method
- Poco::Environment::osDisplayName() now recognizes Windows 8/Server 2012
- fixed GH #140: Poco::Runnable threading cleanup issue
- simplified default TCP/HTTPServer construction
- fixed GH #141: Application::run() documentation/implementation discrepancy
- changed RowFormatter to SharedPtr<RowFormatter> in Data::RecordSet interface (breaking change!)
- fixed GH #144: Poco::Dynamic emits invalid JSON
- removed naked pointers from Data interfaces
- fixed GH #82: name conflict in Data::Keywords::bind
- fixed GH #157: MySQL: cannot bind to 'long' data type on Windows/Visual C++
- fixed GH #158: MySQL: MYSQL_BIND 'is_unsigned' member is not set
- fixed GH #160: MultipartReader ignores first part, if preamble is missing
- fixed GH #156: Possible buffer overrun in Foundation/EventLogChannel
- XML: fixed an issue with parsing a memory buffer > 2 GB
- upgraded to expat 2.1.0
- Data/ODBC: added support for setting query timeout (via setProperty
  of "queryTimeout"). Timeout is int, given in seconds.
- fixed a potential endless loop in SecureStreamSocketImpl::sendBytes()
  and also removed unnecessary code.
- fixed GH #159: Crash in openssl CRYPTO_thread_id() after library libPocoCrypto.so
  has been unloaded.
- fixed GH #155: MailOutputStream mangles consecutive newline sequences
- fixed GH #139: FileChannel::PROP_FLUSH is invalid (contains a tab character)
- fixed GH #173: HTTPClientSession::proxyConnect forces DNS lookup of host names
- fixed GH #194: MessageNotification constructor is inefficient.
- fixed GH #189: Poco::NumberParser::tryParse() documentation bug
- fixed GH #172: IPv6 Host field is stripped of Brackets in HTTPClientSession
- fixed GH #188: Net: SocketAddress operator < unusable for std::map key
- fixed GH #128: DOMWriter incorrectly adds SYSTEM keyword to DTD if PUBLIC is
  already specified
- fixed GH #65: Poco::format() misorders sign and padding specifiers
- upgraded bundled SQLite to 3.7.17
- replaced JSON parser with Poco::Web::JSON parser (from sandbox)
- added JSON conversion to Dynamic Struct and Array
- added VarIterator
- modified behavior of empty Var (empty == empty)
- added Alignment.h header for C++03 alignment needs
- added Data/WebNotifier (DB, WebSocket) example
- fixed GH #209: Poco::NumberFormatter double length
- fixed GH #204: Upgrade zlib to 1.2.8
- fixed GH #198: The "application.configDir" property is not always created.
- fixed GH #185: Poco::NumberFormatter::format(double value, int precision)
  ignore precision == 0
- fixed GH #138: FreeBSD JSON tests fail
- fixed GH #99: JSON::Query an JSON::Object
- limited allowed types for JSON::Query to Object, Array, Object::Ptr,
  Array::Ptr and empty
- fixed GH #175: HTMLForm does not read URL parameters on POST or PUT
- added GH #187: MySQL: allow access to the underlying connection handle
- added GH #186: MySQL: support for MYSQL_SECURE_AUTH
- fixed GH #174: MySQL: 4GB allocated when reading any largetext or largeblob field
- fixed a potential memory leak in Poco::Net::HTTPClientSession if it is misused
  (e.g., sendRequest() is sent two times in a row without an intermediate call to
  receiveResponse(), or by calling receiveResponse() two times in a row without
  an intermediate call to sendRequest()) - GH #217
- removed a few unnecessary protected accessor methods from Poco::Net::HTTPClientSession
  that would provide inappropriate access to internal state
- merged GH #210: Don't call CloseHandle() twice on Windows; Ability to select the
  threadpool that will be used to start an Activity(Patrice Tarabbia)
- fixed GH #212: JSONConfiguration was missing from the vs90 project(Patrice Tarabbia)
- fixed GH #220: add qualifiers for FPEnvironment in C99 (Lucas Clemente)
- fixed GH #222: HTTPCookie doesn't support expiry times in the past (Karl Reid)
- fixed GH #224: building 1.5.1 on Windows for x64
- fixed GH# 233: ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool ipV6Only) does not work
- fixed GH# 231: Compatibility issue with Poco::Net::NetworkInterface
- fixed GH# 236: Bug in RecursiveDirectoryIterator
- added ColorConsoleChannel and WindowsColorConsoleChannel classes supporting
  colorizing log messages
- fixed GH# 259: Poco::EventLogChannel fails to find 64bit Poco Foundation dll
- fixed GH# 254: UTF8::icompare unexpected behavior
- Poco::UUID::tryParse() also accepts UUIDs without hyphens. Also updated documentation
  (links to specifications).
- added GH# 268: Method to get JSON object value using Poco::Nullable
- fixed GH# 267: JSON 'find' not returning empty result if object is expected but another value is found
- Added support for ARM64 architecture and iPhone 5s 64-bit builds
  (POCO_TARGET_OSARCH=arm64).


Release 1.5.1 (2013-01-11)
==========================

- using double-conversion library for floating-point numeric/string conversions
- added Poco::istring (case-insensitive string) and Poco::isubstr
- added SQLite sys.dual (in-memory system table)
- applied SF Patch #120: The ExpireLRUCache does not compile with a tuple as key on Visual Studio 2010
- fixed SF Bug #599: JSON::Array and JSON::Object size() member can implicitly lose precision
- fixed SF Bug #602: iterating database table rows not correct if no data in table
- fixed SF Bug #603: count() is missing in HashMap
- fixed GH #23: JSON::Object::stringify throw BadCastException
- fixed GH #16: NetworkInterface::firstAddress() should not throw on unconfigured interfaces
- Android compile/build support (by Rangel Reale)
- TypeHandler::prepare() now takes const-reference
- fixed GH #27: Poco::URI::decode() doesn't properly handle '+'
- fixed GH #31: JSON implementation bug
- fixed SF #597: Configure script ignores cflags
- fixed SF #593: Poco 1.5.0 on FreeBSD: cannot find -ldl
- added SF #542: SocketAddress() needs port-only constructor
- fixed SF #215: Wrong return type in SocketConnector.h
- applied SF Patch #97: fix c++0x / clang++ bugs
- fixed GH32/SF596: Poco::JSON: Parsing long integer (int64) value fails.
- added Net ifconfig sample (contributed by Philip Prindeville)
- merged GH #34: add algorithm header (Roger Meier/Philip Prindeville)
- fixed GH #26: Cannot compile on gcc
- merged SF #111: FTP Client logging (Marian Krivos)
- fixed GH #30: Poco::Path::home() throws when called from Windows Service
- fixed GH #22: MySQL connection string lowercased
- added MySQL support for Date/Time
- upgraded SQLite to version 3.7.15.1 (2012-12-19)
- improved SQLite execute() return (affected rows) value and added tests
- added SQLite::Utility::isThreadSafe() function
- added SQLite::Utility::setThreadMode(int mode) function
- fixed GH #36: 'distclean' requires 3 traversals of project tree
- fixed GH #41: Buffer::resize crash
- fixed GH #42: Linux unbundled builds don't link
- fixed GH #44: Problems with win x64 build
- fixed GH #46: 1.5.1 build fails on OS X when using libc++
- fixed GH #48: Need getArgs() accessor to Util::Application to retrieve start-up arguments
- fixed GH #49: NetworkInterface::list doesn't return MAC addresses
- fixed GH #51: Android should use isfinite, isinf, isnan and signbit from the std namespace
- fixed GH #53: JSON unicode fixes and running tests on invalid unicode JSON
- added ParallelAcceptor and ParallelReactor classes
- added EOF and error to FIFOBuffer


Release 1.5.0 (2012-10-14)
==========================

- added JSON library
- added Util::JSONConfiguration
- added FIFOBuffer and FIFOBufferStream
- fixed SF# 3522906: Unregistering handlers from SocketReactor
- fixed SF# 3522084: AbstractConfiguration does not support 64-bit integers
- HTTPServer::stopAll(): close the socket instead of just shutting it down, as the latter won't wake up a select() on Windows
- added SMTPLogger
- added cmake support
- fixed SF#3538778: NetworkInterface enumeration uses deprecated API
- fixed SF#3538779: IPAddress lacks useful constructors: from prefix mask, native SOCKADDR
- fixed SF#3538780: SocketAddress needs operator < function
- fixed SF#3538775: Issues building on Fedora/Centos, etc. for AMD64
- fixed SF#3538786: Use size_t for describing data-blocks in DigestEngine
- added IPAddress bitwise operators (&,|,^,~)
- added IPAddress BinaryReader/Writer << and >> operators
- modified IPAddress to force IPv6 to lowercase (RFC 5952)
- fixed SF#3538785: SMTPClientSession::sendMessage() should take recipient list
- added IPAddress::prefixLength()
- UTF portability improvements
- fixed SF#3556186: Linux shouldn't use <net/if.h> in Net/SocketDefs.h
- added IPAddress RFC 4291 compatible site-local prefix support
- fixed SF#3012166: IPv6 patch
- added SF#3558085: Add formatter to MACAddress object
- fixed SF#3552774: Don't hide default target in subordinate makefile
- fixed SF#3534307: Building IPv6 for Linux by default
- fixed SF#3516844: poco missing symbols with external >=lipcre-8.13
- added SF#3544720: AbstractConfigurator to support 64bit values
- fixed SF#3522081: WinRegistryConfiguration unable to read REG_QWORD values
- fixed SF#3563626: For Win32 set Up/Running flags on NetworkInterface
- fixed SF#3560807: Deprecate setPeerAddress() as this is now done in getifaddrs
- fixed SF#3560776: Fix byte-ordering issues with INADDR_* literals
- fixed SF#3563627: Set IP address on multicast socket from socket family
- fixed SF#3563999: Size BinaryWriter based on buffer's capacity(), not size()
- fixed SF#102 Fix building Poco on Debian GNU/kFreeBSD
- fixed SF#321 Binding DatTime or Timestamp
- fixed SF#307 Detect the SQL driver type at run time
- added VS 2012 Projects/Solutions
- enhanced and accelerated numeric parsing for integers and floats
- fixed SF#590 Segfault on FreeBSD when stack size not rounded
- added warn function and warnmsg macro in CppUnit
- fixed SF# 3558012 Compilation fails when building with -ansi or -std=c++0x
- fixed SF# 3563517 Get rid of loss-of-precision warnings on x64 MacOS
- fixed SF#3562244: Portability fix for AF_LINK
- fixed SF #3562400: DatagramSocketImpl comment is incorrect


Release 1.4.7p1 (2014-11-25)
============================

- Fixed Visual C++ 2010-2013 project files. Release builds now have optimization enabled.
- Poco::URI: added constructor to create URI from Path.
- fixed GH #618: OS X 10.10 defines PAGE_SIZE macro, conflicts with PAGE_SIZE in Thread_POSIX.cpp
- Poco::Net::HTTPClientSession: added support for global proxy configuration
- fixed GH #331: Poco::Zip does not support files with .. in the name.
- fixed a memory leak in Poco::Net::Context constructor when it fails to load the certificate
  or private key files.
- upgraded bundled SQLite to 3.8.7.2
- fixed GH #229: added missing value() function
- fixed GH #69: MySQL empty text/blob


Release 1.4.7 (2014-10-06)
==========================

- fixed GH #398: PropertyFileConfiguration: input != output
- fixed GH #368: Build failure of Poco 1.4.6p2 on FreeBSD 9.2
- fixed GH #318: Logger local time doesn't automatically account for DST
- fixed GH #317: Poco::Zip does not support newer Zip file versions.
- fixed GH #454: Fix: handle unhandled exceptions
- fixed GH #463: XML does not compile with XML_UNICODE_WCHAR_T
- fixed GH #282: Using Thread in a global can cause crash on Windows
- fixed GH #424: Poco::Timer deadlock
- fixed GH #465: Fix result enum type XML_Error -> XML_Status
- fixed GH #510: Incorrect RSAKey construction from istream
- fixed GH #332: POCO::ConsoleChannnel::initColors() assigns no color to
  PRIO_TRACE and wrong color to PRIO_FATAL
- fixed GH #550: WebSocket fragmented message problem
- Poco::Data::MySQL: added SQLite thread cleanup handler
- Poco::Net::X509Certificate: improved and fixed domain name verification for
  wildcard domains
- fixed a crash in Foundation testsuite with Visual C++ 2012
- improved and fixed domain name verification for wildcard domains in
  Poco::Net::X509Certificate
- updated TwitterClient sample to use new 1.1 API and OAuth
- added Poco::Clock class, which uses a system-provided monotonic clock
  (if available) and is thus not affected by system realtime clock changes.
  Monotonic Clock is available on Windows, Linux, OS X and on POSIX platforms
  supporting clock_gettime() and CLOCK_MONOTONIC.
- Poco::Timer, Poco::Stopwatch, Poco::TimedNotificationQueue and Poco::Util::Timer
  have been changed to use Poco::Clock instead of Poco::Timestamp and are now
  unaffected by system realtime clock changes.
- added Poco::PBKDF2Engine class template
- Poco::Net::HTTPCookie: added support for Priority attribute (backport from develop)
- fixed makedepend.* scripts to work in paths containing '.o*'
  (contributed by Per-Erik Bjorkstad, Hakan Bengtsen)
- Upgraded bundled SQLite to 3.8.6
- Support for Windows Embedded Compact 2013 (Visual Studio 2012)
- Project and solution files for Visual Studio 2013
- Changes for C++11 compatibility.
- fixed an issue with receiving empty web socket frames (such as ping)
- improved error handling in secure socket classes
- Poco::ByteOrder now uses intrinsics if available
- added new text encoding classes: Latin2Encoding, Windows1250Encoding, Windows1251Encoding
- Zip: Added CM_AUTO, which automatically selects CM_STORE or CM_DEFLATE based on file extension.
  Used to avoid double-compression of already compressed file formats such as images.


Release 1.4.6p4 (2014-04-18)
============================

- no longer use reverse DNS lookups for cert hostname validation
- cert hostname validation is case insensitive and more strict
- HTMLForm: in URL encoding, percent-encode more special characters
- fixed thread priority issues on POSIX platforms with non-standard scheduling policy
- XMLWriter no longer escapes apostrophe character
- fixed GH #316: Poco::DateTimeFormatter::append() gives wrong result for Poco::LocalDateTime
- fixed GH #305 (memcpy in Poco::Buffer uses wrong size if type != char)
- Zip: fixed a crash caused by an I/O error (e.g., full disk) while creating a Zip archive


Release 1.4.6p3 (2014-04-02)
============================

- Fixed a potential security vulnerability in client-side X509
  certificate verification.


Release 1.4.6p2 (2013-09-16)
============================

- fixed GH #156: Possible buffer overrun in Foundation/EventLogChannel
- XML: fixed an issue with parsing a memory buffer > 2 GB
- upgraded to expat 2.1.0
- Data/ODBC: added support for setting query timeout (via setProperty
  of "queryTimeout"). Timeout is int, given in seconds.
- fixed a potential endless loop in SecureStreamSocketImpl::sendBytes()
  and also removed unnecessary code.
- fixed GH #159: Crash in openssl CRYPTO_thread_id() after library libPocoCrypto.so
  has been unloaded.
- fixed GH #155: MailOutputStream mangles consecutive newline sequences
- fixed GH# 139: FileChannel::PROP_FLUSH is invalid (contains a tab character)
- fixed GH# 173: HTTPClientSession::proxyConnect forces DNS lookup of host names
- fixed GH# 194: MessageNotification constructor is inefficient.
- fixed GH# 189: Poco::NumberParser::tryParse() documentation bug
- fixed GH# 172: IPv6 Host field is stripped of Brackets in HTTPClientSession
- fixed GH# 188: Net: SocketAddress operator < unusable for std::map key
- fixed GH# 128: DOMWriter incorrectly adds SYSTEM keyword to DTD if PUBLIC is
  already specified
- fixed GH# 65: Poco::format() misorders sign and padding specifiers
- upgraded bundled SQLite to 3.7.17
- upgraded bundled zlib to 1.2.8
- fixed a potential memory leak in Poco::Net::HTTPClientSession if it is misused
  (e.g., sendRequest() is sent two times in a row without an intermediate call to
  receiveResponse(), or by calling receiveResponse() two times in a row without
  an intermediate call to sendRequest()) - GH #217
- removed a few unnecessary protected accessor methods from Poco::Net::HTTPClientSession
  that would provide inappropriate access to internal state
- fixed GH# 223 (Poco::Net::HTTPCookie does not support expiry times in the past)
- fixed GH# 233: ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool ipV6Only)
  does not work
- added ColorConsoleChannel and WindowsColorConsoleChannel classes supporting
  colorizing log messages
- fixed GH# 259: Poco::EventLogChannel fails to find 64bit Poco Foundation dll
- fixed GH# 254: UTF8::icompare unexpected behavior
- Poco::UUID::tryParse() also accepts UUIDs without hyphens. Also updated documentation
  (links to specifications).
- Added support for ARM64 architecture and iPhone 5s 64-bit builds
  (POCO_TARGET_OSARCH=arm64).


Release 1.4.6p1 (2013-03-06)
============================

- fixed GH# 71: WebSocket and broken Timeouts (POCO_BROKEN_TIMEOUTS)
- fixed an ambiguity error with VC++ 2010 in Data/MySQL testsuite
- Poco::Net::NetworkInterface now provides the interface index even for IPv4
- added DNS::reload() as a wrapper for res_init().
- On Linux, Poco::Environment::nodeId() first always tries to obtain the
  MAC address of eth0, before looking for other interfaces.
- Poco::Net::HTTPSession now always resets the buffer in connect() to clear
  any leftover data from a (failed) previous session
- fixed copysign namespace issue in FPEnvironment_DUMMY.h
- fixed a warning in Poco/Crypto/OpenSSLInitializer.h
- added a build configuration for BeagleBoard/Angstrom
- fixed GH# 109: Bug in Poco::Net::SMTPClientSession::loginUsingPlain)
- fixed compile errors with clang -std=c++11
- fixed GH# 116: Wrong timezone parsing in DateTimeParse (fix by Matej Knopp)
- updated bundled SQLite to 3.7.15.2


Release 1.4.6 (2013-01-10)
==========================

- changed FPEnvironment_DUMMY.h to include <cmath> instead of <math.h>
- updated bundled SQLite to 3.7.15.1
- fixed GH# 30: Poco::Path::home() throws
- fixed SF Patch# 120 The ExpireLRUCache does not compile with a tuple as key on VS2010
- fixed SF# 603 count() is missing in HashMap
- Crypto and NetSSL_OpenSSL project files now use OpenSSL *MD.lib library files for
  static_md builds. Previously, the DLL import libs were used.
- Poco::Environment::osDisplayName() now recognizes Windows 8/Server 2012


Release 1.4.5 (2012-11-19)
==========================

- added Visual Studio 2012 project files
- buildwin.cmd now support building with msbuild for VS2010 and 2012.
- added Poco::Optional class
- fixed SF# 3558012 Compilation fails when building with -ansi or -std=c++0x
- fixed SF# 3563517 Get rid of loss-of-precision warnings on x64 MacOS
- fixed SF# 3562244: Portability fix for AF_LINK
- fixed SF# 3562400: DatagramSocketImpl comment
- fixed SF# 594: Websocket fails with small masked payloads
- fixed SF# 588: Missing POCO_ARCH and POCO_ARCH_LITTLE_ENDIAN define for WinCE on SH4
- fixed SF# 581: Out-of-bound array access in Unicode::properties() function.
- fixed SF# 590: Segfault on FreeBSD when stack size not rounded
- fixed SF# 586: Poco::DateTimeParser and ISO8601 issues when seconds fraction has more than 6 digits
- Poco::Net::HTTPSSessionInstantiator::registerInstantiator() now optionally accepts a
  Poco::Net::Context object.
- added Poco::XML::XMLWriter::depth() member function.
- added Poco::XML::XMLWriter::uniquePrefix() and Poco::XML::XMLWriter::isNamespaceMapped().
- Poco::FileChannel now supports a new rotateOnOpen property (true/false) which can be used
  to force rotation of the log file when it's opened.
- fixed a bug in Poco::XML::XMLWriter::emptyElement(): need to pop namespace context
- OS X builds now use Clang as default compiler
- Updated SQLite to 3.7.14.1
- POCO_SERVER_MAIN macro now has a try ... catch block for Poco::Exception and writes
  the displayText to stderr.
- Poco/Platform.h now defines POCO_LOCAL_STATIC_INIT_IS_THREADSAFE macro if the compiler
  generates thread-safe static local initialization code.


Release 1.4.4 (2012-09-03)
==========================

- ZipStream now builds correctly in unbundled build.
- added proxy digest authentication support to Net library
- integrated MySQL BLOB fixes from Franky Braem.
- use standard OpenSSL import libraries (libeay32.lib, ssleay32.lib) for Crypto and
  NetSSL_OpenSSL Visual Studio project files.
- fixed a potential buffer corruption issue in Poco::Net::SecureStreamSocket if lazy
  handshake is enabled and the first attempt to complete the handshake fails
- Poco::DateTimeParser::tryParse() without format specifier now correctly parses ISO8601
  date/times with fractional seconds.
- Poco::Process::launch() now has additional overloads allowing to specify an initial
  directory and/or environment.
- Poco::Net::FTPClientSession: timeout was not applied to data connection, only to
  control connection.
- Fixed potential IPv6 issue with socket constructors if IPv6 SocketAddress is given
  (contributed by ??????? ????????? <milovidov@yandex-team.ru>).
- Added an additional (optional) parameter to Poco::Thread::setOSPriority() allowing to
  specify a scheduling policy. Currently this is only used on POSIX platforms and allows
  specifying SCHED_OTHER (default), SCHED_FIFO or SCHED_RR, as well as other
  platform-specific policy values.
- Added Poco::Crypto::DigestEngine class providing a Poco::DigestEngine interface to
  the digest algorithms provided by OpenSSL.
- Fixed some potential compiler warnings in Crypto library
- In some cases, when an SSL exception was unexpectedly closed, a generic Poco::IOException
  was thrown. This was fixed to throw a SSLConnectionUnexpectedlyClosedException instead.
- Added Poco::ObjectPool class template.
- Poco::Net::HTTPServer has a new stopAll() method allowing stopping/aborting of all
  currently active client connections.
- The HTTP server framework now actively prevents sending a message body in the
  response to a HEAD request, or in case of a 204 No Content or 304 Not Modified
  response status.
- fixed a DOM parser performance bug (patch by Peter Klotz)
- fixed SF# 3559325: Util Windows broken in non-Unicode
- updated iOS build configuration to use xcode-select for finding toolchain
- Poco::Net::SecureSocketImpl::shutdown() now also shuts down the underlying socket.
- fixed SF# 3552597: Crypto  des-ecb error
- fixed SF# 3550553: SecureSocketImpl::connect hangs
- fixed SF# 3543047: Poco::Timer bug for long startInterval/periodic interval
- fixed SF# 3539695: Thread attributes should be destroyed using the pthread_attr_destroy()
- fixed SF# 3532311: Not able to set socket option on ServerSocket before bind
  Added Poco::Net::Socket::init(int af) which can be used to explicitely
  initialize the underlying socket before calling bind(), connect(), etc.
- fixed SF# 3521347: Typo in UnWindows.h undef
- fixed SF# 3519474: WinRegistryConfiguration bug
  Also added tests and fixed another potential issue with an empty root path passed to the constructor.
- fixed SF# 3516827: wrong return value of WinRegistryKey::exists()
- fixed SF# 3515284: RSA publickey format(X.509 SubjectPublicKeyInfo)
- fixed SF# 3503267: VxWorks OS prio is not set in standard constructor
- fixed SF# 3500438: HTTPResponse failure when reason is empty
- fixed SF# 3495656: numberformater, numberparser error in mingw
- fixed SF# 3496493: Reference counting broken in TaskManager postNotification
- fixed SF# 3483174: LogFile flushing behavior on Windows
  Flushing is now configurable for FileChannel and SimpleFileChannel
  using the "flush" property (true or false).
- fixed SF# 3479561: Subsequent IPs on a NIC is not enumerated
- fixed SF# 3478665: Permission checks in Poco::File not correct for root
- fixed SF# 3475050: Threading bug in initializeNetwork() on Windows
- fixed SF# 3552680: websocket small frames bug and proposed fix
- fixed a WebSocket interop issue with Firefox
- added Poco::Net::MessageHeader::hasToken()
- Poco::AtomicCounter now uses GCC 4.3 builtin atomics on more platforms
- fixed SF# 3555938: NetSSL: socket closed twice
- socket exceptions now include OS error code
- fixed SF# 3556975: Need to fix Shared Memory for memory map
- Poco::Net::SecureSocketImpl::close() now catches exceptions thrown by its call to shutdown().
- fixed SF# 3535990: POCO_HAVE_IPv6 without POCO_WIN32_UTF8 conflict
- fixed SF# 3559665: Poco::InflatingInputStream may not always inflate completely
- added Poco::DirectoryWatcher class
- fixed SF# 3561464: Poco::File::isDevice() can throw due to sharing violation
- Poco::Zip::Compress::addRecursive() has a second variant that allows to specify the compression method.
- Upgraded internal SQLite to 3.7.14


Release 1.4.3p1 (2012-01-23)
============================

- fixed SF# 3476926: RegDeleteKeyEx not available on Windows XP 32-bit


Release 1.4.3 (2012-01-16)
==========================

- fixed a compilation error with Data/MySQL on QNX.
- fixed Util project files for WinCE (removed sources not compileable on CE)
- removed MD2 license text from Ackowledgements document
- fixed iPhone build config for Xcode 4.2 (compiler name changed to llvm-g++)
- Poco::Util::XMLConfiguration: delimiter char (default '.') is now configurable.
  This allows for working with XML documents having element names with '.' in them.
- Poco::Util::OptionProcessor: Required option arguments can now be specified as
  separate command line arguments, as in "--option value" in addition to the
  "--option=value" format.
- Poco::Util::HelpFormatter: improved option help formatting if  indentation has
  been set explicitely.
- added Mail sample to NetSSL_OpenSSL, showing use of Poco::Net::SecureSMTPClientSession.
- added additional read() overloads to Poco::Net::HTMLForm.
- fixed SF# 3440769: Poco::Net::HTTPResponse doesn't like Amazon EC2 cookies.
- added support for requiring TLSv1 to Poco::Net::Context.
- added an additional constructor to Poco::Net::HTTPBasicCredentials, allowing
  the object to be created from a string containing a base64-encoded, colon-separated
  username and password.
- Poco::Zip::ZipStreamBuf: fixed a crash if CM_STORE was used.
- Added setContentLength64() and getContentLength64() to Poco::Net::HTTPMessage.
- added Poco::Environment::osDisplayName().
- fixed SF# 3463096: WinService leaves dangling handles (open() now does not reopen the
  service handle if it's already open)
- fixed SF# 3426537: WinRegistryConfiguration can't read virtualized keys
- added Poco::Buffer::resize()
- fixed SF# 3441822: thread safety issue in HTTPClientSession:
  always use getaddrinfo() instead of gethostbyname() on all platforms supporting it
- added version resource to POCO DLLs
- fixed SF# 3440599: Dir Path in Quotes in PATH cause PathTest::testFind to fail.
- fixed SF# 3406030: Glob::collect problem
- added Poco::Util::AbstractConfiguration::enableEvents()
- Poco::AtomicCounter now uses GCC builtins with GCC 4.1 or newer
  (contributed by Alexey Milovidov)
- made Poco::Logger::formatDump() public as it may be useful for others as well
  (SF# 3453446)
- Poco::Net::DialogSocket now has a proper copy constructor (SF# 3414602)
- Poco::Net::MessageHeader and Poco::Net::HTMLForm now limit the maximum number of
  fields parsed from a message to prevent certain kinds of denial-of-service
  attacks. The field limit can be changed with the new method setFieldLimit().
  The default limit is 100.
- Poco::NumberFormatter, Poco::NumberParser and Poco::format() now always use the
  classic ("C") locale to format and parse floating-point numbers.
- added Poco::StreamCopier::copyStream64(), Poco::StreamCopier::copyStreamUnbuffered64()
  and Poco::StreamCopier::copyToString64(). These functions use a 64-bit integer
  to count the number of bytes copied.
- upgraded internal zlib to 1.2.5
- upgraded internal sqlite to 3.7.9
- XML: integrated bugfix for Expat bug# 2958794 (memory leak in poolGrow)
- Added support for HTTP Digest authentication (based on a contribution by
  Anton V. Yabchinskiy (arn at bestmx dot ru)). For information on how
  to use this, see the Poco::Net::HTTPCredentials, Poco::Net::HTTPDigestCredentials
  and Poco::Net::HTTPAuthenticationParams classes.
- Poco::Net::HTTPStreamFactory and Poco::Net::HTTPSStreamFactory now support Basic
  and Digest authentication. Username and password must be provided in the URI.
- added Poco::Net::WebSocket, supporting the WebSocket protocol as described in RFC 6455
- NetSSL_OpenSSL: added client-side support for Server Name Indication.
  Poco::Net::SecureSocketImpl::connectSSL() now calls SSL_set_tlsext_host_name()
  if its available (OpenSSL 9.8.6f and later).
- added Poco::Net::HTTPClientSession::proxyConnect() (factored out from
  Poco::Net::HTTPSClientSession::connect())
- added Poco::Process::kill(const Poco::ProcessHandle&) which is preferable to
  kill(pid) on Windows, as process IDs on Windows may be reused.
- fixed SF# 3471463: Compiler warnings with -Wformat
- Poco::Util::Application::run() now catches and logs exceptions thrown in initialize()
- Fixed a WinCE-specific bug in Poco::Util::ServerApplication where uninitialize() would
  be called twice.
- fixed SF# 3471957: WinRegistryKey::deleteKey() unable to delete alt views
- Added additional constructor to Poco::ScopedLock and Poco::ScopedLockWithUnlock
  accepting a timeout as second argument.
- Added Poco::Logger::parseLevel()
- Poco::format(): an argument that does not match the format
  specifier no longer results in a BadCastException. The string [ERRFMT] is
  written to the result string instead.
- PageCompiler: added createSession page attribute.


Release 1.4.2p1 (2011-09-24)
============================

- On Linux, the RTLD_DEEPBIND option is no longer passed to dlopen().
  This change was introduced in 1.4.2 to solve a specific problem one customer
  was having. Unfortunately, it leads to problems with RTTI.
- It's now possible to pass flags (SHLIB_GLOBAL, SHLIB_LOCAL) to
  Poco::SharedLibrary::load() (and the constructor implicitly calling load()),
  controlling the mode flags (RTLD_GLOBAL, RTLD_LOCAL) passed to dlopen().
  On platforms not using dlopen(), these flags are ignored.
- fixed SF# 3400267: Path_WIN32.cpp bug


Release 1.4.2 (2011-08-28)
==========================

- added Poco::DateTimeFormat::ISO8601_FRAC_FORMAT
- added new Poco::DateTimeFormatter and Poco::DateTimeParser format specifier:
  %s for seconds with optional fractions of a second
- fixed a problem with ioctl() on BSD platforms (including OS X) where the
  second argument to ioctl() is unsigned long instead of int, causing bad
  things on a OS X 64-bit kernel.
- fixed a potential endless loop when enumerating IPv6 network addresses
  (reported by Laurent Carcagno)
- new compile-time config option on Windows to set thread names in
  debugger. Enable with -DPOCO_WIN32_DEBUGGER_THREAD_NAMES. Available
  only in debug builds.
- Cipher can now create Base64 and HexBinary encoded output without linefeeds
  (suitable for use in cookies, etc.)
- added Poco::Path::popFrontDirectory()
- improved VxWorks support
- IPv6 fixes: added proper scope id handling in IPAddress, SocketAddress
  and related classes.
- Added Poco::Net::ServerSocket::bind6() which allows control over the
  IPPROTO_IPV6/IPV6_V6ONLY socket option.
- Removed Poco::MD2Engine class due to licensing issues (the
  license for the MD2 code from RSA only allows non-commercial
  use). Note that the MD4 and MD5 code from RSA does not have
  this issue.
- fixed a Net HTTP client testsuite issue where some tests might
  have failed due to prematurely aborted connections by
  the HTTPTestServer.
- Poco::Net::SocketAddress: when there is more than one address
  returned by a DNS lookup for a name, IPv4 addresses will be
  preferred to IPv6 ones.
- NetworkInterface::list() now also returns IPv4 interfaces on Windows when
  built with -DPOCO_HAVE_IPv6
- XMLWriter: fixed a bug with attribute namespaces (no namespace prefix
  written if attribute namespace is the same as element namespace)
- fixed SF# 3378588: Mismatched new[]/delete (in RSAEncryptImpl and RSADecryptImpl)
- fixed SF# 3212954 (OpenSSLInitializer::uninitialize() crash) and
  SF# 3196862 (Static OpenSSLInitializer instance causes Windows deadlocks) by
  removing the static Poco::Crypto::OpenSSLInitializer instance. Automatic OpenSSL
  initialization is now done through Poco::Crypto::Cipher, Poco::Crypto::CipherKey,
  Poco::Crypto::X509Certificate, Poco::Net::Context classes; however, it is still
  recommended to call Poco::Crypto::initializeCrypto() and
  Poco::Crypto::uninitializeCrypto() early at application startup, and late at
  shutdown respectively (or Poco::Net::initializeSSL()/Poco::Net::uninitializeSSL()
  if the NetSSL library is used) to avoid multiple full OpenSSL init/uninit cycles
  during application runtime.
- Poco::Logger now also support a symbolic log level "none"
  (for use with setLevel()) that disables logging completely
  for that Logger (equivalent to setLevel(0)).
- Added experimental Android support, using the existing gmake-based
  build system.
- fixed SF# 3288584: DateTimeFormatter link error
- fixed SF# 3187117: Typo in InflatingInputStream doc
- fixed SF# 3309731: _WIN32_WCE comparison should be with 0x600 not 600
- fixed SF# 3393026: RegularExpression.h identical enum value
- fixed SF# 3274222: AtomicCounter's postfix operators aren't atomic on Windows
- fixed SF# 3317177: Handle leak on windows
- fixed SF# 3181882: Poco::URI::getPathEtc() double-encodes query
- fixed SF# 3379935: ThreadPool Start Bug
- fixed SF# 3354451: Poco::Format::parsePrec never sets the precision to zero
- fixed SF# 3387258: _MAX_PATH used but unknown in Path_WIN32
- fixed a problem in RSAKeyImpl where direct access to the RSA in a EVP_PKEY
  would no longer work in recent OpenSSL versions. Using EVP_PKEY_get1_RSA()
  fixes the issue.
- added Poco::Crypto::EncryptingInputStream, Poco::Crypto::EncryptingOutputStream,
  Poco::Crypto::DecryptingInputStream and Poco::Crypto::DecryptingOutputStream.
- fixed SF# 3148126: HTTPSClientSession destructor (!) throws an IOException
- fixed SF# 3178098: Add constructor to Poco::TemporaryFile to specify directory
- fixed SF# 3175310: Absolute path when device
- fixed SF# 3301207: Guided tour example contradicts apidoc (API doc was wrong)
- Poco::Net::HTTPMessage::setContentLength() and Poco::Net::HTTPMessage::getContentLength() now
  use std::streamsize instead of int. This enables 64-bit Content-Length support at least
  on 64-bit platforms.
- fixed SF# 3177530: TemporaryFile::tempName() + glob bug on xp
- fixed SF# 3177372: FileChannel documentation inconsistency
- added %E format specifier to Poco::PattermFormatter (epoch time in seconds
  since midnight, January 1 1970)
- On Windows, Poco::Util::ServerApplication now supports a /description command
  line argument for specifying a service description (together with /registerService)
- added Poco::Util::WinService::setDescription() and
  Poco::Util::WinService::getDescription()
- fixed SF# 3155477: Incorrect URI path handling
- fixed SF# 3309736: Extended Exception macros to set default exception code
  new macro is named POCO_DECLARE_EXCEPTION_CODE
- added getter functions for modulus and exponents to Poco::Crypto::RSAKey.
- added Poco::Net::SocketAddress::operator == () and
  Poco::Net::SocketAddress::operator != ()
- fixed SF# 3182746: IPAddress.cpp IPv6 bug on big-endian
- fixed SF# 3196961: Unix daemon fails to loadConfiguration() if started from cwd
- fixed SF# 3393700: NotificationCenter may call a removed observer and crash.
- Reworked implementation of the events framework (Poco::BasicEvent and friends).
  The framework is now completely multithreading save (even in the case that
  an event subscriber object unsubscribes and is deleted while an event is
  being dispatched). Also, the restriction that any object can only register
  one delegate for each event has been removed. For most cases, dispatching
  events should be faster, as dispatching an event now needs less dynamic memory
  allocations.
- fixed SF# 3178109: getNodeByPath() changes:
  getNodeByPath() and getNodeByPathNS() have been moved to Poco::XML::Node.
  Furthermore, when invoked on a Poco::XML::Document, the behavior has changed
  so that the document element is now included when traversing the path (previously,
  traversal would start at the document element, now it starts at the document).
  The path expression can now start with a double-slash, which results in a recursive
  search for the path's first element in the DOM tree.
- fixed SF# 3382935: String data being truncated using ODBC, and
  SF# 2921813: Wrong implementation of the ODBC string binding


Release 1.4.1p1 (2011-02-08)
============================

- Poco::Mutex is now a recursive mutex again on Linux
  (this was caused by an unfortunate feature test for
  PTHREAD_MUTEX_RECURSIVE which did not work on Linux
  as PTHREAD_MUTEX_RECURSIVE is an enum value and not
  a macro)
- Poco::Net::SecureSocketImpl::abort() now only shuts
  down the underlying socket connection and does not free
  the SSL object, due to multithreading issues.


Release 1.4.1 (2011-01-29)
==========================

- fixed SF# 3150223: Poco::BinaryReader cannot read std::vector correctly
- fixed SF# 3146326: SharedMemory issue
- made Poco::Net::HTTPSession::abort() virtual
- added Poco::Net::SecureStreamSocket::abort() to immediately close
  a SSL/TLS connection without performing an orderly SSL/TLS shutdown.
- fixed SF# 3148126: HTTPSClientSession destructor (!) throws an IOException.
  Added try/catch block to Poco::Net::SecureSocketImpl destructor.
- added additional constructor to Poco::Net::HTTPSClientSession, taking
  both a socket and a session object.
- Poco::Net::HTTPSession::abort() now also can be used with a
  Poco::Net::HTTPSClientSession.
- fixed SF# 3148045: make clean and distclean issues
- changed Data library names on Unix/Linux platforms to
  match the names on Windows (PocoSQLite -> PocoDataSQLite,
  PocoMySQL -> PocoDataMySQL, PocoODBC -> PocoDataODBC)
- added additional options to configure script
- added additional documentation to Poco::Net::HTTPClientSession
- Poco::Net::HTTPClientSession::receiveResponse() closes the connection
  if an exception is thrown while reading the response header.
  This ensures that a new connection will be set up for the next request
  if persistent connections are used.
- improved Poco::Net::MultipartDecoder performance by reading directly from streambuf
- improved performance of Poco::Base64Encoder, Poco::Base64Decoder,
  Poco::HexBinaryEncoder and Poco::HexBinaryDecoder by working directly with the
  given stream's streambuf.
- improved performance of MessageHeader::read() by reading directly from streambuf
  instead of istream.
- it is now possible to specify additional MIME part header fields
  for a MIME part through the Poco::Net::PartSource class.
- upgraded SQLite to release 3.7.4
- added experimental VxWorks support for VxWorks 5.5.1/Tornado 2.2 and
  newer. Please see the VxWorks Platform Notes in the reference documentation
  for more information. Currently, the VxWorks is untested; full support
  will be available in release 1.4.2.
- fixed SF# 3165918: Poco::DynamicAny fails to convert from string to float
- fixed SF# 3165910: Poco::Net::MessageHeader does not accept HTTP conforming header
- made Poco::Task::cancel() virtual so that tasks can implement custom
  cancellation behavior.
- added optional argument to Poco::Util::WinRegistryKey constructor
  to specify additional flags (in addition to KEY_READ and KEY_WRITE)
  for the samDesired argument of RegOpenKeyEx() or RegCreateKeyEx().
- improved Poco::BasicEvent::notify() performance by avoiding an unnecessary heap
  allocation.
- added additional well-known port numbers to Poco::URI: rtsp, sip, sips, xmpp.
- added Poco::Net::MediaType::matchesRange()
- improved invalid socket handling: a Poco::Net::InvalidSocketException is
  now thrown instead of an assertion when an operation is attempted on a closed or
  otherwise uninitialized socket.


Release 1.4.0 (2010-12-14)
==========================

- SSLManager: documentation fixes, code cleanup
- SSLManager: renamed PrivateKeyPassPhrase event to PrivateKeyPassphraseRequired
- added HTTPServerRequestImpl::socket() to get access to the underlying socket
- added Socket::secure() to find out whether a given socket supports SSL/TLS
- added SecureStreamSocket::havePeerCertificate()
- NetSSL: added support for turning off extended certificate validation (hostname matching)
- fixed SF# 2941228: ICMPClient::ping() issues on Mac OS X
- fixed SF# 2941231: ICMPEventArgs out of bounds array access
- added PageCompiler sample
- added missing newline at end of xmlparse.c
- Poco::Glob can now be used with an empty pattern which will match nothing (patch from Kim Graesman)
- added support for HTTP proxy authentication (Basic authentication only)
- fixed SF# 2958959: XMLWriter must encode CR, LF and TAB in attribute values as character entities.
- HTMLForm now supports PUT requests as well (see <http://pocoproject.org/forum/viewtopic.php?f=12&t=2163&p=3930#p3930>)
- fixed SF# #2970521: FileOutputStream and file permissions.
  (also fixed in File class)
- removed an unused (and wrong) default parameter from EventImpl constructor for WIN32.
- added full support for session caching to NetSSL_OpenSSL
- fixed SF# 2984454: Poco::Util::Timer::scheduleAtFixedRate() works incorrectly
- fixed a bug in Poco::Util::Timer that could lead to high CPU load if
  the system clock is moved forward.
- added system.nodeId to SystemConfiguration
- added a note to Poco::Util::ServerApplication documentation regarding
  creation of threads
- added Poco::Net::IPAddress::broadcast() and Poco::Net::IPAddress::wildcard() to
  create broadcast (255.255.255.255) and wildcard (0.0.0.0) addresses.
- fixed SF# 2916154: Poco::Net::IPAddress::isLoopback() only works for 127.0.0.1.
- added build configuration for iPhone Simulator
- GNU Make based build system provides new variables: POCO_HOST_BINDIR, POCO_HOST_BINPATH,
  POCO_HOST_LIBDIR, POCO_HOST_LIBPATH and POCO_TARGET_* equivalents.
- Application::initialize() and Application::uninitialize() will now be called from within run().
  This solves various issues with uninitialize() not being called, or being called inappropriately
  from the Application destructor.
  Please note that this change will break applications that use the Application class,
  but only call init() and not run().
- added /startup option to specify startup mode for Windows services (automatic or manual)
- fixed SF# 2967354: SecureSocketImpl shutdown/close problem
- fixed SF# 3006340: LinearHashTable grows even if key already exists
- fixed a particularly nasty Windows error handling issue that manifested itself on WinCE:
  WSAGetLastError() would be called after a std::string was created. The string creation could result
  in a heap operation which called a Windows API to allocate memory. This would reset the
  GetLastError() error code. Since WSAGetLastError() is just an alias for GetLastError(), the actual
  error code from the socket operation would be lost.
- upgraded SQLite to 3.7.3
- added --header-prefix option to PageCompiler
- fixed SF# 3003875: SQLite data binding is broken
- fixed SF# 2993988: Issue with multiple calls to open()/close() on File*Stream
- fixed SF# 2990256: HTMLForm and file uploads
- fixed SF# 2969227: DateTimeParser bug
- fixed SF# 2966698: Socket connect with timeout issue
- fixed SF# 2981041: Bind NULL to a query (patch supplied)
- fixed SF# 2961419: UTF8Encoding::convert() doesn't work properly in DEBUG mode
- fixed SF# 2957068: Timeout value not picked up by proxy in HTTPSClientSession
- fixed NetSSL_OpenSSL test runner for Poco::Util::Application class changes
- Poco::AbstractEvent, Poco::AbstractCache and related classes now accept a Mutex class as additional template argument.
  Poco::NullMutex can be used if no synchronization is desired.
- Added Poco::AbstractEvent::empty() to check whether an event has registered delegates.
- Poco::URI now correctly handles IPv6 addresses.
- Added Poco::Nullable class template.
- Added Poco::NullMutex, a no-op mutex to be used as template argument for template classes
  taking a mutex policy argument.
- Poco::XML::XMLWriter: fixed a namespace handling issue that occured with startPrefixMapping() and endPrefixMapping()
- Poco::Net::Context now allows for loading certificates and private keys from Poco::Crypto::X509Certificate objects
  and Poco::Crypto::RSAKey objects.
- Poco::Crypto::RSAKey no longer uses temporary files for stream operations. Memory buffers are used instead.
- fixed SF# 2957865: added Poco::UUID::tryParse()
- All Zip classes now use Poco::File[Input|Output]Stream instead of std::[i|o]fstream.
  UTF-8 filenames will now be handled correctly on Windows.
- fixed SF# 2902029: zlib flush support (Z_SYNC_FLUSH)
- added Poco::TextBufferIterator class
- fixed SF# 2977249: Use epoll instead select under Linux
  Socket::select() and Socket::poll() will use epoll under Linux if the Net library is compiled
  with -DPOCO_HAVE_FD_EPOLL. This is the default for the Linux build configuration (but not for
  the various build configurations targeting embedded Linux platforms).
- fixed SF# 2941664: Memory leak in DeflatingStream with zero-length streams (also fixed some other potential,
  but unlikely, memory leaks)
- fixed SF# 2946457: added RejectCertificateHandler
- fixed SF# 2946621: Poco::Path bug with POCO_WIN32_UTF8
- fixed SF# 2929805: Environment::nodeId() does not work if no eth0 device exists
- Environment::nodeId() no longer throws if no hardware ethernet address can be determined.
  It returns an all-zero address instead.
- Added additional classification functions to Poco::Unicode class; made classification functions inline.
- added Ascii class for ASCII character classification.
  Methods of the Ascii class are now used instead of the
  standard library functions (std::isspace(), etc.) due to
  possible inconsistent results or assertions when the
  standard library functions are used with character codes
  outside the ASCII range.
- Poco::Net::MailMessage: fixed a bug in StringPartHandler that resulted in incorrect handling of non-ASCII data if
  char is signed.
- Improved Poco::Net::SMTPClientSession compatibility with various mail servers when using AUTH_LOGIN authentication.
- Added CRAM-SHA1 support to Poco::Net::SMTPClientSession
- Poco::Net::SMTPClientSession now also supports login with AUTH PLAIN.
- Added Poco::Net::SecureSMTPClientSession class, supporting STARTTLS for secure SMTP connections.
- fixed an issue with SharedMemory on POSIX systems, where a shared memory region would be deleted
  despite the server flag set to true (see http://pocoproject.org/forum/viewtopic.php?f=12&t=3494).
- PageCompiler: added a new page context directive, to allow passing custom context objects to the
  request handler.
- fixed StreamSocketImpl::sendBytes() for non-blocking sockets
- added Poco::Net::DialogSocket::receiveRawBytes(), which should be used instead of receiveBytes() due to internal
  buffering by DialogSocket.
- DOMParser: FEATURE_WHITESPACE has been renamed to FEATURE_FILTER_WHITESPACE (which now matches the underlying URI)
  and is now handled correctly (previously we did the exact reverse thing)
- added Poco::Util::AbstractConfiguration::remove() to remove a configuration property; added removeRaw() implementations
  to all implementations (contributions by Daniel Hobi and Alexey Shults).
- fixed NetSSL_OpenSSL compilation error on Windows with OpenSSL 1.0
- Added optional FIPS mode support to NetSSL_OpenSSL (contributed by Lior Okman).
  If OpenSSL has been configured and built with FIPS support, then FIPS support can
  be enabled by calling Poco::Crypto::OpenSSLInitializer::enableFIPSMode(true); or
  by setting the fips property in the OpenSSL configuration to true (see Poco::Net::SSLManager
  for details).
- fixed SF# 3031530: Ping and possible no timeout
- added Poco::Net::SocketReactor::onBusy(), called whenever at least one notification will
  be dispatched.
- fixed SF# 3034863: Compiler warning in net/IPAddress.h with poco 1.3.2
- added support for CRAM-SHA1 authentication to SMTPClientSession
- Poco::format(): arguments can now be addressed by their index, e.g. %[2]d
- Poco::Util::Timer::cancel() now accepts an optional boolean argument.
  If true is passed, cancel() waits until the task queue has been purged.
  Otherwise, it returns immediately and works asynchronously, as before.
- Poco::Net::HTTPServerResponse::redirect() now accepts an optional additional
  argument to specify the HTTP status code for the redirection.
- fixed a warning (BinaryReader.cpp) and error (ThreadLocal.cpp) in Foundation when compiling with Visual Studio 2010
- fixed a wrong exception in Poco::Net::POP3ClientSession
- Poco::Net::FTPClientSession and Poco::Net::SMTPClientSession now set the error code in exceptions they throw
- fixed a potential race condition with terminating a Windows service based on Poco::Util::ServerApplication
- fixed a bug in global build configuration file: explicitly setting POCO_CONFIG did not work on Solaris platforms,
  as it was always overridden by the automatically determined configuration.
- Added support for MinGW cross builds on Linux.
- Changed location of statically linked build products in the gmake-based build system.
  Statically linked executables are now in bin/$(OSNAME)/$(OSARCH)/static and no longer
  have the _s suffix
- The POCO_VERSION macro now is in its own header file, "Poco/Version.h". It is no longer
  available through "Poco/Foundation.h".
- added Poco::Net::HTTPCookie::escape() and Poco::Net::HTTPCookie::unescape().
- fixed SF# 3021173: Thread (POSIX) returns uninitialised value for OS priority
- fixed SF# 3040870: ThreadPool has no function to get assigned name
- fixed SF# 3044303: Can't use own config file on Solaris & OSARCH_64BITS ignored
- fixed SF# 2943896: AsyncChannel::log blocks
- fixed a bug in Poco::Util::WinRegistryKey::getInt():
  The size variable passed to RegQueryValueExW() should be initialized to the size
  of the output buffer.
- Added rudimentary support for compiling with Clang 2.0 (Xcode 4) on Mac OS X.
- New build configurations for Mac OS X: Darwin32 and Darwin64 for explicit
  32-bit and 64-bit builds. Note that the default Darwin build configuration
  will build 64-bit on Snow Leopard and 32-bit on Leopard, but will always place
  build products in Darwin/i386. The new Darwin32 and Darwin64 configurations
  will use the correct directories.
- fixed SF# 3051598: Bug in URL encoding
- Poco::ThreadPool::stopAll() (and thus also the destructor) will now wait for each
  pooled thread to terminate before returning. This fixes an issue with creating
  and orderly shutting down a thread pool in a plugin. Previously, a pooled thread
  in a thread pool created by a dynamically loaded library might still be running
  when the plugin's shared library was unloaded, resulting in Bad Things happening.
  This can now no longer happen. As a downside, a pooled thread that fails to
  finish will block stopAll() and the destructor forever.
- NetSSL_OpenSSL: for a SecureStreamSocket, available() now returns the number of bytes that
  are pending in the SSL buffer (SSL_pending()), not the actual socket buffer.
- Added Poco::Net::HTTPClientSession::secure() to check for a secure connection.
- Poco::Net::HTTPRequest::setHost() now does not include the port number in the Host header
  if it's either 80 or 443.
- log messages can now optionally include source file path and line number
- Poco::PatternFormatter can format source file path and line number (%U, %u)
- logging macros (poco_information(), etc.) now use __LINE__ and __FILE__
- new logging macros that incorporate Poco::format(): poco_information_f1(logger, format, arg) with up to 4 arguments
- added Poco::Net::HTTPSession::attachSessionData() and Poco::Net::HTTPSession::sessionData()
  to attach arbitrary data to a HTTP session.
- added additional constructors to zlib stream classes that allow passing
  a windowBits parameter to the underlying zlib library.
- fixed a potential error handling issue in Poco::Net::SecureSocketImpl.
- fixed SF# 3110272: RSACipherImpl bug.
- fixed SF# 3081677: ConfigurationView's getRaw not retrieving xml attributes.
- added basic support for Canonical XML and better pretty-printing support to Poco::XML::XMLWriter.
- Poco::Util::AbstractConfiguration now supports events fired when changing or
  removing properties.
- XML: added support for finding DOM nodes by XPath-like
  expressions. Only a very minimal subset of XPath is supported.
  See Poco::XML::Element::getNodeByPath(), Poco::XML::Element::getNodeByPathNS()
  and the same methods in Poco::XML::Document.
- Poco::Timer: If the callback takes longer to execute than the
  timer interval, the callback function will not be called until the next
  proper interval. The number of skipped invocations since the last
  invocation will be recorded and can be obtained by the callback
  by calling skipped().
- Poco::BinaryReader and Poco::BinaryWriter now support reading and
  writing std::vectors of the supported basic types. Also, strings
  can now be written in a different encoding (a Poco::TextEncoding
  can be optionally passed to the constructor).
- Poco::UUID::nil() and Poco::UUID::isNil() have been renamed to
  Poco::UUID::null() and Poco::UUID::isNull(), respectively, to avoid
  issues with Objective-C++ projects on Mac OS X and iOS where nil is
  a system-provided macro.
- Crypto bugfixes: RSACipherImpl now pads every block of data, not just the
  last (or last two).
- Improved Crypto testsuite by adding new tests
- Added new Visual Studio project configurations: debug_static_mt and release_static_mt
  (linking with static runtime libraries). The existing configurations debug_static
  and release_static have been renamed to debug_static_md and release_static_md, respectively.
  The suffixes of the static libraries have also changed. The static_md configurations
  now build libraries with suffixes md[d], while the libraries built by the static_mt
  configurations have mt[d] suffixes.
- Added Visual Studio project files for 64-bit builds.
- Added Visual Studio 2010 project files.
- Removed the use of local static objects in various methods due to
  their construction not being threadsafe (and thus leading to
  potential race conditions) on Windows/Visual C++.
- Fixed some warning on 64-bit Windows builds.
- The name of the Data connector libraries have changed. They are now
  named PocoDataMySQL, PocoDataODBC and PocoDataSQLite.
- fixed SF# 3125498: Linux NetworkInterface::list() doesn't return IPv6 IPs
- fixed SF# 3125457: IPv6 IPAddress tests are wrong
- Added initialization functions for the NetSSL_OpenSSL and Crypto libraries.
  These should be called instead of relying on automatic initialization,
  implemented with static initializer objects, as this won't work with
  statically linked executables (where the linker won't include the
  static initializer object).
  The functions are Poco::Crypto::initializeCrypto(), Poco::Crypto::uninitializeCrypto(),
  Poco::Net::initializeSSL() and Poco::Net::uninitializeSSL().
  Applications using Crypto and/or NetSSL should call these methods appropriately at
  program startup and shutdown.
  Note: In release 1.3.6, similar functions have been added to the Net library.


Release 1.3.6p2 (2010-01-15)
============================

- fixed an issue in the Windows implementation Poco::RWLock, where
  tryReadLock() sometimes would return false even if no writers
  were using the lock (fix contributed by Bjrn Carlsson)
- added Poco::Environment::libraryVersion().
- fixed SF# 2919461: Context ignores parameter cypherList
- removed an unused enum from RSACipherImpl.cpp (Crypto)
- integrated a new expat patch for CVE-2009-3560.
- fixed SF# 2926458: SSL Context Problem. The Poco::Net::Context
  class now makes sure that OpenSSL is properly initialized.
- updated iPhone build configuration (contributed by Martin York)
- fixed SF# 1815124 (reopened): XML Compile failed on VS7.1 with
  XML_UNICODE_WCHAR_T
- fixed SF# 2932647: FTPClientSession::getWorkingDirectory() returns a bad result


Release 1.3.6p1 (2009-12-21)
============================

- added support for using external zlib, pcre, expat and sqlite3 instead of
  bundled ones (-DPOCO_UNBUNDLED, configure --unbundled)
- fixed SF# 2911407: Add sh4 support
- fixed SF# 2912746: RSAKey::EXP_LARGE doesn't work
- fixed SF# 2904119: abstractstrategy uses std::set but do not includes it
- fixed SF# 2909946: localtime NULL pointer
- fixed SF# 2914986: potential expat DoS security issues (CVE-2009-3560 and CVE-2009-3720)
- fixed SF# 2916305: SSL Manager crashes
- fixed SF# 2903676: Tuple TypeHander does not handle composites.


Release 1.3.6 (2009-11-24)
==========================

- added Environment::processorCount()
- added POCO_VERSION macro to Poco/Foundation.h
- fixed SF# 2807527: Poco::Timer bug for long startInterval/periodic interval
- fixed a bug similar to SF# 2807527 in Poco::Util::Timer.
- fixed SF# 2795395: Constructor doesn't treat the params "key" and "iv"
- fixed SF# 2804457: DateTime::checkLimit looks wrong
- fixed SF# 2804546: DateTimeParser requires explicit RFC1123 format
- added ReleaseArrayPolicy to Poco::SharedPtr
- upgraded to SQLite 3.6.20
- fixed SF# 2782709: Missing semicolons in "Logger.h" convenience
- fixed SF# 2526407: DefaultStrategy.h ++it instead of it++ in a loop
- fixed SF# 2502235: Poco STLPort patch
- fixed SF# 2186643: Data::Statement::reset() not implemented in 1.3.3
- fixed SF# 2164227: Allow File opened read only by FileInputSteam to be writable
- fixed SF# 2791934: use of char_traits::copy in BufferedStreamBuf::underflow
- fixed SF# 2807750: Support additional SQL types in SQLite
- fixed documentation bugs in Timed/PriorityNotificationQueue
- fixed SF# 2828401: Deadlock in SocketReactor/NotificationCenter (also fixes patch# 1956490)
  NotificationCenter now uses a std::vector internally instead of a std::list, and the mutex is
  no longer held while notifications are sent to observers.
- fixed SF# 2835206: File_WIN32 not checking aganist INVALID_HANDLE_VALUE
- fixed SF# 2841812: Posix ThreadImpl::sleepImpl throws exceptions on EINTR
- fixed SF# 2839579: simple DoS for SSL TCPServer, HTTPS server
  No SSL handshake is performed during accept() - the handshake is delayed until
  sendBytes(), receiveBytes() or completeHandshake() is called for the first time.
  This also allows for better handshake and certificate validation when using
  nonblocking connections.
- fixed SF# 2836049: Possible handle leak in FileStream
  If sync() fails, close() now simply set's the stream's bad bit.
  In any case, close() closes the file handle/descriptor.
- fixed SF# 2814451: NetSSL: receiveBytes crashes if socket is closed
- added a workaround for Vista service network initialization issue
  (an Windows service using the Net library running under Vista will
  crash in the call to WSAStartup() done in NetworkInitializer).
  Workaround is to call WSAStartup() in the application's main().
  Automatic call to WSAStartup() in the Net library can now be disabled
  by compiling Net with -DPOCO_NET_NO_AUTOMATIC_WSASTARTUP. Also
  the new Poco::Net::initializeNetwork() and Poco::Net::uninitializeNetwork()
  functions can be used to call WSAStartup() and WSACleanup(), respectively,
  in a platform-independent way (on platforms other than Windows, these
  functions will simply do nothing).
- added VCexpress build script support (contributed by Jolyon Wright)
- fixed SF# 2851052: Poco::DirectoryIterator copy constructor is broken
- fixed SF# 2851197: IPAddress ctor throw keyword missing
- added Poco::ProtocolException
- PageCompiler improvements: new tags, support for buffered output, etc.
- better error reporting in Data MySQL connector (patch #2881270 by Jan "HanzZ" Kaluza)
- fixed SF# 1892462: FTPClient:Choose explicitely between EPSV and PASV
- fixed SF# 2806365: Option for PageCompiler to write output to different dir
- fixed a documentation bug (wrong sample code) in Process::launch() documentation
- added --header-output-dir option to PageCompiler
- fixed SF# 2849144: Zip::Decompress notifications error
- SAXParser has a new feature: "http://www.appinf.com/features/enable-partial-reads".
  See ParserEngine::setEnablePartialReads() for a description of what this does.
- fixed SF# 2876179: MySQL Signed/Unsigned value bug
- fixed SF# 2877970: possible bug in timer task
- fixed SF# 2874104: wrong parsing empty http headers
- fixed SF# 2860694: Incorrect return code from SecureStreamSocketImpl::sendBytes
- fixed SF# 2849750: Possible bug with XMLWriter?
- added MailMessage::encodeWord() to support RFC 2047 word encoded
  mail header fields when sending out mail containing non-ASCII
  characters.
- fixed SF# 2890975: SMTPClientSession bug with 7BIT encoding
- fixed an issue with retrieving the value of socket options on Windows 7.
  Before obtaining the value of a socket, we now initialize the variable receiving the
  socket option value to zero.
- fixed SF# 2836141: Documentation errors
- fixed SF# 2864232: Socket::select() does not detect closed sockets on windows
- fixed SF# 2812143: Socket::select() should check socket descriptors...
- fixed SF# 2801750: NetworkInterface <iface-Obj>forName returns wrong subnetMask
- fixed SF# 2816315: Problem with POSIX Thread::sleepImpl
- fixed SF# 2795646: IPv6 address parsing bug
- fixed #0000092: ServerApplication::waitForTerminationRequest(), SIGINT and GDB.
  Poco::Util::ServerApplication::waitForTerminationRequest() no longer registers a
  signal handler for SIGINT if the environment variable POCO_ENABLE_DEBUGGER
  is defined.
- fixed SF# 2896070: Poco::Net::Context with non-ASCII paths
- added Unicode Surrogate support to Poco::UTF16Encoding.
  See Poco::TextEncoding::queryConvert() and Poco::TextEncoding::sequenceLength()
  for how this is implemented. Contributed by Philippe Cuvillier.
- fixed SF# 2897650: [branch 1.3.6] Net.SocketAddress won't compile for CYGWIN
- fixed SF# 2896161: Building on Windows fails when basedir has space in it
- fixed SF# 2864380: Memory leak when using secure sockets
- NetSSL_OpenSSL: the SSL/TLS session cache is now disabled by default and
  can be enabled per Context using Poco::Net::Context::enableSessionCache().
- fixed SF# 2899039: Wrong DST handling in LocalDateTime
- added RWLock::ScopedReadLock and RWLock::ScopedWriteLock (contributed by Marc Chevrier)
- added Thread::TID type, as well as Thread::tid() and Thread::currentTid() to obtain the native
  thread handle/ID
- added Zip file comment support
- On Windows, Poco::SharedLibrary::load() now uses LoadLibraryEx instead of LoadLibrary
  and uses the LOAD_WITH_ALTERED_SEARCH_PATH if an absolute path is specified. This will
  add the directory containing the library to the search path for DLLs that the
  loaded library depends upon.
- Mac OS X build settings now match those used by default Xcode projects, making linking the
  POCO libs to Xcode projects easier
- Replaced use of std::valarray in Poco::Net::ICMPEventArgs with std::vector due to issues with
  std::valarray together with STDCXX debug mode on OS X


Release 1.3.5 (2009-05-11)
==========================

- fixed SF# 2779410: Poco::Data::ODBC::HandleException impovement
- fixed wrong exception text for Poco::UnhandledException
- Fixed a problem with SSL shutdown that causes clients (web browsers)
  to hang when the server attempts to perform a clean SSL shutdown. We now call
  SSL_shutdown() once, even if the shutdown is not complete after the first call.
- added Poco::Crypto::X509Certificate::save()
- fixed a bug in Poco::Zip::Decompress that results in wrong paths for extracted files
- fixed a bug in Poco::Zip::ZipManipulator where the Zip file was opened in text format
  on Windows.
- added Poco::Crypto::X509Certificate::issuedBy() to verify certificate chain.
- fixed 0000089: Thread::sleep() on Linux is extremely inaccurate
- added methods to extract the contents of specific fields from the
  subject and issuer distinguished names of a certificate.


Release 1.3.4 (2009-04-21)
==========================

- fixed SF# 2611804: PropertyFileConfiguration continuation lines
- fixed SF# 2529788: ServerApplication::beDaemon() broken
- fixed SF# 2445467: Bug in Thread_WIN32.cpp
- Improved performance of HTTP Server by removing some
  string copy operations
- fixed SF# 2310735: HTTPServer: Keep-Alive only works with send()
- fixed appinf.com IP address in Net testsuite
- fixed RFC-00188: NumberFormatter and float/double numbers
- added --pidfile option to ServerApplication on Unix
- fixed SF# 2499504: Bug in Win32_Thread when using from dll (fixed also for POSIX threads)
- fixed SF# 2465794: HTTPServerRequestImpl memory leak
- fixed SF# 2583934: Zip: No Unix permissions set
- the NetSSL_OpenSSL library has been heavily refactored
- added NumberFormatter::append*() and DateTimeFormatter::append() functions
- use NumberFormatter::append() and DateTimeFormatter::append() instead of format() where
  it makes sense to gain some performance
- added system.dateTime and system.pid to Poco::Util::SystemConfiguration
- added %F format specifier (fractional seconds/microseconds) to DateTimeFormatter,
  DateTimeParser and PatternFormatter.
- fixed SF# 2630476: Thread_POSIX::setStackSize() failure with g++ 4.3
- fixed SF# 2679279: Handling of -- option broken
- added compile options to reduce memory footprint of statically linked applications
  by excluding various classes from automatically being linked.
  See the POCO_NO_* macros in Poco/Config.h.
- fixed SF# 2644940: on Windows the COMPUTER-NAME and the HOSTNAME can be different
- added DNS::hostName() function
- added build configuration for iPhone (using Apple's SDK)
- basic support for AIX 5.x/xlC 8
- fixed a bug resulting in a badly formatted exception message with IOException
  thrown due to a socket-related error
- fixed SF# 2644718: NetworkInterface name conflict in MinGW
- added a missing #include to CryptoTransform.h
- fixed SF# 2635377: HTTPServer::HTTPServer should take AutoPtr<HTTPServerParams>
- replaced plain pointers with smart pointers in some interfaces
- upgraded to sqlite 3.6.13
- improved Data::SQLite error reporting
- Poco::Glob now works with UTF-8 encoded strings and supports case-insensitive comparison.
  This also fixes SF# 1944831: Glob::glob on windows should be case insensitve
- added Twitter client sample to Net library
- Fixed SF# 2513643: Seg fault in Poco::UTF8::toLower on 64-bit Linux
- Poco::Data::SessionPool: the janitor can be disabled by specifying a zero idle time.
- added Poco::Data::SessionPool::customizeSession()
- added support for different SQLite transaction modes (DEFERRED, IMMEDIATE, EXCLUSIVE)
- fixed a few wrong #if POCO_HAVE_IPv6 in the Net library
- added support for creating an initialized, but unconnected StreamSocket.
- added File::isDevice()
- added family() member function to SocketAddress,
- Data::SQLite: added support for automatic retries if the database is locked
- XMLConfiguration is now writable
- fixed an IPv6 implementation for Windows bug in HostEntry
- Timer class improvement: interval between callback is no longer influenced by the
  time needed to execute the callback.
- added PriorityNotificationQueue and TimedNotificationQueue classes to Foundation.
  These are variants of the NotificationQueue class that support priority and
  timestamp-tagged notifications.
- added Poco::Util::Timer class. This implements a timer that can schedule different
  tasks at different times, using only one thread.
- the signatures of Poco::NotificationQueue and Poco::NotificationCenter member functions
  have been changed to accept a Poco::Notification::Ptr instead of Poco::Notification*
  to improve exception safety. This change should be transparent and fully backwards
  compatible. The signature of the methods returning a Poco::Notification* have not been
  changed for backwards compatibility. It is recommended, that any Notification* obtained
  should be immediately assigned to a Notification::Ptr.
- SQLite::SessionImpl::isTransaction() now uses sqlite3_get_autocommit() to find out
  about the transaction state.
- refactored Crypto library to make it independent from NetSSL_OpenSSL.
- added support for RSA-MD5 digital signatures to Crypto library.
- removed SSLInitializer from NetSSL library (now moved to Crypto library)
- added build configs for static libraries to Crypto library
- OpenSSL now depends on Crypto library (which makes more sense than
  vice versa, as it was before). Poco::Net::X509Certificate is now
  a subclass of Poco::Crypto::X509Certificate (adding the verify()
  member function) and the Poco::Net::SSLInitializer class was
  moved to Poco::Crypto::OpenSSLInitializer.
- added build configs for static libraries to Zip
- added batch mode to CppUnit::WinTestRunner.
  WinTestRunnerApp supports a batch mode, which runs the
  test using the standard text-based TestRunner from CppUnit.
  To enable batch mode, start the application with the "/b"
  or "/B" command line argument. Optionally, a path to a file
  where the test output will be written to may be given:
  "/b:<path>" or "/B:<path>".
  When run in batch mode, the exit code of the application
  will denote test success (0) or failure (1).
- testsuites now also work for static builds on Windows
- The IPv6 support for Windows now basically works (Net library compiled with POCO_HAVE_IPv6)
- fixed a potential error when shutting down openssl in a statically linked application
- added static build configs to Data library
- added Poco::AtomicCounter class, which uses OS-specific APIs for atomic (thread-safe)
  manipulation of counter values.
- Poco::RefCountedObject and Poco::SharedPtr now use Poco::AtomicCounter for
  reference counting
- fixed SF# 2765569: LoadConfiguration failing from current directory


Release 1.3.3p1 (2008-10-09)
============================

- Fixed SF# 2153031: 1.3.3 Crypto won't compile on 64-bit Linux
- Fixed a warning in MySQL connector
- Updated README
- The global Makefile in the Zip archive is no longer broken


Release 1.3.3 (2008-10-07)
==========================

- Threads now have optional user-settable stack size (if the OS supports that feature)
- Events now support simplified delegate syntax based on delegate function template.
  See Poco::AbstractEvent documentation for new syntax.
- Cache supports new access expire strategy.
- Upgraded to SQLite 3.6.2
- Upgraded to PCRE 7.8
- added HttpOnly support to Poco::Net::HTTPCookie
- NetworkInterface now has displayName() member (useful only on Windows)
- Poco::Util::WinRegistryKey now has a read-only mode
- Poco::Util::WinRegistryKey::deleteKey() can now recursively delete registry keys
- Poco::File::created() now returns 0 if the creation date/time is not known, as
  it's the case on most Unix platforms (including Linux).
  On FreeBSD and Mac OS X, it returns the real creation time.
- Time interval based log file rotation (Poco::FileChannel) now works
  correctly. Since there's no reliable and portable way to find out the creation
  date of a file (Windows has the tunneling "feature", most Unixes don't provide
  the creation date), the creation/rotation date of the log file is written into
  the log file as the first line.
- added Environment::nodeId() for obtaining the Ethernet address of the system
  (this is now also used by UUIDGenerator - the corresponding code from UUIDGenerator
  was moved into Environment)
- added a release policy argument to SharedPtr template
- Socket::select() will no longer throw an InvalidArgumentException
  on Windows when called with no sockets at all. If all three socket
  sets are empty, Socket::select() will return 0 immediately.
- SocketReactor::run() now catches exceptions and reports them via
  the ErrorHandler.
- SocketReactor has a new IdleNotification, which will be posted when
  the SocketReactor has no sockets to handle.
- added referenceCount() method to Poco::SharedPtr.
- POCO now builds with GCC 4.3 (but there are some stupid warnings:
  "suggest parentheses around && within ||".
- Solution and project files for Visual Studio 2008 are included
- The Zip library is now officially part of the standard POCO release.
- The Crypto library (based on OpenSSL) has been added. The original code
  was kindly contributed by Ferdinand Beyer.
- A Data Connector to MySQL, contributed by Sergey Kholodilov, is now part
  of the POCO release.
- fixed SF# 1859738: AsyncChannel stall
- fixed SF# 1815124: XML Compile failed on VS7.1 with XML_UNICODE_WCHAR_T
- fixed SF# 1867340: Net and NetSSL additional dependency not set - ws2_32.lib
- fixed SF# 1871946: no exception thrown on error
- fixed SF# 1881113: LinearHashTable does not conform to stl iterators
- fixed SF# 1899808: HTMLForm.load() should call clear() first
- fixed SF# 2030074: Cookie problem with .NET server
- fixed SF# 2009707: small bug in Net/ICMPPacketImpl.cpp
- fixed SF# 1988579: Intel Warning: invalid multibyte character sequence
- fixed SF# 2007486: Please clarify license for Data/samples/*
- fixed SF# 1985180: Poco::Net::DNS multithreading issue
- fixed SF# 1968106: DigestOutputStream losing data
- fixed SF# 1980478: FileChannel loses messages with "archive"="timestamp"
- fixed SF# 1906481: mingw build WC_NO_BEST_FIT_CHARS is not defined
- fixed SF# 1916763: Bug in Activity?
- fixed SF# 1956300: HTTPServerConnection hanging
- fixed SF# 1963214: Typo in documentation for NumberParser::parseFloat
- fixed SF# 1981865: Cygwin Makefile lacks ThreadTarget.cpp
- fixed SF# 1981130: pointless comparison of unsigned integer with zero
- fixed SF# 1943728: POCO_APP_MAIN namespace issue
- fixed SF# 1981139: initial value of reference to non-const must be an lvalue
- fixed SF# 1995073: setupRegistry is broken if POCO_WIN32_UTF8 enabled
- fixed SF# 1981125: std::swap_ranges overloading resolution failed
- fixed SF# 2019857: Memory leak in Data::ODBC Extractor
- fixed SF# 1916761: Bug in Stopwatch?
- fixed SF# 1951443: NetworkInterface::list BSD/QNX no netmask and broadcast addr
- fixed SF# 1935310: Unhandled characters in Windows1252Encoding
- fixed SF# 1948361: a little bug for win32
- fixed SF# 1896482: tryReadLock intermittent error
- workaround for SF# 1959059: Poco::SignalHandler deadlock
  the SignalHandler can now be disabled globally by adding a
  #define POCO_NO_SIGNAL_HANDLER to Poco/Config.h
- fixed SF# 2012050: Configuration key created on read access
- fixed SF# 1895483: PCRE - possible buffer overflow
- fixed SF# 2062835: Logfile _creationDate is wrong
- fixed SF# 2118943: out_of_bound access in Poco::Data::BLOB:rawContent
- fixed SF# 2121732: Prevent InvalidArgumentException in SocketReactor
- fixed SF# 1891132: Poco::Data::StatementImpl::executeWithLimit is not correct
- fixed SF# 1951604: POCO refuses to compile with g++ 4.3.0
- fixed SF# 1954327: CYGWIN's pthread does not define PTHREAD_STACK_MIN
- fixed SF# 2124636: Discrepancy between FileWIN32(U)::handleLastError
- fixed SF# 1558300: MinGW/MSYS Builds
- fixed SF# 2123266: Memory leak under QNX6 with dinkum library
- fixed SF# 2140411: ScopedUnlock documentation bug
- fixed SF# 2036460: UUID regression tests are failing on Linux with g++ 4.3.1
- fixed SF# 2150438: Tuple TypeHandler position increment size is wrong


Release 1.3.2 (2008-02-04)
==========================

Foundation, XML, Net, Util:
- added POCO_NO_SHAREDMEMORY to Config.h
- POCO_NO_WSTRING now really disables all wide string related calls
- added template specialization for string hashfunction (performance)
- XML parser performance improvements (SAX parser is now up to 40 % faster
- added parseMemoryNP() to XMLReader and friends
- URIStreamOpener improvement: redirect logic is now in URIStreamOpener.
  this enables support for redirects from http to https.
- added support for temporary redirects and useproxy return code
- added getBlocking() to Socket
- added File::isHidden()
- better WIN64 support (AMD64 and IA64 platforms are recognized)
- added support for timed lock operations to [Fast]Mutex
- SharedLibrary: dlopen() is called with RTLD_GLOBAL instead of RTLD_LOCAL
  (see http://gcc.gnu.org/faq.html#dso)
- Poco::Timer threads can now run with a specified priority
- added testcase for SF# 1774351
- fixed SF# 1784772: Message::swap omits _tid mem
- fixed SF# 1790894: IPAddress(addr,family) doesn't fail on invalid address
- fixed SF# 1804395: Constructor argument name wrong
- fixed SF# 1806807: XMLWriter::characters should ignore empty strings
- fixed SF# 1806994: property application.runAsService set too late
- fixed SF# 1828908: HTMLForm does not encode '+'
- fixed SF# 1831871: Windows configuration file line endings not correct.
- fixed SF# 1845545: TCP server hangs on shutdown
- fixed SF# 1846734: Option::validator() does not behave according to doc
- fixed SF# 1856567: Assertion in DateTimeParser::tryParse()
- fixed SF# 1864832: HTTP server sendFile() uses incorrect date
- HTTPServerResponseImpl now always sets the Date header automatically
  in the constructor.
- fixed SF# 1787667: DateTimeFormatter and time related classes
  (also SF# 1800031: The wrong behavior of time related classes)
- fixed SF# 1829700: TaskManager::_taskList contains tasks that never started
- fixed SF# 1834127: Anonymous enums in Tuple.h result in invalid C++
- fixed SF# 1834130: RunnableAdapter::operator= not returning a value
- fixed SF# 1873924: Add exception code to NetException
- fixed SF# 1873929: SMTPClientSession support for name in sender field
- logging performance improvements (PatternFormatter)
- fixed SF# 1883871: TypeList operator < fails for tuples with duplicate values
- CYGWIN build works again (most things work but Foundation testsuite still fails)
- new build configuration for Digi Embedded Linux (ARM9, uclibc)
- new build configuration for PowerPC Linux

Data:
- fixed SF# 1724388: ODBC Diagnostics
- fixed SF# 1804797: ODBC Statement multiple execution fails
- fixed SF# 1803435: SessionPool onJanitorTimer called too often?
- fixed SF# 1851997: Undefined Behavior in ODBC::Preparation
- updated SQlite to 3.5.5


Release 1.3.1 (2007-08-08)
==========================

Foundation, XML, Net, Util:
- DynamicAny fixes for char conversions
- fixed SF# 1733362: Strange timeout handling in SocketImpl::poll and Socket::select
- fixed SF patch# 1728912: crash in POCO on Solaris
- fixed SF# 1732138: Bug in WinRegistryConfiguration::getString
- fixed SF# 1730790: Reference counting breaks NetworkInterface::list()
- fixed SF# 1720733: Poco::SignalHandler bug
- fixed SF# 1718724: Poco::StreamCopier::copyStream loops forever
- fixed SF# 1718437: HashMap bug
- changed LinearHashTable iterator implementation. less templates -> good thing.
- fixed SF# 1733964: DynamicAny compile error
- UUIDGenerator: fixed infinite loop with non ethernet interfaces
- updated expat to 2.0.1
- fixed SF# 1730566: HTTP server throws exception
- Glob supports symbolic links (additional flag to control behavior)
- fixed a problem with non blocking connect in NetSSL_OpenSSL
  (see http://www.appinf.com/poco/wiki/tiki-view_forum_thread.php?comments_parentId=441&topics_threshold=0&topics_offset=29&topics_sort_mode=commentDate_desc&topics_find=&forumId=6)
- fixed a problem with SSL renegotiation in NetSSL_OpenSSL (thanks to Sanjay Chouksey for the fix)
- fixed SF# 1714753: NetSSL_OpenSSL: HTTPS connections fail with wildcard certs
- HTTPClientSession: set Host header only if it's not already set (proposed by EHL)
- NetworkInterface (Windows): Loopback interface now has correct netmask;
  interfaces that do not have an IP address assigned are no longer reported.
- Fixes for VC++ W4 warnings from EHL
- SharedMemory: first constructor has an additional "server" parameter
  Setting to true does not unlink the shared memory region when the SharedMemory object is destroyed. (Alessandro Oliveira Ungaro)
- fixed SF# 1768231: MemoryPool constructor

Data:
- fixed SF# 1739989: Data::RecordSet::operator = () (in 1.3 branch)
- fixed SF# 1747525: SQLite, Transactions and Session Pooling (in 1.3 branch)
- upgraded to SQLite 3.4.1


Release 1.3.0 (2007-05-07)
==========================

- added HashMap, HashSet classes
- the HashFunction class template has been changed in an incompatible
  way. The member function formerly named hash() is now the function
  call operator. If you have defined your own HashFunction classes,
  you have to update your code. Sorry for the inconvenience.
- added Poco::Tuple
- added AbstractCache::getAllKeys(), improved performance of the get operation
- fixed AbstractCache::size() to do cache replacement before returning the size
- added additional match() method to RegularExpression and documented the fact that the simple
  match() method internally sets RE_ANCHORED and RE_NOTEMPTY.
- added ExpirationDecorator template. Decorates data types so that they can be used with UniqueExpireCaches
- added operator ! to AutoPtr and SharedPtr
- Buffer uses std::size_t instead of int
- Exception::what() now returns exception name instead of message
- added poco_ndc_dbg() macro (same as poco_ndc(), but only enabled in debug builds)
- added Environment::get(name, defaultValue);
- Foundation.h now includes Config.h at the very beginning.
- added replace() and replaceInPlace() to Poco/String.h
- added AutoPtr::assign() and SharedPtr::assign()
- added operator () to AbstractEvent
- gcc Makefiles now strip release builds
- Void now has a == and != operator
- Base64Encoder and HexBinaryEncoder now support an unlimited line length
  (no newlines written), by specifying a line length of 0
- NumberParser now has stricter syntax requirements: garbage following a number leads to a SyntaxException
  (Thanks to phireis@gmail.com for the suggestion)
- fixed SF# 1676830: Don't use -rpath in libraries
- fixed SF# 1670279: AbstractConfiguration::unckeckedExpand crash
- fixed a warning in Hashtable
- HTTPClientSession now uses a keepAliveTimeout for better persistent connection handling
- added DateTime::makeUTC() and DateTime::makeLocal()
- added another constructor to LocalDateTime
- POCO_WIN32_UTF8 is ignored on non-Windows platforms
- fixed a timeout bug (with NetSSL) in HTTPSession
- AsyncChannel is automatically opened with first log()
- minor fix to NotificationQueue sample (reported by Laszlo Keresztfalvi)
- added File::canExecute() and File::setExecutable()
- added SharedMemory class to Foundation
- added FileStream, FileInputStream, FileOutputStream to Foundation
- added NodeAppender class to XML for faster DOM tree creation
- HTTPServerRequest and HTTPServerResponse are now abstract base classes,
  actual functionality has moved into HTTPServerRequestImpl and
  HTTPServerResponseImpl. This allows us to plug other HTTP servers
  into POCO.
- added DynamicAny class to Foundation
- replaced std::fstream with Poco::FileStream across POCO.
- added Poco::Checksum class to Foundation.
- fixed SF# 1700811: conflict in threadpool
- bugfix: File::moveTo() does not work if the target is a directory
- File::copyTo() and File::moveTo() now copy/move directories recursively
- refactored NetworkInterface (now using pimpl idiom);
  added broadcast address and netmask support
- fixed SF# 1688982: POP3ClientSession fails when retrieving mails with attachment
- fixed SF# 1655104: Enhance Poco::TextEncoding functionality
- added Poco::Condition class, implementing a POSIX-style condition variable
- fixed a bug in File::create() for Windows
- added poco_static_assert (imported from boost)
- added Thread::join(timeout) and Thread::tryJoin()
- ClassLoader support for named manifests (see ClassLibrary.h - POCO_EXPORT_NAMED_MANIFEST)
- POCO_WIN32_UTF8: UNICODE #define is no longer required (and no longer
  automatically defined in POCO_WIN32_UTF8 is defined)
- PCRE: upgraded to PCRE version 7.1
- fixed SF# 1682162: Suggestion on thread priority
- fixed SF# 1613460: MSVC/STLPort warnings
- fixed SF# 1709358: Format double percent std::String bug
- added WindowsConsoleChannel class to Foundation
- added AutoPtr::unsafeCast<>() and SharedPtr::unsafeCast<>()
- fixed SF# 1708552: Failed to build on arm and powerpc
- fixed SF$ 1708529: Failed to build using GCC 4.3: missing #includes
- fixed SF# 1710053: LogStream proposal
- fixed a bug involving empty root directories in Windows DirectoryIterator implementation
  (see http://www.appinf.com/poco/wiki/tiki-view_forum_thread.php?comments_parentId=343&forumId=6)
- robustness improvements to ActiveMethod - removed the opportunity for memory leaks in
  case something goes while invoking the method
- made C library usage more C++-like - use C++ headers (e.g. <cstring>) instead of
  C ones (<string.h>). Also, use C library functions in std namespace.
- added Unicode and UTF8String for improved Unicode support.
  The Unicode class can be used to obtain the Unicode properties of a character.
  The UTF8 class provides case insensitive comparison and case conversion
  for UTF-8 encoded strings.
- added UnWindows.h header file, replaced all #include <windows.h> with #include "Poco/UnWindows.h".
  See the Poco/UnWindows.h header file for a rationale and explanations.
- fixed SF# 1713820: StreamSocketImpl::sendBytes sends too many bytes
- File::copyTo(): on Windows, the copy now always has the read-only flag reset, to be consistent
  with other platforms.
- With Microsoft Visual C++, the necessary POCO libraries are now implicitly linked when
  the corresponding header files are included (#pragma comment(lib, "PocoXYZ.lib") is used).
  To disable this, compile POCO with the preprocessor symbol POCO_NO_AUTOMATIC_LIBS #define'd
  (see Poco/Foundation.h and Poco/Config.h).
- The Visual Studio project files for the POCO libraries now include configurations
  for building static libraries.


Release 1.2.9 (2007-02-26)
==========================

- fixed a formatting problem in Util::HelpFormatter
- HTTPClientSession::sendRequest() now attempts to send the complete request in one network packet.
- improved network performance of ChunkedOutputStream: chunk size and chunk data
  are sent in one network packet if possible
- fixed SF# 1655035: Wrong expires field calculation in HTTPCookie
  (thanks to Sergey N. Yatskevich for this and other fixes)
- fixed SF# 1655049: Fix discrepancy of a code to the description
- fixed SF# 1655170: Poco::Timezone::standardName() problem on WIN32
- fixed SF# 1629095: POCO_WIN32_UTF8 problem
  There is a new function Path::transcode() that can be used to convert a path (or any other string)
  from UTF-8 to the current Windows code page. This string can the be passed as a filename
  to an fstream or fopen(). This function only does the conversion on Windows,
  and only, if POCO_WIN32_UTF8 is defined. Otherwise, it simply returns the unmodified argument.
- fixed SF# 1659607: Probably a bug in Poco::Net::DialogSocket
- HTTPServer network performance improvement: responses that fit into a single network packet
  sent with HTTPServerResponse::sendFile() or the new HTTPServerResponse::sendBuffer() are
  sent in only one packet.
- added HTTPServerResponse::sendBuffer()
- HTTPServer now sends a Bad Request response if it fails to parse the HTTP request header.
- HTTPServer now sends an Internal Server Error response if the request handler throws an
  exception prior to sending a response.- enabled TCP_NODELAY per default on TCPServer/HTTPServer
- fixed a bug in HTTP persistent connection handling
  (server does not send Connection: close when it reaches connection maximum)
- HTMLForm - POST submission of URL encoded form no longer uses chunked transfer encoding
  (thus improving interoperability with certain web servers)
- integrated Environment.cpp from Main (missing get(var, default))
- added missing AutoPtr include to Util/Application
  (and using Poco::AutoPtr is no longer necessary for POCO_APP_MAIN macro)
- fixed SF# 1635420: Per Regents of the University of Calfornia letter,
  remove advertising from BSD licensed parts
- fixed SF# 1633133: MultipartWriter writes superluous CR-LF at beginning


Release 1.2.8 (2007-01-04)
==========================

- fixed SF# 1613906: Util/Application.h and GCC 3.3
- fixed a byte order issue (failed test) in IPv6 address formatting
- fixed SF# 1626640: Poco::Net::SocketReactor bug
- fixed client side chunked transfer encoding handling
- fixed client side persistent connection handling
- fixed SF# 1623536: HTTP Server Chunked Transfer Encoding Bug
- improved HTTP server exception text
- fixed SF# 1616294: KeepAlive HTTPServerSession patch
- fixed SF# 1616296: Trivial Poco::TaskCustomNotification patch
- fixed SF# 1619282: PurgeStrategy bug fix
- fixed SF# 1620855: Format problem
  there is a new format specifier %z for std::size_t, as well as a new
  flag ? for %d, %i, %o, %x meaning any signed or unsigned integer


Release 1.2.7 (2006-12-07)
==========================

- Poco::File: fixed root directory handling
- fixed UUIDGenerator documentation
- clarified Application::setUnixOptions() documentation
- fixes for issue [SOAPLite Transport 0000023]: SOAP Transport Listener should be able to use existing HTTPServer instance
- fixing mantis issues 13, 14, 15, 16, 17, 18, 19, 21
- fixed SF# 1597022: Signed/unsigned warning in StringTokenizer::operator[]
- fixed SF# 1598601: Message::op= leaks
- fixed SF# 1605960: PatternFormatter crashes on custom property
- fixed SF# 1605950: Memory leak in Logger sample code
- fixed SF# 1591635: Copy Paste Error in sample code
- fixed SF# 1591512: SMTPClientSession response stream
- fixed SF #1592776: LayeredConfiguration: getRaw should enumerate in reverse order
- SF Patch # 1599848 ] VS 2005 Util build fails
- Logger::dump() now uses std::size_t instead of int for buffer size
- LayeredConfiguration now supports a priority value for each configuration.
  Also, it's possible to specify for each configuration added whether it
  should be writeable.
- ServerApplication: cd to root directory only if running as a daemon
- added Message::swap()
- improvements to build system:
  global Makefile has correct dependencies for samples
  on Windows, samples build after libraries are ready
  configure supports --no-wstring and --no-fpenvironment flags
  build system supports POCO_FLAGS environment variable for compiler flags
- RemoteGen: fixed error handling for write protected files (SystemException)
  fixing integral constant overflow messages with large cache expiration, m_ support for type serializers,
  case-insensitive comparison added


Release 1.2.6 (2006-11-19)
==========================

- added additional match() method to RegularExpression and documented the fact that the simple
  match() method internally sets RE_ANCHORED and RE_NOTEMPTY.
- added ExpirationDecorator template. Decorates data types so that they can be used with UniqueExpireCaches
- added operator ! to AutoPtr and SharedPtr
- Buffer uses std::size_t instead of int
- added poco_ndc_dbg() macro (same as poco_ndc(), but only enabled in debug builds)
- Foundation.h now includes Config.h at the very beginning.
- added AutoPtr::assign() and SharedPtr::assign()
- added operator () to AbstractEvent
- gcc Makefiles now strip release builds
- documentation improvements


Release 1.2.5 (2006-10-23)
==========================

- Improved LoggingConfigurator: channel creation and configuration is now a two-step process.
  This means that the previous problems with PropertyFileConfiguration and IniFileConfiguration when referencing other channels are solved.
- improved options handling: better handling of (non) ambiguities.
  If both an option named "help" and one named "helper" is specified, this no longer causes ambiguity errors.
- added check for duplicate option definition
- ThreadPool bugfix: fixed a crash that occurs on Linux multiprocessor machines
  (caused by an thread unsafe string assignment corrupting the heap...)
  (SF# 1575315)
- improved ThreadPool performance
- XML now compiles with -DXML_UNICODE_WCHAR_T (SF# 1575174)
- fixed SF# 1572757: HTML forms can have more than one key/value pair with the same name
- got rid of the dynamic casts in Events, Events/Cache: simpler/faster Delegate < operator,
  prevents some rare dynamic casts error from occuring when using StrategyCollection with Caches
- improvements to Logger and LoggingConfigurator:
  * added Logger::unsafeGet()
  * added Logger::setProperty(loggerName, propertyName, value)
  * LoggingConfigurator now correctly (re)configures existing Loggers
    (prior to this change, if a Logger named "a.b.c" existed before
    the LoggingConfigurator started its work, and the LoggingConfigurator
    configured a Logger named "a.b", then "a.b.c" would not inherit
    the new configuration).
- improvements to SplitterChannel and EventLogChannel configuration
- improved LoggingRegistry exception messages
- MessageHeader::read() is more liberal with malformed message headers.
  This fixes problems with certain network cameras sending malformed HTTP headers.


Release 1.2.4 (2006-10-02)
==========================

- some code beautifying and improvements to comments
- DOMParser now automatically sets FEATURE_NAMESPACE_PREFIXES
- fixed SF #1567051:  DOMBuilder/DOMParser/NamespaceStrategy bug
- fixed SF #1567364: POCO_APP_MAIN
- added Document::getElementById() (two-argument) and getElementByIdNS()
- added another test for DOMParser
- added AutoPtr::isNull() (to be consistent with SharedPtr)
- this release again compiles on PA-RISC HP-UX systems with aCC
- added CMAKE support files contributed by Andrew J. P. Maclean


Release 1.2.3 (2006-09-14)
==========================

- configure script now checks if (auto)selected configuration is supported
- fixed SF #1552904: NamedEvent bug?
- fixed SF #1552787: POCO not handling EINTR
- fixed SF #1552846: Random::~Random uses scalar delete
- fixed SF #1552987: TLSSlot should explicitly default-construct _value
- IPAddress no longer accepts an empty address string
- split up Observer.h into AbstractObserver.h and Observer.h
- added NObserver class template which supports an AutoPtr
  argument for the notification callback
- changed EchoServer sample to use NObserver
- some Windows-specific files were missing in the tarballs


Release 1.2.2 (2006-09-01)
==========================

- fixed SF # 1549973: NotificationCenter::hasObservers() returns wrong result
- fixed a memory leak in EchoServer sample
- fixed SocketReactor TimeoutNotification bug (SF #1549365, SocketNotifier::addObserver() incorrect behavior)
- fixed SF# 1549513: MultipartReader does not work with Unix-style linefeeds
- MailMessage and HTMLForm: processing of multipart messages will no longer fail if a PartHandler does not read all data from the part stream.
- added additional test case (Unix-style line ends) to MultipartReaderTest


Release 1.2.1 (2006-08-29)
==========================

- fixed Config.h header (no more #undefs)

Release 1.2.0 (2006-08-29)
==========================

- DateTime fixes: Julian Day is no longer stored internally.
  Times (hours, minutes, seconds, ...) are now always taken from an utcValue (if available) and not from the Julian day.
  The Julian day is only used for calculating year, month and day (except when the Julian day is the only thing we have)
  This helps us get rid of rounding errors that the Julian Day arithmetic introduced.- on Windows, UUIDGenerator no longer uses Netbios, but GetAdaptersInfo instead
- The main Makefile now has correct dependencies
- updated poco-doc.pl with latest version by Caleb Epstein
- fixed SF #1542722: InflatingInputStream: buffer error
- improved Windows UTF-8 support
- added Logger::names()
- added configure script and make install target
- XMLWriter bugfix: pretty-print bug with characters() and rawCharacters()
- improvements to build system: support builds outside of source tree
- added header doc conversion tool contributed by Caleb Epstein
- fixed SF #1542618 (build/config/Linux patch)
- bugfix: BinaryReader/BinaryWriter BOM is now 16 bits, as documented
- fixed SF #1542247 (Compiler warning from OptionCallback)
- fixed SF #1542253 (ServerApplication::handleOption doesn't call Application::handleOption)
- added Application::stopOptionsProcessing()
- updated samples
- Util::Application command line handling now supports:
  * argument validation (Option::validator(); see Validator, IntValidator, RegExpValidator)
  * binding of argument values to config properties (Option::binding())
  * callbacks for arguments (Option::callback())
  * checking of required parameters
- changed header file locations:
  Foundation headers are now in Poco (#include "Poco/Foundation.h")
  XML headers are now in Poco/XML, Poco/SAX and Poco/DOM (#include "Poco/XML/XML.h")
  Util headers are now in Poco/Util (#include "Poco/Util/Util.h")
  etc.
  Unfortunately, this change will break existing code. However, fixing the code is
  a matter of a few global search/replace operations and can be done quickly.
  On the plus side, POCO is now a much better citizen when used with other
  libraries.
- changed namespaces:
  Foundation is now Poco
  XML is now Poco::XML
  Util is now Poco::Util
  Net is now Poco::Net
- removed namespace macros
- fixed some warnings reported by gcc -Wall -Wextra
- fixed AutoPtr and LayeredConfiguration documentation
- improved StreamSocket::receiveBytes() doc
- added Pipe and PipeStream classes
- added support for I/O redirection (pipes) to Process::launch()
- added LogStream class (ostream interface to Logger)
- improved Makefiles (no more double-building if clean all is specified)
- added CppUnit and DateTime testsuite contributions by Andrew Marlow
- improved Cygwin and minimal MinGW support
- FileChannel: gzip compression if archived files now runs in a background thread (SF #1537481)
- POCO now compiles with large (64-bit) file support on Linux (SF #1536634)
- added format() function, which provides typesafe sprintf-like functionality (SF #1327621)
- added File::isLink()
- bugfix: dangling symbolic links in a directory no longer cause recursive remove to fail with file not found error
- added Void class (useful as argument to ActiveMethod)
- ActiveResult now supports exceptions
- bugfix: Timezone::utcOffset() and Timezone::dst() returned wrong values on Unix platforms (SF #1535428)
- added ActiveDispatcher class
- added ActiveStarter class, which is a policy used by ActiveMethod for starting methods
- ActiveRunnable moved to its own header file
- ThreadPool: added startWithPriority(), which allows for running threads with a different priority
- added error handling to dir sample
- added additional test case to HTTPServer test suite- HTMLForm: should now work with request methods other than POST and GET (all non-POST requests are treated the same as GET)
- clarified HTMLForm documentation
- HTMLForm bugfix: uploaded files no longer end up in value; PartHandler is called instead
- NameValueCollection: added get(name, defaultValue)
- added HTTPFormServer sample
- added Foundation::HashTable and SimpleHashTable
- added Net::HTTPSessionFactory
- improvements to AutoPtr and SharedPtr
- improvements to namespaces handling in XMLWriter
- Foundation Cache: fixed add implementation to match the docu: a 2nd add will now simply overwrite existing entries
- added DateTime::isValid()
- added Exception::rethrow() (virtual, must be overridden by all subclasses)
- Timer can now use a user-supplied ThreadPool
- added rethrow() to exception classes
- Net: made some constructors explicit
- Net: added SocketAddress constructor to HTTPClientSession
- Net: added HTTPSession::networkException() to check for exceptions swallowed by stream classes
- Net: added single string argument constructor to SocketAddress.
- Net: improved HTTPClientSession error handling (no more "Invalid HTTP version string" exceptions when the server prematurely closes the connection due to too much load)
- Net: improved HTTPSession error handling. Exceptions while sending and receiving data are stored for later retrieval and no longer get lost since streambufs swallow them.
- Net: added HTTPLoadTest sample
- fixed a bug when opening logfiles on Unix platforms causing an existing logfile to be truncated
- bugfix: log file purge intervals given in months did not work, due to a stupid typo
- added RawSocket and ICMP classes
- UUID: fixed a doc formatting bug
- NetworkInterface::list() now includes loopback interface on Windows (SF #1460309)
- made Exception::message() and Exception::nested() inline
- added Net::UnsupportedRedirectException
- HTTPStreamFactory throws an UnsupportedRedirectException if it encounters a redirect to https
- HTTP: fixed bad 100 Continue handling in client and server code
- added CONTRIBUTORS file


Release 1.1.2 (2006-07-07)
==========================

- Changed license to Boost license
- DBlite and NetSSL have been removed from the Boost-licensed release.
  Please contact Applied Informatics (info@appinf.com) if you're interested in them.


Release 1.1.1 (2006-04-03)
==========================

- NetSSL_OpenSSL now supports separate certificate verification
  settings for client and server.
- fixed SF #1460309 (enumerating network interfaces failed on 64bit Linux)
- TCPServer no longer crashes if accept() fails


Release 1.1.0 (2006-03-23)
==========================

- events no longer require awkward += new syntax
- source code and documentation cleanups
- basic support for new compilers and platforms


Release 1.1b2 (2006-03-04)
==========================

- made NetSSL threadsafe (added locking callbacks for OpenSSL)
- improved OpenSSL initialization (random generator seeding)
- various changes to improve compatibility with various platforms


Release 1.1b1 (2006-03-03)
==========================

- New Events package in Foundation. The package supports C#-style event handling
- New Cache package in Foundation: a templates-based caching framework
- added Any class to Foundation
- added DBLite library
- fixed a memory leak with layered configurations in the application
- made POCO_DLL the default (unless POCO_STATIC is #defined)
  It is no longer necessary to specify POCO_DLL in projects that use Poco
  (SourceForge Patch #1408231 and Feature Request #1407575).
- added Buffer template class to Foundation
- added the UnicodeConverter utility class. This is mainly used for Windows Unicode support and probably of little use for anything else.
- added Path::resolve()
- added Windows Unicode support. This calls the Unicode variant of the Windows API functions.
  For this to work, all strings must be UTF-8 encoded and POCO_WIN32_UTF8 must be defined in all compilation units.
- added StreamCopier::copyToString()
- added URIStreamOpener::unregisterStreamFactory() and new variants of URIStreamOpener::open() that also work with filesystem paths.
  This fixes SourceForge Bug #1409064 and Feature Request #1409062.
- added NodeIterator::currentNodeNP() to XML library
- added some sanity checks to UTF8Encoding::convert()
- added NetSSL - SSL support for Net library, based on OpenSSL
- console output of processes launched with Process::launch() is now visible


Release 1.0.0 (2006-01-19)
==========================

- removed unnecessary console output from ProcessTest
- documentation fixes


Release 1.0b2 (2006-01-16)
==========================

- added ProcessHandle class
- Process::launch() now returns a ProcessHandle instead of a process ID.
  This fixes a potential problem on Windows with Process::wait() when
  the process terminates before wait() is called.
- added SplitterChannel::close()
- added Logger::destroy()
- added POP3ClientSession::deleteMessage()
- added test for Process::launch()
- documentation fixes


Release 1.0b1 (2006-01-09)
==========================

- improved recognition of Windows paths in Path::parseGuess()
- added setCurrentLineNumber()/getCurrentLineNumber() to CountingStreamBuf
- improvememts to StreamTokenizer and Token; fixed documentation
- added a workaround for some strange istream behaviour with VS 2005 and FTPClientSessionTest
- improved exception/error reporting in cppunit
- added POP3ClientSession
- added Process::launch() and Process::wait()
- added Mail sample
- added MailStream and SMTPClientSession classes
- renamed some methods in DialogSocket to make them more general
- NullPartHandler has moved out of HTMLForm.cpp into a separate file
- Base64Encoder now always writes \r\n line ends
- MessageHeader::quote has an optional addition arg controlling the treatment of whitespace
- bugfix: MultipartReader had a problem with empty lines (\r\n sequences) in a part
- added MailMessage and MailRecipient classes
- added text encoding support for Windows-1252 codepage


Release 1.0a1 (2006-01-03) [internal]
=====================================

- mediaType is used consistently to refer to a MIME media type (some occurences of contentType and mimeType have been replaced)
- moved MediaType::quote() to MessageHeader and made it public
- added MultipartWriter::stream()
- Renamed AttachmentSource to PartSource and AttachmentHandler to PartHandler
- SIGPIPE is always blocked in main thread on Unix systems
- added EchoServer sample
- fixed a bug in SocketImpl::setBlocking() - did exactly the opposite (value to ioctl was wrong)
- fixed a memory leak in NotificationQueue sample
- added comparison operators to Socket so that Sockets can be used as keys in maps
- added Socket::setBlocking()
- added StreamSocket::connectNB() (non-blocking connect)
- added Observer::accepts()
- added SocketReactor, SocketConnector and SocketAcceptor classes to support event-based socket programming
- NamespacePrefixesStrategy now uses expat's XML_SetReturnNSTriplet().
  The previously used separate namespace handling code has been removed.
  This improves performance if NamespacePrefixesStrategy is used (both the n
  amespaces and namespace-prefixes SAX2 features are used)
- upgraded expat to 2.0 pre-release (2005-12-27) snapshot
- added TeeInputStream and TeeOutputStream classes
- added download sample for URIStreamOpener
- renamed registerOpener() to registerFactory() in HTTPStreamFactory and FTPStreamFactory
- added LineEndingConverter streams
- added FTPClientSession
- code and documentation clean-up
- added DialogSocket class
- reorganized HTTP test suites
- added FTPClientSession and FTPStreamFactory
- added DialogSocket class


Release 0.96.1 (2005-12-28)
===========================

- fixed a memory leak caused by a bug in Microsoft's stream implementation (see the comment in Foundation/StreamUtil.h for an explanation)
- added samples for Net library
- added uptime() and startTime() to Util::Application
- added DateTimeFormatter::format() for Timespan
- added ErrorHandler class and better exception handling for threads
- added poco_debugger() and poco_debugger_msg() macros
- added project and solution files for Visual Studio 2005 (due to some bugs/leaks in Microsofts standard library - see
  http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=e08bd793-3fef-40ff-adda-ed313e0eafcc
  we do not recommend using this for production purposes)
- fixed two problems with out-of-range string iterator in Path (the testsuite triggered an assertion in VC++ 8.0)
- fixed mac line endings in a few files
- added a workaround to the class loader that fixes strange behavior with VC++ 8.0. There seems to be a problem with typeid() not returning a valid typeinfo under certain circumstances.
- added buffer allocator argument to buffered stream buffer templates
- added buffer pools to HTTP to reduce memory fragmentation and to improve performance
- added Net to Windows build.cmd script
- added swap() to various classes that already support assignment
- added a null pointer check in DOMWriter::writeNode()
- fixed documentation in BinaryWriter.h and BinaryReader.h
- added explicit support for network byte order to BinaryReader and BinaryWriter
- added basic support for FreeBSD (needs more testing)
- BinaryReader: renamed readRawData() to readRaw() to be consistent with BinaryWriter::writeRaw()
- added support for uppercase output to HexBinaryEncoder.
- added MediaType class
- added QuotedPrintableEncoder and QuotedPrintableDecoder classes
- renamed ObjectFactory to Instantiator. This should prevent the confusion caused by DynamicFactory and ObjectFactory. Sorry for the inconvenience if you are already using this.
- AttachmentSource::filename() now returns const string&
- added StringAttachmentSource
- replaced old-style C casts with C++ casts in NetworkInterface.cpp
- MutexImpl (WIN32): replaced InitializeCriticalSection with InitializeCriticalSectionAndSpinCount, which should increase performance on multiprocessor or multicore systems when many locks are used.
- fixed a problem with STLport 5.0 when compiling StreamTokenizer
- HTTPStreamOpener now also works with no-path URIs (like http://www.appinf.com)
- fixed wrong delete usage (plain delete instead of delete [] was used in a few cases)
- fixed a handle leak in WinTestRunner


Release 0.95.4 (2005-11-07)
===========================

- fixed #1348006 and #1348005


Release 0.95.3 (2005-10-28) [internal]
======================================

- updated build scripts (patch #1339015)
- added support for AMD64 platforms (patch #1339015)
- MultipartWriter creates its own boundary if an empty string is passed in as boundary
- made MultipartWriter::createBoundary() public
- fixed wrong documentation for DateTimeFormat::HTTP_FORMAT
- added support for HTTP Basic authentication
- added support for HTTP Cookies
- added support for HTML forms


Release 0.95.2 (2005-10-22) [internal]
======================================

- fixed a potential problems with streams when close in destructor fails (added try..catch block around close in destructors)
- added HTTPServer & friends
- added hasIdleThreads() method to NotificationQueue
- added TCPServer and friend
- added support for HTTP proxies to HTTPClientSession and HTTPStreamOpener
- fixed documentation bugs (Mutex.h, ClassLoader.h)


Relesae 0.95.1 (2005-10-15) [internal]
======================================

- Tasks can now throw custom notifications (contributed by Alex Fabijanic)
- renamed URIFileStreamFactory to FileStreamFactory
- added a few methods to URI (setPathEtc(), getPathEtc(), getPathAndQuery())
- added new exception classes
- fixed some documentation
- added basic checks when reading a MessageHeader from a stream
- added HTTP classes (testsuite still incomplete)
- added MessageHeader, NameValueCollection, MultipartReader and MultipartWriter classes
- added Timespan::useconds()
- added ClassLoader::isLibraryLoaded()
- Socket classes use Timespan::useconds() to fill struct timeval
- added DatagramSocket, MulticastSocket and NetworkInterface classes
- added socket classes and related basic stuff
- added additonal constructor/assign to Timespan- added BasicBufferedBidirectionalStreamBuf
- fixed a potential MT issue in Base64Decoder
- code beautifying in [Un]BufferedStreamBuf
- more improvements to ClassLoader
- code cleanup and naming convention fixes (changed all *Imp classes to *Impl for consistency)


Release 0.94.1 (2005-09-30) [internal]
======================================

- added MetaSingleton (based on a contribution by Alex Fabijanic)
- added ClassLoader::create()
- added ClassLoader::instance()
- code clean-ups in FileChannel and related classes
- added SimpleFileChannel
- RotateAtTimeStrategy:
  ::getNextRollover() rewritten (buggy)
- DateTime
  microseconds assert corrected
  asserts in computeGregorian() (except for year - see comment in computeGregorian())
  milliseconds calculation modified in computeGregorian()
  microseconds assigned in computeGregorian()
  normalize() and checkLimit() private functions to correct cases of overflow for milli/microseconds
- LocalDateTime: added timestamp() method
- FileChannel:
  added "times" property (used to determine whether to use UTC or local time with RotateAtTimeStrategy)
  ::setProperty() modified (whenever "times" property is set, methods setRotation and setArchive are
  reinvoked to reflect the change)
- FileChannel: added support for archived file compression and archived file purging
- FileChannel tests modified
- FileChannel: put LogFile, RotateStrategy and ArchiveStrategy into their own files
- Message: added thread id field
- PatternFormatter: added %I specifier for thread id
- ThreadPool: PooledThread can be assigned a name
- TaskManager: task name is reflected in thread name
- fixed  LocalDateTime::operator - (const Timespan&) [#0000004]
- upon startup all loggers' channels are set to a console channel
- improved search for application configuration files (see loadConfiguration()).
- added Glob class (fixes #1249700)
- upgraded to zlib 1.2.3 (fixes #1261712)
- added Logger::dump()
- fixed a wrong condition in Logger::log(const Message&)
- Path::find() now also works with relative paths in addition to plain file names
- added Path(const Path&, const Path&) constructor
- added SharedPtr template
- added Path::tryParse()
- SAXParser::parse()/EntityResolverImpl now works for both URIs and local filesystem paths (fixes #1254812)


Release 0.93.1 (2005-08-01)
===========================

This release contains various new features, improvements and bugfixes:
- bugfix: UUIDGenerator throws an exception if no connected ethernet adapter can
  be found (and thus no MAC address can be obtained)
- added UUIDGenerator::createOne() method
- added error handling to UUID sample application
- added relational (==, !=, <, <=, >, >=) and arithmetic operators (+, -, +=, -=) to DateTime
- added LocalDateTime class
- added support for LocalDateTime to DateTimeParser and DateTimeFormatter
- added enqueueUrgentNotification() to NotificationQueue
- added support for timezone specifiers (%z, %Z) to PatternFormatter
- added [] operator and count() to StringTokenizer
- added elapsed() and isElapsed() to Timestamp
- added tzd() to Timezone
- added WinRegistryKey and WinService classes (Windows only)
- added index operator and count() to StringTokenizer
- added day/time-based log rotation (thanks to Alex Fabijanic), minor improvements to DateTimeParser
- support for Mac OS X 10.4/gcc 4.0.0
- added NamedMutex and NamedEvent
- added Process::kill()
- added NoPermissionException
- added Task and TaskManager classes
- added ServerApplication class
- bugfix: EventLogChannel - _logFile was not properly initialized in one constructor
- bugfix: File::createDirectories did not work for hierarchies deeper than three
- added Util::FilesystemConfiguration
- documented logging policy: log() must open channel if it hasn't been opened yet
- FileChannel::log() opens channel if necessary
- the application reference passed to initialize() and reinitialize() is no longer const
- improved application logging initialization
- fixed a problem with configuration view and property placeholders
- fixed Util build configuration for Visual Studio
- improved application samples
- fixed documentation for Semaphore class


Release 0.92.1 (2005-05-09)
===========================

This release introduces the Util library that provides support for
configuration file parsing (different file formats), command line
argument processing, logging configuration and a framework for
command line/server applications.
There have also been various changes to the Foundation library:
- a new RefCountedObject class that acts as a base class for
  various classes that use reference counting
- some missing members have been added to the AutoPtr template
- various improvements and bugfixes to the Logging framework, as well as
  new LoggingFactory and LoggingRegistry classses, and a NullChannel class
- the SignalHandler class (Unix platforms only)
- ObjectFactory and DynamicFactory template classes
- the Path::find method for searching a file in a list of directories
- various new Exception classes


Release 0.91.4 (2005-04-11)
===========================

This is mainly a maintenance release that adds support for QNX Neutrino
and OpenVMS. There are also minor bugfixes and improvements.

The Unix build system has been modified to work on QNX Neutrino.
The OpenVMS build system has been fixed and works now.
Some missing #include's have been added for QNX Neutrino.
Foundation/String.h: icompare now supports comparison with const char*;
the classic C version of isspace() has been used in a few places instead of the
C++ <locale> version, this has been fixed.
Foundation/Exception.h: IllegalStateException added.


Release 0.91.3 (2005-03-19)
===========================

This is a maintenance release that adds support for Solaris/Sun Forte C++.
No new features have been added.

An implementation of FPEnvironment for Solaris has been included.
All stream classes have been modified to work around an initialization
problem that surfaced with Sun's C++ compiler when using STLport.
Source-code compatibility with the previous release is not affected. Various
minor changes, mostly adding missing #include's for Solaris.


Release 0.91.2 (2005-02-27)
===========================

Minor improvements to the Unix build system. No actual changes in the
libraries.


Release 0.91.1 (2005-02-21)
===========================

This is the first public release of the C++ Portable Components.
The release does not contain all features planned for the later 1.0 release
(the NET library is missing, for example), but is already quite usable.
Please refer to the README file for more information and instructions for
building the libraries.