forked from pocoproject/poco
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
2914 lines (2649 loc) · 158 KB
/
CHANGELOG
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
This is the changelog file for the POCO C++ Libraries.
Release 1.10.1 (2020-02-10)
===========================
- Upgraded bundled SQLite to version 3.31.1.
- GH #2894: Poco 1.10.0 doesn't build with cmake & POCO_UNBUNDLED
- GH #2898: poco 1.10/ NetSSL / openssl < 1.1 : default server usage changed (compare to 1.9.4)
- GH #2834: Wrong cancelation of the fix: incorrect type of store name parameter in
CertOpenStore API call into NetSSL_Win. Release 1.10.0
- GH #2791: allow pre-allocation of the buffer in Poco::LogStreamBuf.
- GH #2816: Modernise TLS configuration
- GH #2818: Add getSpecifiedPort() method in Poco::URI.
- GH #2909: Test failures on s390x architecture with 1.10.0
- GH #2911: Poco::UTF16Encoding and Poco::UTF32Encoding byte order conversion bug
- GH #2912: Poco::SHA2Engine computes incorrect hash on big-endian systems
- GH #2923: cmake: Version 1.10.0 not parsed correctly from VERSION file
- GH #2908: [Windows] Process arguments quoting is broken.
- GH #2894: Poco 1.10.0 doesn't build with cmake & POCO_UNBUNDLED
- GH #2920: Close Service Handle after DeleteService Function call
- GH #2919: Fixed Crash in WinService::setFailureActions
- GH #2922: 1.10 cmake build fails on FreeBSD 11.2 Release
- MySQL: resetting the session when putting it back into a SessionPool is now optional
(and disabled by default) due to a bug in MySQL messing up the character encoding when doing so.
- Poco::AutoPtr and Poco::SharedPtr now support comparison with nullptr.
Release 1.10.0 (2020-01-27)
===========================
- This release now requires a C++14 compiler (GCC 5, Clang 3.4, Visual C++ 2015).
- Visual Studio project and solution files for versions prior to 2015 have
been removed. Furthermore, the separate projects and solutions for 64-bit builds
have been removed and configurations have been merged in a single project file.
- POCO's fixed-size integer types are now based on <cstdint> types. This changes
the definition of Poco::Int64 and Poco::UInt64 on some platforms.
- Many methods exposing raw pointers have been changed to use smart pointers
(usually Poco::SharedPtr or Poco::AutoPtr) instead. This may break some existing
code. Specifically, the Logging framework in the Foundation library and the
Configuration framework in the Util library have been changed.
- New JWT library for dealing with JSON Web Tokens.
- Upgrade bundled SQLite to version 3.31.0.
- The NetSSL_OpenSSL library supports TLS 1.3 with OpenSSL 1.1.1 or later.
- The NetSSL_Win library supports TLS 1.3 if it's supported by the underlying SChannel
implementation.
- Added support for NTLM authentication in the Net library.
- NetSSL_OpenSSL now has a Poco::Net::FTPSClientSession and Poco::Net::FTPSStreamOpener
class for connecting to FTP servers over TLS.
- Fixed a potential crash in Poco::Net::NetworkInterface on Linux and macOS due to
an invalid cast when obtaining the MAC address of an interface.
- GH #2624: Poco::FileChannel/Poco:LogFileImpl::writeImpl() on Windows should translate \n to \r\n.
- GH #2869: X509Certificate does not render UTF-8 characters in subjectName
- GH #2863: NetworkInterface::map can fail to reveal some interfaces if an earlier one can not be handled
- GH #2807: Poco::Data::ODBC Binding of SQL Decimal Type
- GH #2812: String trimInPlace crashes with 0 size on Visual Studio Express 2017
- GH #2830: Fix wrong buffer size in client handshake when re-using a SecureSocket [NetSSL_Win]
- GH #2809: Allow to filter long tests using a command line argument
- GH #2853: Poco::Process::launch process environment unicode support is broken on Windows
- GH #2843: Poco::Net::MediaType::parse() does not split parameters
- GH #2772: On iOS real device (not simulator) the home directory is not usable
- GH #2689: Added tryWait() into Process and ProcessHandle. Handle kill()-ed UNIX process exit codes.
- GH #2866: unescape Backslash char in UTF8 unescape method
- GH #2879: Add support for SameSite attribute in HTTPCookie
- GH #2824: Poco::Environment missing UTF8/wstring support on Windows
- GH #2295: setEscapeUnicode() functions in JSON Array and Object classes ignore their boolean parameter
- GH #2306: Why does Poco explicitly define _WIN32_WINNT?
- GH #2802: Deprecated warning when building POCO with OpenSSL in submodule + cmake
- GH #2884: Is it a description error about setReceiveTimeout()?
- GH #2780: Allow Poco::Net::Context::usePrivateKey to accept ECKey and/or general EVPPKey
- GH #2747: NetSSL_Win: Context constructor usage argument should specify minimum supported SSL/TLS version
- GH #2745: Small problem in the code
- GH #2743: X509Certificate validFrom expiresOn Date parsing
- GH #2744: Poco::Mysql does not build with MySQL 8.0+
- GH #2686: Uploads larger than 2GB fail
- GH #2217: UUIDGenerator should allow random seed
- GH #1609: Improve XDG Base Directory Specification implementation
- GH #561: Support for XDG Base Directory Specification
- GH #2881: Add an option to force the use of PollingDirectoryWatcherStrategy
- GH #2584: Adding standard macOS legacy encodings
- GH #2885: fix Dynamic::Var parse string issue
- GH #2616: Restore pre-1.8.0 behaviour of Poco::Net::ServerSocket::bind.
- GH #2641: Implement DataURIStream for extracting data from data URIs.
- GH #2842: File fail on overwrite
- GH #2840: Deleting Registry Keys on the WOW6432Node is not possible on 64Bit Applications
- GH #2841: Service manager improvments
- GH #2827: X509Certificate: Get rid of deprecated OpenSSL 1.1 APIs
- GH #2826: CipherImpl: Fix small error with OpenSSL 1.1
- GH #2775: Fix issue in NetSSL_Win. Windows Server 2016 reboots while trying to establish an SSL connection.
- GH #2773: Fix the issue with incorrect type of store name parameter in CertOpenStore API call into NetSSL_Win
- GH #2766: Support qnx sdp7
- GH #2308: SocketAcceptor::setReactor() is broken
- GH #2250: Poco::strToInt<> fails for values right above the type's boundary / limit
- GH #2249: Poco::JSON::Object::set() should return reference to this to allow chaining.
- GH #2275: SQLite mismatch open/close API calls
- GH #1921: ICMPSocket does not check reply address
- GH #2092: Use PollSet in SocketReactor
- GH #2552: Poco::MongoDB test cases failed in Linux on IBM z
- GH #2546: MySQL session state is not cleared in SessionPool
- GH #2410: Preserve entries order in DynamicStruct
- GH #2467: Can not open certain zip files include data descriptor
- GH #2398: Poco 1.9.1 branch cmake build on FreeBSD 11.1 failed
- GH #2365: add struct tm support to DateTime
- GH #2348: NTPClient not checking reply address
- GH #2346: lock-order-inversion in SocketReactor
- GH #2330: add socket gather/scatter capabilities
- GH #2343: UDPServer and client
- GH #2329: add PMTU discovery
- GH #2345: SocketNotifier not thread-safe
- GH #2323: WebSocketTest.cpp faults reported by valgrind
- GH #1160: Poco::Net::NetException "SSL Exception: error:1409F07F:SSL routines:ssl3_write_pending:bad write retry"
- GH #2547: Reset connection when a session is returned to the SessionPool
- GH #2451: http client timeout on Windows 7 and Server 2008 R2
- GH #2417: Added missing IPv6 methods to SecureSocketImpl
- GH #2408: add ordered containers
- GH #2042: Android abstract namespace local socket address
- GH #2088: Fix race condition in TCPServerDispatcher.cpp
- GH #2892: SocketImpl::bind --> bind wrong config
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