-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Expand file tree
/
Copy pathCHANGELOG
More file actions
4373 lines (3908 loc) · 231 KB
/
CHANGELOG
File metadata and controls
4373 lines (3908 loc) · 231 KB
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.15.3 (Unreleased)
===========================
API Changes:
- GH #5322 PropertyFileConfiguration: the optional parent-configuration
parameter (added in 1.15.1 via #5253) is now an AbstractConfiguration*
raw non-owning pointer instead of AbstractConfiguration::Ptr. Callers
must keep the parent alive for the child's lifetime. This fixes a
circular reference between LayeredConfiguration and child
PropertyFileConfiguration instances in Application::loadConfiguration().
The Ptr-taking overloads are retained as deprecated forwarders to
surface the lifetime contract at compile time; they will be removed
in a future release. Passing a temporary Ptr would leave _pParentConfig
dangling and should be replaced with a named variable whose lifetime
outlives the child. All three PropertyFileConfiguration constructors
are now explicit to prevent accidental implicit conversions.
Release 1.15.2 (2026-04-16)
===========================
Summary of Changes:
This release focuses on security hardening and bug fixes. Key changes include
TLS 1.3 support for NetSSL_Win, building Crypto and NetSSL with
OPENSSL_NO_DEPRECATED, removal of deprecated non-EVP OpenSSL code (breaking
change), significant multipart parsing performance improvements, Prometheus
thread/CPU metrics, GNU Hurd platform support, and numerous bug fixes across
networking, cryptography, and data handling. All bundled third-party libraries
have been updated to their latest releases.
Breaking Changes:
- GH #4602 OpenSSL: Remove deprecated non EVP code
Security Fixes:
- PR #5306 chore(dependencies): refresh bundled third-party libraries
- GH #5296 Crypto and NetSSL_OpenSSL should build with OPENSSL_NO_DEPRECATED defined
- GH #5278 NetSSL_Win does not support TLS 1.3
Bundled Third-Party Library Upgrades:
- libpng 1.6.55 -> 1.6.57 - security fixes
- libharu (hpdf) 2.4.5 -> 2.4.6 - security (TTF fixes) + memory alloc / Windows build fixes
- SQLite 3.51.2 -> 3.53.0 - WAL-reset database corruption fix, query planner improvements
- Quill 11.0.2 -> 11.1.0 - thread-local context fix, nullptr checks, backend poll hooks
Features and Enhancements:
- PR #5305 enh(Foundation): auto-disable FastLogger on unsupported platforms
- PR #5303 enh: bump macOS deployment target to 15.0 (Sequoia)
- PR #5300 chore(PropertyConfigurationFile): use '=' as default separator
- PR #5298 Foundation: Fix sign-compare warnings in StreamConverter
- PR #5294 Link with atomic library on architectures that need it
- GH #5292 enh: reduce binary size growth since 1.14.2
- GH #5291 Component Install Support
- PR #5286 fix(cmake,DNSSD): build fixes and cmake dependency resolution
- GH #5280 Remove WinDriver.cpp files
- GH #5275 Prometheus: add memory and thread metrics
- GH #5266 PropertyFileConfiguration: add include file capability
- GH #5250 Poco::Net::Context::addCertificateAuthority() could include a call to SSL_CTX_load_verify_locations()
- GH #4846 NetSSL/Crypto: Replace deprecated OpenSSL features
Bug Fixes and Improvements:
- PR #5309 fix(Redis,XML,CppParser): replace dynamic_cast with static_cast for hidden visibility
- GH #5308 Net: SocketProactor reports success on TCP write after non-blocking connect refusal
- PR #5304 fix(MongoDB): suppress false topology change notifications on heartbeat
- PR #5293 Port library to GNU Hurd
- GH #5288 Fuzzing Issue in MailMessage
- GH #5287 Fuzzing Issue in DateTime
- PR #5284 fix(Redis): use shared_ptr for NotificationCenter, harden AsyncNotificationCenter::stop()
- PR #5283 fix(ApacheConnector,Foundation): fix compile warnings with GCC 15
- GH #5269 Pipe close deadlocks on
- PR #5264 fix(Data): Robust date/time parsing in SQLite/PostgreSQL extractor
- GH #5263 X509Certificate validFrom method throws exception for timestamps ending with Z
- GH #4883 SecureSocketImpl::shutdown() regression since 1.14.0
- GH #4772 InvalidCertificateHandler onInvalidCertificate wrong exception
- GH #4118 Poco Multipart parsing is 10x slower than its Boost/beat or restinio equivalent
- GH #1097 Process::isRunning returns true for defunct tagged process
Release 1.15.1 (2026-03-24)
===========================
Summary of Changes:
This is a bugfix and maintenance release that also introduces a few new features:
- PropertyFileConfiguration now supports an `!include` directive for composing
configuration from multiple files, and preserves the original file layout
(comments, blank lines, key order) when saving changes.
- ProcessRunner gained a PROCESS_KILL_TREE option for terminating entire
process trees on supported platforms.
- clang-cl is now supported as a build compiler on Windows.
- LoggingConfigurator can now create fully configured loggers at runtime.
All bundled third-party libraries have been upgraded to their latest releases,
including security fixes for libexpat, libpng, zlib, and utf8proc.
Security Fixes:
- GH #5255 Upgrade bundled libexpat to release 2.7.5
- CVE-2026-32776 (NULL function pointer dereference)
- CVE-2026-32777 (infinite loop)
- CVE-2026-32778 (NULL dereference on OOM retry)
- PR #5232 enh(deps): upgrade bundled zlib, utf8proc, double-conversion, and wepoll
- zlib inflateCopy() OOB fix
- utf8proc out-of-bounds memory access fix
- GH #5207 Upgrade bundled dependencies to latest versions
- libpng CVE-2026-22801 (heap over-read)
- libpng CVE-2026-25646 (heap buffer overflow)
Bundled Third-Party Library Upgrades:
- libpng 1.6.53 → 1.6.55
- SQLite 3.51.1 → 3.51.2 - deadlock fix, query optimizer bug fixes
- zlib 1.3.1 → 1.3.2
- utf8proc 2.11.0 → 2.11.3
- LZMA SDK 25.01 → 26.00 - format improvements, sparse file TAR fix
- double-conversion 3.3.1 → 3.4.0
- wepoll 1.5.4 → 1.5.8
- cpptrace ~0.6.x → 1.0.4
- libexpat 2.7.4 → 2.7.5
Features, Enhancements and Third Party Updates:
- GH #5260 Allow creation of loggers with configuration at runtime
- GH #5257 Preserve properties file on save
- GH #5253 Add `!include` directive support to PropertyFileConfiguration
- PR #5233 Extract tessil into dependencies/
- PR #5231 Add WinGet instructions to README
- PR #5229 feat(CppUnit): add ENABLE_INSTALL_CPPUNIT option to control installation
- PR #5219 Extract and upgrade cpptrace to dependencies/
- PR #5215 fix(MinGW): update ODBCVER to 0x0350 for SQL_GUID support
- GH #5201 ProcessRunner: add PROCESS_KILL_TREE option
- GH #5195 clang-cl support
Bug Fixes and Improvements:
- PR #5245 fix(ODBC): defensive UTF-16 length handling in makeUTF8 for Informix
Note: some ODBC drivers (notably IBM Informix) report unreliable column sizes;
string data exceeding maxFieldSize (default 1024 bytes) will be truncated.
Use session.setProperty("maxFieldSize", Poco::Any(8192)) to increase the limit.
- GH #5237 Constify X509* usage where needed and use ASN1_STRING accessors
- GH #5236 ServerApplication: Windows SCM does not forward ImagePath arguments to ServiceMain
- GH #5228 deadlock when app exit if AsyncChannel is used in the logging system
- PR #5227 fix(Net): reactor-based HTTP server not responding to requests with body
- GH #5225 Building Data samples fails with CMake - SQLite support disabled but still required
- GH #5220 Poco::Data::Statement should not be in ST_DONE state after addBinding() call
- GH #5217 RedisStreamBuf: SIGSEGV when socket dies during std::getline()
- GH #5213 NotificationQueue::wakeUpAll() lost-wakeup race causes deadlock on shutdown
- GH #5210 File::getExecutablePath() returns directory instead of executable
- PR #5204 fix(MongoDB): Add timeout support and harden replica set connections
- GH #5200 1.15.0: linker errors with MSVC link-time-code-generation
- GH #5199 ProcessRunner::stop() termination signal lost on Windows due to NamedEvent race
- GH #5198 ServerApplication::hasConsole() returns false when stdout is closed (Windows)
- GH #5196 1.15.0 CMake build failure with -DENABLE_PDF:BOOL=FALSE
- GH #5176 Build error when cross-compiling for Win32 from Debian12
- GH #5157 Accessing array with JSONConfiguration
Release 1.15.0 (2026-02-10)
===========================
Summary of Changes:
This is a major feature release with C++20 as the default standard, comprehensive
MongoDB replica set support, a new reactor-based HTTP server implementation, ULID
support, C++17 modernization of core classes, and significant third-party library
upgrades.
Contributors:
Matej Kenda, Aleksandar Fabijanic, siren186, Günter Obiltschnig, nyashbox,
Lara Dzivdzanovic, Gleb Popov, Andrew Auclair, Mikhail Khachayants, Alexander Bychuk,
solarobot, Tomislav Petrović, Andrew Slabko, sky92zwq, Duncan Cunningham,
Marian Krivoš, Miko (Toyosatomimi no Miko), Ben Wolsieffer, Luis Caro Campos, Jonas Bülow,
Friedrich Wilckens, Austin Beer, Rajendra Singh, Miracle-1996, Nathan Jensen,
Peter Zmanovsky, nitram96, Nino Belušić, Matthew Stoltenberg, Katalin Rebhan,
Eric Engels, Milan Tepic, David Roman, Mert Övün, lanthora, Jouke Witteveen,
Jeremy Rifkin, Dan Rosser, Étienne Dupuis, Thomas Beutlich, Sergei Trofimovich, Kacper Piwiński,
Peter Klotz, Kari Argillander, Hussein Ismail, Mias du Plessis, Wei Liguo,
Arthur Chan, Olivier Smeesters, Karthik Bhat A
Notable Features:
Poco::MongoDB:
- Full replica set support: automatic server discovery, topology monitoring, failover
handling, read preference-based server selection, connection pooling, and URI parsing.
- Note: Legacy wire protocol (pre-MongoDB 5.1) has been removed. Use OP_MSG-based
interface for all MongoDB operations.
Poco::Net:
- New reactor-based HTTP server implementation (HTTPReactorServer) for high-performance
scenarios using the SocketReactor pattern instead of thread-per-connection model.
- HTTP cookies updated to RFC 6265 specification.
Poco::Redis:
- Event notifications support for pub/sub integration.
Poco::Foundation:
- ULID (Universally Unique Lexicographically Sortable Identifier) support with
ULIDGenerator class, similar to existing UUID support.
- C++17 modernization of Tuple, TypeList, ScopedLock and other core classes with
significant code reduction. Full backward API compatibility maintained.
- New AsyncNotificationCenter for asynchronous notification dispatch with auto-configured
worker threads.
- FastLogger (Quill wrapper, fully compatible with Poco Logging system)
- Single/Multiple Producer, Single Consumer lock-free notification queues.
- DataNotification class for carrying typed payloads in notifications.
- NativeThreadInfo support for including native thread ID and name in log messages.
- Thread interrupt feature added for cooperative thread cancellation.
- LogFileImpl::createFile() now creates parent directories if they don't exist.
- Poco::format() now supports %g and %G format specifiers like printf().
- Windows: Missing DLL names now reported in SharedLibrary load errors.
- Poco::Observer is now deprecated; use Poco::NObserver instead.
Poco::NetSSL_Win:
- Find certificates from Windows store using SHA-1 thumbprint for easier certificate
selection in enterprise environments.
Poco::Data:
- PostgreSQL: UUID field type (UUIDOID) now correctly mapped to Poco::UUID instead
of BLOB, enabling direct UUID value extraction from RecordSet.
- ODBC: Improved Oracle database integer type handling.
- ODBC: Fixed UUID handling in Preparator for SQL Server.
Build System:
- C++20 is now the default standard (use POCO_ENABLE_CPP20 CMake option).
- C++20 modules support added (ENABLE_MODULES). Modules match namespace names
(Poco.Foundation, Poco.Net, etc.) with a unified Poco module for importing all.
- External dependencies reorganised into separate 'dependencies' subdirectory.
- New POCO_UNBUNDLED_SQLITE option for fine-grained unbundled control.
- New POCO_MINIMAL_BUILD option builds only the libraries explicitly enabled via
ENABLE_* options, useful for reducing build times and binary size.
- CMake uninstall target renamed to 'uninstall-poco' to avoid conflicts.
Bundled Third-Party Library Upgrades:
- expat 2.7.1 → 2.7.4 - fixes CVE-2026-24515 (NULL pointer dereference), CVE-2026-25210 (integer overflow),
CVE-2025-59375 (DoS via memory allocation), CVE-2024-8176 (stack overflow)
- PCRE2 10.44 → 10.47 - skips 10.45 which had CVE-2025-58050 (heap-buffer-overflow)
- SQLite 3.49.1 → 3.51.1 - fixes CVE-2025-6965 (memory corruption)
- libpng 1.6.43 → 1.6.53 - fixes CVE-2025-64720, CVE-2025-65018 (buffer overflows), 5 security fixes total
- libharu 2.3.0RC2 → 2.4.5 (first stable release since RC)
- utf8proc 2.9.0 → 2.11.0 - adds Unicode 16 and 17 support
- LZMA SDK 9.22 → 25.01 (major upgrade from 2011 version)
- Quill 11.0.2 (new)
Breaking Changes and Migration Notes:
- GH #5030 Foundation: DateTimeParser rejects trailing garbage. Review any code that
relies on specific parsing behavior for non-standard date/time formats.
- GH #4844 AbstractConfiguration::createView() and createLocalView() return
AbstractConfiguration::Ptr (AutoPtr) since version 1.11. Code that assigns the
return value to a raw pointer (AbstractConfiguration*) will compile but cause
use-after-free crashes. Always use AbstractConfiguration::Ptr or auto for the
return value.
- GH #4781 Poco::MongoDB legacy wire protocol (OP_INSERT, OP_UPDATE, OP_DELETE,
OP_QUERY, OP_GET_MORE) has been removed. These were deprecated in MongoDB 5.0
and removed in MongoDB 5.1. All code must use the OP_MSG-based interface
(OpMsgMessage, OpMsgCursor). MongoDB 3.6+ is required.
- GH #4460 Remove VS projects from release. Use CMake to generate Visual Studio
solutions.
- GH #3739 Drop support for OpenSSL < 1.1.1. Systems with older OpenSSL versions
must upgrade before using this release.
Security Fixes:
- GH #5177 Upgrade bundled expat to 2.7.4 [fixes CVE-2026-24515, CVE-2026-25210]
- PR #5096 enh(deps): Upgrade bundled SQLite from 3.49.1 to 3.51.1
- PR #5093 enh(PDF): Upgrade bundled libpng from 1.6.43 to 1.6.53 (security fixes)
- GH #5028 Upgrade bundled libexpat to 2.7.3 [fixes CVE]
- GH #4912 Upgrade bundled PCRE2 to 10.47
- GH #4623 Poco::Zip library now checks archive consistency before extracting to
prevent path traversal and zip bomb attacks
Features:
- GH #5163 Foundation: Add demangleDot function for type name formatting
- GH #5162 Add IOLock
- GH #5134 Lock-free queues
- GH #5133 Add Channel::log(message&&)
- GH #5132 Make SpinlockMutex adaptive
- PR #5129 Foundation: Add ULID support
- GH #5083 CppUnit: Improve test name display and selection
- PR #5081 Foundation: Add benchmark infrastructure and FastLogger
- GH #5069 Missing DLLs not reported on Windows
- PR #5068 MongoDB: Add replica set support with automatic failover
- GH #5060 Auto-configure AsyncNotificationCenter number of workers
- GH #5058 Add event notifications to Redis
- GH #5047 Foundation: Add DataNotification for typed payload
- PR #4999 Modules: Add C++20 modules component
- PR #4946 Net: Add reactor-based HTTP server
- GH #4932 Windows: Better Poco::Environment::osDisplayName
- GH #4851 Foundation: AsyncNotificationCenter should dispatch asynchronously
- GH #4731 Foundation: Allow specifying SharedLibrary flags in ClassLoader
- GH #4518 Net: Update HTTP cookies to RFC 6265
- GH #3333 Foundation: Add NativeThreadInfo and blend in Message
Enhancements and Third-Party Updates:
- PR #5186 Foundation: Proper implementation of File::getExecutablePath
- GH #5178 XML: Use vanilla Expat sources instead of POCO-patched version
- PR #5166 Update readme with Windows and Arch Linux instructions
- PR #5154 MongoDB: Document performance header cleanup
- PR #5153 Util: Modernize Poco::Util and clean up code duplications
- GH #5150 Net: SocketReactor socket removal
- PR #5149 Build: Add unit testing build to oss-fuzz build script
- GH #5146 CMake: Use platform-specific cppignore files
- GH #5144 ODBC: Add nix shells for mssql and oracle
- PR #5136 Data: C++17 modernization of TypeHandler with variadic templates
- PR #5130 fix: Resolve compiler warnings and fix potential bugs
- PR #5119 Util: Add [[nodiscard]] to createView/createLocalView
- GH #5115 Data/SQLite: Remove redundant error messages
- PR #5103 fix: Resolve compiler warnings across multiple modules
- PR #5100 fix(Net): Use MessageHeader::quote() for boundary in HTMLForm
- PR #5099 enh(expat): Add patch system for POCO-specific xmlparse modifications
- PR #5098 enh(deps): Upgrade bundled libharu from 2.3.0RC2 to 2.4.5
- PR #5097 enh(deps): Upgrade bundled utf8proc from 2.9.0 to 2.11.0
- PR #5094 enh(SevenZip): Upgrade bundled LZMA SDK from 9.22 to 25.01
- PR #5092 fix: Resolve compiler warnings in Net, Zip, and Foundation modules
- PR #5086 Foundation: Simplify Tuple, TypeList, FunctionPriorityDelegate and other with C++17
- GH #5084 Add C++20 support and make it default
- GH #5078 Foundation: Improve logging system performance
- GH #5033 Build: Improve Linux debug build flags
- PR #5031 enh(MongoDB): Improve stability of the OpMsgCursor
- PR #5029 JSON: Eliminate extra copies in Object
- PR #5023 Find certificate from Windows store using its thumbprint
- PR #5013 CMake minimal build and dependencies
- PR #5005 enh(ScopedLock): Add std::adopt_lock, try_to_lock, defer_lock support
- GH #5002 Data/ODBC: Oracle integer types fail with v23 driver
- PR #4995 Foundation: Add deprecation reasons to APIs
- PR #4993 Enable Avahi support on FreeBSD
- PR #4991 Enable building Poco::Trace on FreeBSD
- PR #4990 Teach FindApache2.cmake to locate Apache on FreeBSD
- PR #4987 Poco Zip: link ZLIB::ZLIB when unbundled
- PR #4983 New SQLite Only Unbundled Option
- PR #4972 Add ENABLE_CPPUNIT to enable CppUnit without building the tests
- PR #4971 enh(CMake): FindOpenSSL.cmake with modifications for ARM Windows
- GH #4962 Add `bool Application::exists()`
- GH #4958 Poco::Observer is obsolete in favour of Poco::NObserver
- PR #4956 enh(cmake): Add option POCO_ENABLE_CPP20
- PR #4942 fix(Thread): fix Thread reuse error, add thread interrupt feature
- PR #4879 CMake: Include pcre2 source files to unbundled build based on pcre2 library type
- PR #4867 enh(Foundation): modernised header files (override, using, nullptr, ...)
- PR #4841 enh(Poco::Dynamic): Modernised code to use C++17 features
- GH #4789 Build: Provide zlib as shared dependency for Foundation and PDF
- GH #4651 Incorporate wdx_ziptype changes (fix for Poco::Zlib: Unexpected exceptions)
- GH #4348 0 (or NULL) for null pointer shall be replaced with nullptr
- GH #4202 Foundation: LogFileImpl::createFile() fails if path does not exist
- GH #2731 Poco::format() supports %g and %G format specifiers
Bug Fixes:
- GH #5191 Process/Win: Fix PROCESS_CLOSE_STD* flags closing parent's handles
instead of child's
- GH #5187 Foundation: Use setenv instead of putenv in Environment
- PR #5183 MongoDB: Fix Document::toString() to produce valid JSON by quoting
all string-like values
- GH #5182 Data: SQLChannel does not create directory for absolute paths
- GH #5180 Foundation: Fix ProcessRunner::start() to handle Windows executables
without .exe extension
- GH #5175 Foundation: Fix format specifiers in DateTimeFormatter and
PatternFormatter
- GH #5174 Foundation: Fix bad casing in include
- GH #5172 Foundation: Fix DateTimeParser tests with day 0
- GH #5168 Foundation: Lock-Order-Inversion Deadlock in NObserver/Observer
- PR #5165 fix(Foundation): VS2022 clang-cl compatibility
- GH #5161 Pipe is not thread-safe
- GH #5159 Lock-order-inversion deadlock in NotificationCenter
- GH #5158 Foundation: Change lock type to ScopedWriteLock in NotificationCenter
- GH #5147 Net: Fix TSAN warnings in SocketImpl
- GH #5142 VarHolderImpl: Implement isDate/isTime diagnostics
- PR #5140 Data: Refactor ODBC tests and fix testReconnect TypeInfo caching
- PR #5137 fix(Foundation): Replace timing-dependent tests with condition-based waiting
- GH #5131 Build: Fix PCRE compile with clang/c++20 and GNU make
- PR #5114 fix(Foundation): Fix deadlock in NotificationCenter removeObserver
- PR #5107 fix(Zip): Improve parsing of non-standard ZIP archives
- GH #5090 UBSan: Integer overflow errors in VarHolder.h
- GH #5087 Net: Fix dll attribute position in pocoNetworkInitializer to support
MinGW-GCC/Clang
- GH #5085 CMake build not stripping release binaries
- GH #5083 CppUnit: Improve test name display and selection
- GH #5070 CMake does not produce proper binary names
- GH #5064 Net: Build fails when POCO_HAS_UNIX_SOCKET is not defined
- GH #5059 Foundation: AsyncNotificationCenter hangs on stop()
- GH #5055 Make Socket::select() deprecation conditional
- GH #5054 Foundation: ProcessRunner termination detection unreliable
- GH #5048 Adapt makefiles for external dependencies
- GH #5044 Build: Missing bundled dependencies
- PR #5038 Prevent hostname being replaced with IP during handshake
- GH #5032 HTTPChunkedInputStream does not raise an error when stream ends prematurely
- GH #5025 PostgreSQL reconnect() doesn't restore session state correctly
- PR #5020 Poco::Path("C:") throws if path is disk-letter only
- GH #5018 Data/ODBC: Wrong UUID handling in Preparator
- GH #5017 Poco::Data ODBC recordset is reading previous row value
- GH #5011 Foundation: File crashes with Windows long path prefix (\\?\)
- GH #5010 Build failure with ODBC due to PREFIX macro conflict
- GH #5004 Bugcheck::poco_unexpected trailing semicolon
- PR #4994 chore(CI): Fix installation of Microsoft ODBC connector
- PR #4992 Fix building of FileStreamTest.cpp on FreeBSD
- PR #4986 Fix Thread_POSIX not compiling with Emscripten
- GH #4980 Zip component build error with CMake + POCO_UNBUNDLED
- GH #4978 ODBC MSSQL bulk insert UNIQUEIDENTIFIER type does not work
- GH #4977 Possible flaky tests when building for nixpkgs
- GH #4976 Net: SocketReactor dispatches ErrorNotification to all observers
- GH #4973 MSVC 2017 Build error: Cannot open include file 'version'
- GH #4970 Net: Deadlock in SocketReactor when removing handler from callback
- GH #4969 MongoDB::Database::authSCRAM() fails due to protocol typographic error
- PR #4966 Foundation: Resolve Poco::format ambiguity with std::format in C++23
- GH #4949 Foundation: TaskManager memory leak
- GH #4947 Build: ENABLE_SEVENZIP and ENABLE_ZIP still require ENABLE_XML
- GH #4924 Data/PostgreSQL: RecordSet does not recognize UUID field
- GH #4908 CI: UBSan errors in GitHub CI
- GH #4900 Data/ODBC: Binder hides AbstractBinder::bind()
- GH #4881 Conflicting 'uninstall' targets with CMake
- GH #4877 NetSSL: Context throws on unimplemented DH group
- GH #4871 CMake: static build with POCO_UNBUNDLED fails with static external pcre2
- GH #4870 Foundation: Incorrect bitwise check for newline mode in RegularExpression
- GH #4854 Poco::Data::Session constructor freezes when opening non-SQLite file
- GH #4848 Foundation: FileChannel purge race condition with compression (#2439)
- GH #4801 publish_release.yml should also update documentation website
- GH #4800 QA: packages-qa.yml should check result of mkdoc job
- GH #4756 Net: WebSocket sendFrame delay due to missing TCP_NODELAY
- GH #4639 Cannot run Crypto sample code
- GH #4627 Loading passphrase-protected key should not prompt cin
- GH #4549 ClassLoader crash when DLL and EXE use different runtime library
- GH #4537 Net: Socket::available causes connection reset on Windows UDP sockets
- GH #4439 Enable CodeQL fail if error found
- GH #4358 Reorganise source code of external libraries
- GH #4122 Util: ServerApplication compile error with C++20
- GH #3907 NetSSL_Win certificate verification failure with intermediate certificates
- GH #3694 Poco::Zip::Compress::addFile with MemoryInputStream broken since 1.12.0
Release 1.14.2 (2025-05-12)
===========================
Summary of Changes:
This is a bugfix release.
Breaking Changes:
- GH #4906 NetSSL_OpenSSL: non-blocking functions return value
Security Fixes:
- GH #4899 Upgrade bundled libexpat to 2.7.1 [fixes CVE]
- GH #4926 Crash in Poco::Net::NTLMCredentials::parseChallengeMessage
Features, Enhancements and Third Party Updates:
- GH #4892 TCPServer continues to accept connections after stop()
- GH #4911 Upgrade bundled libexpat to 2.7.1
- GH #4907 Upgrade bundled SQLite to 3.49.1
- GH #4905 XML fuzzing memory leak
- PR #4937 CMake: make utf8proc, PCRE2, zlib and expat private dependencies
Bug Fixes and Improvements:
- GH #4923 Poco::Data::SessionPool::dead() must check idle, not active, sessions
- GH #4886 Poco::Dynamic::Var conversion to floating point does not handle precision checks correctly for negative numbers.
- GH #4884 WebSocket receiveFrame() keeps returning the same frame when no payload (flags/header only)
- GH #4875 prebuild does not work as intended
- GH #4935 HTTP server/client request body RFC compliance
- GH #4930 Poco::Net::PollSet.cpp:188 compare between int and size_t is not correct.
- GH #4920 Adapt to avoid Clang warning deprecated-enum-enum-conversion
- GH #4915 [BUG] A SEGV at `Net/src/MultipartReader.cpp:164:1`
- PR #4933 Windows: report strings for all PROCESSOR_ARCHITECTURE_* constants in osArchitectureImpl()
- PR #4896 fix(TCPServer): continues to accept connections after stop()
Release 1.14.1 (2025-02-11)
===========================
Summary of Changes:
This is a bugfix release.
Features, Enhancements and Third Party Updates:
- GH #4833 Add start() method to the SocketReactor
- GH #4825 Poco::Net::HTTPResponse: add replaceCookie() and removeCookie()
Bug Fixes and Improvements:
- GH #4866 Poco::icompare(str, pos, ptr) out of bounds error if pos > str.size()
- GH #4864 OpenSSL: Need to add openssl/applink.c to Windows executables using OpenSSL
- GH #4859 Poco::NumberParser::tryParseHex raise Poco::SyntaxException exception.
- GH #4852 Issue concerning Net/CMakeLists.txt detection of HAVE_SENDFILE
- GH #4850 WebSocket: non-blocking receiveFrame()/receiveBytes() with TLS connection may get stuck receiving header
- GH #4840 latest 1.14.0 release fails to build on armv7hl
- GH #4832 Missing parameter for enabling FTS5
- GH #4831 httpS server seems to not work in v1.14
- GH #4828 POCO_HAVE_CXXABI_H does not check for existence of header file
- GH #4817 Windows Static Build Problem / Changed behaviour of POCO_MT (CMake 3.15)
- GH #4806 Poco 1.14.0 now requires libatomic
- GH #4798 PocoFoundationConfig.cmake is missing Utf8Proc dependency
- GH #3304 Windows Eventviewer not able to find PocoFoundation DLL
- PR #4865 Fix openssl cmake applink
- PR #4863 Fix StreamSocket::sendFile()
- PR #4862 fix(cmake): Add back missing compiler definitions for static_build in the generated CMake files
- PR #4845 fix(Net) Use of Uninitialized value in NTLMCredentials::parseChallengeMessage
- PR #4838 fix(Net) bad mask with odd number of bytes
- PR #4836 Fix typo that leads to the use of freed memory
- PR #4834 Missing parameter for enabling FTS5
- PR #4822 MongoDB: use constants instead of typed enum in OpMsgMessage
- PR #4818 Modifications of Poco::Any in an attempt to fix OSS Fuzz report
- PR #4849 fix(templates): Corrected explicit template instantiations
- PR #4811 fix(cmake): remove libatomic dependency
- PR #4805 fix(cmake): correct typo AVHAI -> AVAHI
- PR #4803 Updated CMake to also include the generated pocomessage.rc File
Release 1.14.0 (2024-12-01)
===========================
Summary of Changes:
This release marks many functions and classes as deprecated with C++ [[deprecated]]
attribute. Warnings can be silenced by defining POCO_SILENCE_DEPRECATED.
Deprecated functionality will be removed in one of the next releases.
Minimal supported standard is C++17 since version 1.13. Decent part of the
source code is modernised in this release.
Bundled software libraries are updated to latest versions:
- zlib 1.3.1
- expat 2.6.4
- pcre2 10.44
- libpng 1.6.43
- SQLite 3.47.1
Poco::Foundation:
- Support for Version 6 and Version 7 UUIDs
Poco::MongoDB:
- Obsolete wire-protocol (pre 3.6) that was removed from MongoDB in version 5.1
is obsolete in this version of Poco. It will be removed in one of next versions. Update code to use
OpMsg-based interface.
Poco::Data:
- Full Nullable support (including bulk inserts)
- ODBC SQL Server big strings support
Breaking Changes:
- GH #4426 Mark deprecated code for removal
Security Fixes:
- GH #4760 Upgrade libexpat to release 2.6.4
- GH #4690 Net: stack-buffer-overflow if HTTP request contains a header with invalid UTF32 sequence
- GH #4687 Net::MailMessage: Double free if Content-Disposition header is empty
- GH #4629 XML: fuzzing stack overflow
- GH #4123 DoS vulnerability in XML/src/xmlparse.cpp
- GH #4478 Upgrade bundled PCRE2 to 10.44
- PR #4677 libpng version 1.6.43
Features, Enhancements and Third Party Updates:
- PR #4787 NetSSL_OpenSSL and NetSSL_Win: non-blocking support, shutdown behavior fix
- PR #4681 zlib: Version 1.3.1 in module PDF (#4582)
- PR #4788 Update bundled SQLite to version 3.47.1 (released 2024-11-25)
- GH #4669 Upgrade JSON parser
- GH #4580 Poco::UUID/UUIDGenerator: add support for Version 6 and Version 7 UUIDs
- PR #4724 Hide zlib and expat libs from the user of Poco libraries (replaces #4579)
- GH #4766 ProcessRunner sync
- GH #4750 DBLogger sample
- GH #4712 Error code for pthread_mutex_lock failure
- GH #4710 UTF8::normalize()
- GH #4680 Poco::Path::forDirectory("C:") throws if the path is disk-letter only
- GH #4556 Overriding SocketReactor::run() is not reasonably possible
- GH #4553 Poco::Logger can not output __FILE__ and __LINE__
- GH #4544 The load balancing issue in Poco::ActiveThreadPool
- GH #4502 Optional and Nullable Improvements
- GH #4431 Consolidate LogFile implementation to use FileOutputStream
- GH #4423 `Dynamic::Var` silently loses precision on int->float conversion
- GH #4230 Poco::Data fixes and improvements
- GH #3997 operator<<() for SocketAddress doesn't work with ADL
- GH #3801 ODBC: DataFormatException getting Time value from SQL Server
- GH #3656 Parse json into specified descendant class
- GH #2808 Failed to insert Poco::Nullable< Poco::Data::Date> data into MSSQL using ODBC
- GH #1540 Poco::DateTime uses assertions for validation
- GH #4769 pocoNetworkInitializer - change fixed path (Windows Platform related)
- GH #4716 Logging: JSONFormatter
- GH #4692 Stacktrace
- GH #4643 `ServerApplication` callbacks
- GH #4632 Add `prebuild` action to make build
- GH #4630 Make `Util::Application::getApplicationPath()` and `findAppConfigFile()` protected
- GH #4559 ServerApplication has no pidfile option on windows
- GH #4536 Serializable Isolation level for SQLite Databases
- GH #4529 SQLChannel stops logging on LoggingSubsystem shutdown
- GH #4493 PocoDoc: search support
- GH #4447 Add checkers for Any holding nullptr
- GH #4414 Improve NotificationCenter speed and usability
- GH #4413 StreamCopier range support
- GH #4409 Add string_view format type spec
- GH #4365 `Poco::Data::Statement`: unified '?' placeholder support
- GH #4341 1.12.4 version Json set enum value failed
- GH #4324 Poco:Data::ODBC - MSSQL (n)varchar(max) length issue
- GH #4001 Insert NULL using BULK
- GH #3281 DTLS 1.2 support
- PR #4777 enh(ODBC): ODBC: DataFormatException getting Time value from SQL Serv…
- PR #4774 Non-blocking sockets support (TLS, WebSocket)
- PR #4770 feat(WindowsBuild): customizable path to include for pocoNetworkInitializer #4769
- PR #4755 Insert NULL using BULK #4001
- PR #4748 Activity now sets _running flag to false when it finishes or throws.
- PR #4721 fix(Data::ODBC): use connection and login timeouts in ODBC session implementation
- PR #4714 Add missing relational operators to VarIterator
- PR #4699 Apply patches from Debian packaging
- PR #4693 Serializable Isolation level for SQLite Databases
- PR #4663 Fixed incorrect SSL_CTX_set0_tmp_dh_pkey() usage
- PR #4624 enh(Poco::ActiveThreadPool): make it easy to use correctly
- PR #4621 enh(FileStream): Add FileStreamBuf::resizeBuffer
- PR #4617 enh(CI): Add unbundled build on Linux.
- PR #4616 Cppunit and data test enhancements
- PR #4569 Allow ADL for swapping Optional values
- PR #4563 enh(MongoDB): Document::get returns value by const reference
- PR #3040 HTTPS proxy support
- PR #4734 File lock
- PR #4424 Allow using Poco::FileStream to wrap arbitrary file handles/descriptors as C++ streams
- PR #4685 CMake: Remove possibility to build with internal OpenSSL
Bug Fixes and Improvements:
- GH #4773 Non-blocking sockets support (TLS, WebSocket)
- GH #4768 Data: warning: 'isNull' overrides a member function but is not marked 'override'
- GH #4742 Poco does not build on AIX
- GH #4722 libcxx: error: implicit instantiation of undefined template 'std::char_traits<unsigned char>'
- GH #4713 replaceInPlace std::wstring
- GH #4711 Poco::Placeholder initialization uses wrong size
- GH #4703 File Channel Logs in UTC Despite ‘times = local’
- GH #4695 Build error with GCC-15 (class Poco::PriorityDelegate<TObj, void, true>’ has no member named ‘_pTarget’)
- GH #4689 SMTPClientSession: replace bare newlines in message content with CRLF.
- GH #4668 Cross-module exception issue with pre-compiler define _HAS_EXCEPTIONS=0 used in an application
- GH #4664 HTTPCookie Constructor Fails to Handle Discard Attribute Properly
- GH #4648 ProcessRunner erases its PID file name
- GH #4644 TryParse scoped ipv6 addressess for addresses enclosed in [ ]
- GH #4634 Poco::ActiveThreadPool _targetCompleted event never reset
- GH #4610 Incorrect setting of ciphersuites for TLSv1.3
- GH #4592 Significant performance degradation of Poco::DateTimeParser
- GH #4586 MacOS ARM64 build error: symbol `fdopen` is duplicated defined
- GH #4585 MacOS ARM64 build warning: 'OS_CODE' macro redefined
- GH #4557 NestedDiagnosticContext should be thread local
- GH #4540 Postgres CMakeList.txt
- GH #4535 decodeWord adds spaces at folding borders, when there are special characters encoded
- GH #4525 RecordSet issue since 1.10.0
- GH #4503 GitHub runner: Linux thread sanitizer tests fail with "unexpected memory mapping"
- GH #4482 ProcessRunner does not detect launch errors
- GH #4395 There is no way to resolve host in advance and connect to HTTPS server with SNI.
- GH #4368 fix Oracle failing ODBC tests
- GH #3913 Missing sources in release package - buildwin.ps1 and NetSSL_Win
- GH #3896 TryParse scoped ipv6 addressess
- GH #3180 Poco::Environment::osDisplayName
- GH #2971 Poco::NamedEvent does not release System V semaphore on Linux
- GH #2439 Issue with log purging when FileChannel compression is enabled
- PR #4762 Properly define POCO_DLL and POCO_STATIC based on BUILD_SHARED_LIBS
- PR #4753 Openssl DH key size
- PR #4737 fix(cmake): fix Data::PostgreSQL target include, remove unnecessary cmake modules.
- PR #4727 GitHub runner ubuntu 24.04 and resolve some issues
- PR #4726 Explicitly define conditional LOB constructors for const (w)string &
- PR #4725 Exception (VS): static assert to make sure that _HAS_EXCEPTIONS is set
- PR #4702 SimpleRowFormatter.h: fix the build on `gcc-15` (unsatisfied `noexcept`)
- PR #4688 Fix double free in Net::MailMessage if Content-Disposition header is empty
- PR #4657 LibPNG Unbundled
- PR #4652 enh(ScopedLockWithUnlock): make it more alike std::unique_lock
- PR #4647 Use Int64 for TcpServerDispatcher::totalConnections()
- PR #4635 fix(Poco::Zip::ZipLocalFileHeader) Fix const-correctness
- PR #4622 fix(SimpleFileChannel): unify default "flush" to be false as it is in FileChannel
- PR #4613 Usage modern C++ features on JSON modules (enhanced)
- PR #4597 Fix MinGW build error
- PR #4593 DateTimeParser Validation and Performance Improvements
- PR #4550 enh: resolve unit test and few other warnings.
- PR #4545 Add CACHE PATH to multi-config output directory variables
- PR #4542 Decode word
- PR #4417 fix(logs): synchronise log file rotation and compression.
- PR #4085 Usage modern C++ features on JSON modules
Release 1.13.3 (2024-04-04)
===========================
Summary of Changes:
This is a bugfix release.
Security Fixes:
- GH #4496 Upgrade bundled libexpat to 2.6.2
Features, Enhancements and Third Party Updates:
- GH #4488 Add Poco::Util::Timer::idle() method to check if timer has any tasks scheduled
- GH #3807 DNS.resolve() should not be sorted in HostEntry::removeDuplicates()
- GH #4515 Upgrade bundled SQLite to 3.45.2
- PR #4517 Optimize Net module for Android
Bug Fixes and Improvements:
- GH #4505 ODBC Unicode wrappers do not check for null length pointers
- GH #4492 Poco::BasicMemoryStreamBuf is missing seekpos()
- GH #4486 DateTimeFormat RFC1036 Sunday name is short (should be long)
- GH #4468 Poco::URI: don't lowercase host part if it's a Unix domain socket
- GH #4450 Error between Poco::ActiveRecord and Poco::Data::PostgreSQL
- GH #4435 SecureStreamSocket is not thread-safe
- GH #4415 SecureSocketImpl::reset shouldn't close socket
- GH #3857 Thread_POSIX.cpp shouldn't convert thread IDs to long
- GH #3725 secure socket receiveTimeout throwing after configured timeout * 2
Release 1.13.2 (2024-02-19)
===========================
Summary of Changes:
This is a bugfix release.
Breaking Changes:
- GH #4378 [Data] Unconditionally includes of SQLParser.h
Bug fixes and Improvements:
- GH #4462 Disable SQL parsing by default
Release 1.13.1 (2024-02-05)
===========================
Summary of Changes:
This is a bugfix release.
Features and Enhancements:
- GH #4367 `SQLite` `FTS5` (full text search)
- GH #4335 Implement patches that Debian/Ubuntu applies when preparing deb packages
- GH #4216 Replace C string literals (const char*) with C++ std::string literals for std::string parameters.
- GH #3890 Get rid of SingletonHolder
- GH #2450 Why does it take the ThreadPool 10+ seconds to shutdown when there is nothing running.
- GH #2443 FileChannel doesn't flush to disk on unix until close
- GH #4437 Add arm cross-compile config and CI
- PR #4422 enh(File): Linux, macOS: microsecond precision for file times
- PR #4390 enh(DateTimeParser): option to cleanup input string before parsing (#569)
Bug Fixes and Improvements:
- GH #4443 Upgrade libexpat to 2.6.0
- GH #4425 Unit tests: optional testing of deprecated functionality
- GH #4421 Multiple calls to initializeSSL/uninitializeSSL cause assert failure during certificate validation
- GH #4411 NULL pointer: strategy when setting rotation never in FileChannel
- GH #4404 qnx build error: 'prctl' was not declared in this scope
- GH #4400 SocketReactor deadlock test intermittently hangs
- GH #4398 Can not install CppUnit target
- GH #4393 iOS ARM64 : Invalid access: Can not convert empty value.
- GH #4392 Environment_WIN32U nodeIdImpl access violation in 1.13.0
- GH #4375 UUID parser silently ignores too long strings
- GH #4347 github check job on macOS: testEncryptDecryptGCM occasionally fails
- GH #4313 Add macos sanitizer CI jobs
- GH #4019 MSYS2/mingw cmake linking problem
- GH #4018 cmake MSYS2 compile error for poco/net project
- GH #3908 JWT token unitest fail with POCO_NO_SOO on vs 2019
- GH #3650 MailMessage::read() chokes on "Content-disposition"
- GH #3331 Apple Silicon ARM64 : Invalid access: Can not convert empty value.
- GH #3213 NetSSL_Win\src\SecureSocketImpl.cpp CertFreeCertificateContext on nullptr
- GH #661 Automatic Lib Init (NetworkInitializer) is not working on MinGW
- PR #4427 enh(tests): Ability to enable/disable testing of deprecated functionality
- PR #4381 fix(Crypto): Compile error if EVP_CIPHER_CTX_init not defined.
Release 1.13.0 (2023-12-22)
===========================
Highlights
- Support for MongoDB 5.1 and newer
- C++17 is the lowest supported standard
- Poco::Data SQLParser (experimental, optional at build and runtime)
Breaking Changes
- GH #4305 Remove deprecated `toJSON` functions
- GH #4304 NumericString conversions inconsistencies
- GH #4235 Minimum standards: C++17 and C11
- GH #4230 Poco::Data fixes and improvements
- GH #3701 SocketReactor: Remove not useful handlers calls
- GH #569 SyntaxException for DateTimeParser::parse not working
Features and Enhancements
- GH #4276 MongoDB default function deleted clang warning
- GH #4261 Move autoCommit to AbstractSessionImpl
- GH #4254 MessageHeader: provide original HTTP header values before RFC2047 decoding
- GH #4249 Separate CI ODBC tests into separate job
- GH #4217 Protect Reactor stop() and wakeUp() from reentrance
- GH #4208 Add Unix socket support on windows
- GH #4206 Improve Data::SessionPool thread safety
- GH #4205 Data CI Improvements
- GH #4198 Poco::Data fixes and improvements
- GH #4183 Return Transaction execution status and error
- GH #4181 Virtualize ServerApplication::handlePidFile()
- GH #4160 Allow row count statements in Data::Recordset
- GH #4148 SQL server stored procedures fail
- GH #4146 ODBC max field size fails with int
- GH #4129 make clean and distclean should not trigger dependencies creation
- GH #4112 Redirect build stderr to a file
- GH #4107 SQLChannel fixes and improvements
- GH #4064 Add ProcessRunner and PIDFile
- GH #4063 pthread_setname_np was not declared in this scope
- GH #3951 Poco::Data::SessionPool: avoid sessions staying idle too long
- GH #3833 DynamicStruct::toString() escaping
- GH #3808 ICMPEventArgs Statistics bugs
- GH #3740 buildwin.ps1 failed to build x64
- GH #3713 SocketReactor improvements
- GH #3710 Thread::trySleep() assertion
- GH #3703 POSIX Thread::sleep() poor performance
- GH #3702 SocketReactor: post ErrorNotification on exception
- GH #3667 NumberFormatter: add Options enum for controlling prefix and lowercase
- GH #2967 build Poco Net failed MinGW [TIMESTAMP_REQUEST enum vs macro]
- GH #2770 Support for AF_UNIX on windows in recent windows builds.
- GH #2707 Trying to Compile with emscripten: Target architecture was not detected as supported by Double-Conversion
- GH #2578 HTTPClientSession not working with UNIX_LOCAL SocketAddress
- GH #2403 File::exists() wrong result
- GH #2331 Improve implementation of logging macros.
- GH #2282 Add Path::self()
- GH #1258 Poco::DateTimeParser::tryParse issue
- GH #3845 Poco::XML::Node `insertAfter` API
- GH #3659 Add thread name support
- GH #2291 Visitor Pattern for Dynamic::Var
- PR #4059 Update ICMPv4PacketImpl.h
- PR #4021 Fix compile with `-DPOCO_NET_NO_IPv6`
- PR #3885 Use map from key to count instead of multiset
- PR #3864 Remove unnecessary dup. of std::string in NumberParser::tryParseFloat
- PR #3802 ODBC: Fix DataFormatException getting Time value from SQL Server
- PR #3797 HTTPServer Applications Slow to Terminate #3796
- PR #3787 fix(Crypto) Update method to extract friendlyName from certificate
- PR #3705 Fix/posix sleep
- PR #3664 set thread name
- PR #3657 Add lower case format for `NumberFormatter`
- PR #4144 add visitor pattern implementation for Poco::Dynamic::Var
- PR #3476 add separate accessors and mutators for connect, send and receive tim…
Bug fixes and Improvements
- GH #4328 Environment::nodeId Should Throw SystemException When Node ID is 0
- GH #4311 Canceled `Task` shouldn't start running
- GH #4310 `ActiveThread` data race
- GH #4309 `ArchiveStrategy` data race
- GH #4308 `DirectoryWatcher` data race
- GH #4307 `NotificationCenter` data race
- GH #4274 Remove VS 140, 150 Projects
- GH #4259 Progen uses wrong AdditionalOptions separator
- GH #4252 SecureSocketImpl::currentSession() always return null
- GH #4244 Poco::Data::PostgreSQL::SessionHandle::setAutoCommit(bool) should not call commit() or startTransaction()
- GH #4241 Poco::FileInputStream broken in 1.12.5 and 1.11.8.
- GH #4231 Poco::Data::PostgreSQL::SessionHandle::disconnect() leaks memory for failed connections
- GH #4207 VS170 binary names mismatch on ARM
- GH #4187 Sync 1.11.-1.12-devel(1.13)
- GH #4109 Skip reset for null Binder
- GH #4106 ODBC Binder does not retrieve proper type precision
- GH #4093 PostgreSQL get sqlcode
- GH #4028 Incompatibility with gcc 13.1
- GH #3923 UDP Multicast : `leaveGroup()` method always throw an exception
- GH #3835 DynamicStruct::toString not wrapping empty strings
- GH #3823 Possibility of memory leak in Windows Environment nodeIdImpl?
- GH #3812 Poco::Data::Session::reconnect throw Connection in use
- GH #3704 TaskManager waits for all threads in the ThreadPool
- GH #3557 HTTPSClientSession read infinite loop on IOS
- GH #3484 Poco::MongoDB support for MongoDB 5.0?
- GH #3331 Apple Silicon ARM64 : Invalid access: Can not convert empty value.
- GH #3277 Use sendfile system call on Linux in HTTPServerResponseImpl::sendFile
- GH #3165 Can't reuse Poco::Data::Statement with a new set of bindings
- GH #2978 waitForTermination is unreliable on Linux.
- GH #2976 SharedMemoryImpl x64 size error
- GH #2965 Net fails to build with MinGW 9.20
- GH #2634 Data race in Poco::Net::HTTPServerConnection::onServerStopped
- GH #2366 Poco::Process::launch (UNIX) - possible memory leak when launching invalid command
- GH #2332 Optimize multi-arg logger methods to only call format() if log level allows
- PR #4353 Fix some issues found with clang-tidy
- PR #4345 Build.macos.openssl@1.1
- PR #4339 Fix RemoteSyslogChannel setProperty value check
- PR #4333 enh(NumberFormatter): Introduce backward compatible options for formatHex functions
- PR #4321 Github Action for Android NDK
- PR #4319 Implementation of Path::self()
- PR #4317 enh(ci): Add ENABLE_COMPILER_WARNINGS to cmake
- PR #4306 3102 json lowercase hex
- PR #4275 fix(NetSSL_Win): Error during handshake: failed to read data
- PR #4270 SplitterChannel addChannel - Prevent Duplicate Channels
- PR #4256 Implement MySQL::SessionHandle::startTransaction as submitting the SQL statement 'BEGIN'
- PR #4223 Virtualize ServerApplication::handlePidFile()
- PR #4211 Improve FifoEvent, ActiveMethod, ActiveResult
- PR #4200 fixed infinite loops
- PR #4199 fix(Poco::Data): fixes and improvements #4198
- PR #4190 CMake: Use CMAKE_INSTALL_* variables from GNUInstallDirs
- PR #4156 Allow passing raw fd's into ServerSocket
- PR #4138 add missing check when activerecord is enabled
- PR #4137 Fix platform when building for iPhoneSimulator
- PR #4103 Fix openssl session resumption, FTPS certificate validation vs hostname
- PR #4099 added new memeber SqlState to PostgreSQLException and made use of it.
- PR #4068 AutoPtr: do 'duplicate' before 'release'
- PR #4061 Adding API XML::AbstractContainerNode::insertAfterNP()
- PR #4025 EVPPKey constructor for modulus/exponent
- PR #4022 Make Binding and CopyBinding specializations final
- PR #4020 MongoDB: add missing name accessor to get database name.
- PR #4007 add sendfile method for streamsocket
- PR #4004 Mongodb op msg database commands fix
- PR #3989 Fix thread compilation issues on FreeBSD
- PR #3976 fix(devel): add missing 1.11 releases commits
- PR #3954 Complimentary to #3918 (std::*mutex wrapper)
- PR #3946 Add GNU Hurd support
- PR #3939 Solaris.build fix #3843 and #3643
- PR #3932 Cross-compiling with ming32-w64 on Linux #3815
- PR #3929 Fix multicast leave group
- PR #3863 testDynamicStructEmptyString always failed
- PR #3861 Do not incur insane stack limit in Foundation-ThreadPool test.
- PR #3860 Fix Aix Build
- PR #3842 hasMicrosecond is undefined
- PR #3821 chore(Net): correct spelling, remove some unused codes fix(SocketProactor): missing adding sock to read pollset fix(DialogServer): _lastCommands data race
- PR #3810 Custom rotate, archive and purge strategies for FileChannel
- PR #3749 buildwin.ps1 script error building the x64 version of Poco
- PR #3502 Add ODBC DirectExec public API
- PR #3102 Made it possible to use lowercase hex numbers, also when encoding JSON
- PR #3009 switching iPhoneSimulator arch to 64 bit
Release 1.12.5p2 (2023-12-04)
=============================
- GH #4320: Integer overflow in Poco::UTF32Encoding
Release 1.12.5p1 (2023-11-02)
=============================
- GH #4241: Poco::FileInputStream broken in 1.12.5 and 1.11.8
Release 1.12.5 (2023-10-25)
===========================
- GH #4219 Make POSIX event thread safe
- GH #4215 Remove SocketReactor dependency on Poco::Thread for sleeping
- GH #4197 ODBC::Binder UUID new/free mismatch
- GH #4194 PollSet filters out some events
- GH #4189 Use after free warnings
- GH #4180 receiveResponse() may not return response body stream
- GH #4177 Upgrade bundled pcre2 to 10.42
- GH #4147 missing \r\n when setting trailer header in chunked response
- GH #4134 Initialisation of _socketIndex in SSLManager (OpenSSL)
- GH #3867 Add options to disable STDIO in child process
- GH #3832 pthread_getname_np' was not declared in this scope
- GH #3786 FileChannel::setRotation overflow
- GH #2776 Shutdown TLS1.3 connection
- GH #4176 PCRE2 10.40 version has security vulnerabilities(CVE-2022-41409), when is the plan to fix it third-party
- GH #4150 Use Poco format instead of sprintf in Util
- GH #4116 Logging should evaluate only if the logging level is active
- GH #4071 PageCompiler: add referrerPolicy to page directive feature
- GH #4057 ODBC: SQL Anywhere Support
- GH #4031 Classes with virtual functions missing virtual destructors (compilation issues)
- GH #4023 CPPParser: Losing data if parameter std::function<void(bool)> is used
- GH #4014 wrong string offset in HTTPCredentials::isNTLMCredentials
- GH #4005 On UNIX platform, Poco::Path::getExtension() returns name of the hidden file if no extension is present
- GH #3986 Fix dead lock on Timer destructor
- GH #3968 Poco::Net::SocketConnector constructor should take SocketAddress by const reference
- GH #3935 The extractor in postgresql drops milliseconds
- GH #3926 CppParser throws exception when return value is specified to be in global namespace
- GH #3921 Deadlock in Timer when one sync and one async cancel requests are issued
- GH #3918 Static FastMutex fails to lock when issued from another thread on linux
- GH #3880 NetSSL_OpenSSL: Support session resumption with TLSv1.3
- GH #3876 Replace sprintf with snprintf in Environment and NumberFormatter to avoid deprecation warnings
- GH #3859 zlib headers not updated
- GH #3806 HTTPClientSession::receiveResponse() gives NoMessage instead of Timeout exception for SSL connection on Windows when using OpenSSL 3.0.x
- GH #3723 DateTimeFormatter creates invalid ISO8601 string
- GH #3147 Reading from request stream hangs when "Transfer-Encoding: chunked" is used
- GH #4218 Upgrade double-conversion to 3.3.0
- PR #4210 Fix pthread_setname not declared
- PR #4072 optimize checkUpperLimit and checkLowerLimit in VarHolder.h enhancement
- PR #4050 rename arc -> poco_arc
- PR #4038 Fixed Poco::format specifier for error code bug platform_specific
- PR #4011 fix #4005 Poco::Path::getExtension()
- PR #3999 Fix hang in destructor