forked from BrianHoldsworth/Poco
-
Notifications
You must be signed in to change notification settings - Fork 1
/
CHANGELOG
1475 lines (1338 loc) · 79.5 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.4.1p1 (2011-02-08)
============================
- Poco::Mutex is now a recursive mutex again on Linux
(this was caused by an unfortunate feature test for
PTHREAD_MUTEX_RECURSIVE which did not work on Linux
as PTHREAD_MUTEX_RECURSIVE is an enum value and not
a macro)
- Poco::Net::SecureSocketImpl::abort() now only shuts
down the underlying socket connection and does not free
the SSL object, due to multithreading issues.
Release 1.4.1 (2011-01-29)
==========================
- fixed SF# 3150223: Poco::BinaryReader cannot read std::vector correctly
- fixed SF# 3146326: SharedMemory issue
- made Poco::Net::HTTPSession::abort() virtual
- added Poco::Net::SecureStreamSocket::abort() to immediately close
a SSL/TLS connection without performing an orderly SSL/TLS shutdown.
- fixed SF# 3148126: HTTPSClientSession destructor (!) throws an IOException.
Added try/catch block to Poco::Net::SecureSocketImpl destructor.
- added additional constructor to Poco::Net::HTTPSClientSession, taking
both a socket and a session object.
- Poco::Net::HTTPSession::abort() now also can be used with a
Poco::Net::HTTPSClientSession.
- fixed SF# 3148045: make clean and distclean issues
- changed Data library names on Unix/Linux platforms to
match the names on Windows (PocoSQLite -> PocoDataSQLite,
PocoMySQL -> PocoDataMySQL, PocoODBC -> PocoDataODBC)
- added additional options to configure script
- added additional documentation to Poco::Net::HTTPClientSession
- Poco::Net::HTTPClientSession::receiveResponse() closes the connection
if an exception is thrown while reading the response header.
This ensures that a new connection will be set up for the next request
if persistent connections are used.
- improved Poco::Net::MultipartDecoder performance by reading directly from streambuf
- improved performance of Poco::Base64Encoder, Poco::Base64Decoder,
Poco::HexBinaryEncoder and Poco::HexBinaryDecoder by working directly with the
given stream's streambuf.
- improved performance of MessageHeader::read() by reading directly from streambuf
instead of istream.
- it is now possible to specify additional MIME part header fields
for a MIME part through the Poco::Net::PartSource class.
- upgraded SQLite to release 3.7.4
- added experimental VxWorks support for VxWorks 5.5.1/Tornado 2.2 and
newer. Please see the VxWorks Platform Notes in the reference documentation
for more information. Currently, the VxWorks is untested; full support
will be available in release 1.4.2.
- fixed SF# 3165918: Poco::DynamicAny fails to convert from string to float
- fixed SF# 3165910: Poco::Net::MessageHeader does not accept HTTP conforming header
- made Poco::Task::cancel() virtual so that tasks can implement custom
cancellation behavior.
- added optional argument to Poco::Util::WinRegistryKey constructor
to specify additional flags (in addition to KEY_READ and KEY_WRITE)
for the samDesired argument of RegOpenKeyEx() or RegCreateKeyEx().
- improved Poco::BasicEvent::notify() performance by avoiding an unnecessary heap
allocation.
- added additional well-known port numbers to Poco::URI: rtsp, sip, sips, xmpp.
- added Poco::Net::MediaType::matchesRange()
- improved invalid socket handling: a Poco::Net::InvalidSocketException is
now thrown instead of an assertion when an operation is attempted on a closed or
otherwise uninitialized socket.
Release 1.4.0 (2010-12-14)
==========================
- SSLManager: documentation fixes, code cleanup
- SSLManager: renamed PrivateKeyPassPhrase event to PrivateKeyPassphraseRequired
- added HTTPServerRequestImpl::socket() to get access to the underlying socket
- added Socket::secure() to find out whether a given socket supports SSL/TLS
- added SecureStreamSocket::havePeerCertificate()
- NetSSL: added support for turning off extended certificate validation (hostname matching)
- fixed SF# 2941228: ICMPClient::ping() issues on Mac OS X
- fixed SF# 2941231: ICMPEventArgs out of bounds array access
- added PageCompiler sample
- added missing newline at end of xmlparse.c
- Poco::Glob can now be used with an empty pattern which will match nothing (patch from Kim Graesman)
- added support for HTTP proxy authentication (Basic authentication only)
- fixed SF# 2958959: XMLWriter must encode CR, LF and TAB in attribute values as character entities.
- HTMLForm now supports PUT requests as well (see <http://pocoproject.org/forum/viewtopic.php?f=12&t=2163&p=3930#p3930>)
- fixed SF# #2970521: FileOutputStream and file permissions.
(also fixed in File class)
- removed an unused (and wrong) default parameter from EventImpl constructor for WIN32.
- added full support for session caching to NetSSL_OpenSSL
- fixed SF# 2984454: Poco::Util::Timer::scheduleAtFixedRate() works incorrectly
- fixed a bug in Poco::Util::Timer that could lead to high CPU load if
the system clock is moved forward.
- added system.nodeId to SystemConfiguration
- added a note to Poco::Util::ServerApplication documentation regarding
creation of threads
- added Poco::Net::IPAddress::broadcast() and Poco::Net::IPAddress::wildcard() to
create broadcast (255.255.255.255) and wildcard (0.0.0.0) addresses.
- fixed SF# 2916154: Poco::Net::IPAddress::isLoopback() only works for 127.0.0.1.
- added build configuration for iPhone Simulator
- GNU Make based build system provides new variables: POCO_HOST_BINDIR, POCO_HOST_BINPATH,
POCO_HOST_LIBDIR, POCO_HOST_LIBPATH and POCO_TARGET_* equivalents.
- Application::initialize() and Application::uninitialize() will now be called from within run().
This solves various issues with uninitialize() not being called, or being called inappropriately
from the Application destructor.
Please note that this change will break applications that use the Application class,
but only call init() and not run().
- added /startup option to specify startup mode for Windows services (automatic or manual)
- fixed SF# 2967354: SecureSocketImpl shutdown/close problem
- fixed SF# 3006340: LinearHashTable grows even if key already exists
- fixed a particularly nasty Windows error handling issue that manifested itself on WinCE:
WSAGetLastError() would be called after a std::string was created. The string creation could result
in a heap operation which called a Windows API to allocate memory. This would reset the
GetLastError() error code. Since WSAGetLastError() is just an alias for GetLastError(), the actual
error code from the socket operation would be lost.
- upgraded SQLite to 3.7.3
- added --header-prefix option to PageCompiler
- fixed SF# 3003875: SQLite data binding is broken
- fixed SF# 2993988: Issue with multiple calls to open()/close() on File*Stream
- fixed SF# 2990256: HTMLForm and file uploads
- fixed SF# 2969227: DateTimeParser bug
- fixed SF# 2966698: Socket connect with timeout issue
- fixed SF# 2981041: Bind NULL to a query (patch supplied)
- fixed SF# 2961419: UTF8Encoding::convert() doesn't work properly in DEBUG mode
- fixed SF# 2957068: Timeout value not picked up by proxy in HTTPSClientSession
- fixed NetSSL_OpenSSL test runner for Poco::Util::Application class changes
- Poco::AbstractEvent, Poco::AbstractCache and related classes now accept a Mutex class as additional template argument.
Poco::NullMutex can be used if no synchronization is desired.
- Added Poco::AbstractEvent::empty() to check whether an event has registered delegates.
- Poco::URI now correctly handles IPv6 addresses.
- Added Poco::Nullable class template.
- Added Poco::NullMutex, a no-op mutex to be used as template argument for template classes
taking a mutex policy argument.
- Poco::XML::XMLWriter: fixed a namespace handling issue that occured with startPrefixMapping() and endPrefixMapping()
- Poco::Net::Context now allows for loading certificates and private keys from Poco::Crypto::X509Certificate objects
and Poco::Crypto::RSAKey objects.
- Poco::Crypto::RSAKey no longer uses temporary files for stream operations. Memory buffers are used instead.
- fixed SF# 2957865: added Poco::UUID::tryParse()
- All Zip classes now use Poco::File[Input|Output]Stream instead of std::[i|o]fstream.
UTF-8 filenames will now be handled correctly on Windows.
- fixed SF# 2902029: zlib flush support (Z_SYNC_FLUSH)
- added Poco::TextBufferIterator class
- fixed SF# 2977249: Use epoll instead select under Linux
Socket::select() and Socket::poll() will use epoll under Linux if the Net library is compiled
with -DPOCO_HAVE_FD_EPOLL. This is the default for the Linux build configuration (but not for
the various build configurations targeting embedded Linux platforms).
- fixed SF# 2941664: Memory leak in DeflatingStream with zero-length streams (also fixed some other potential,
but unlikely, memory leaks)
- fixed SF# 2946457: added RejectCertificateHandler
- fixed SF# 2946621: Poco::Path bug with POCO_WIN32_UTF8
- fixed SF# 2929805: Environment::nodeId() does not work if no eth0 device exists
- Environment::nodeId() no longer throws if no hardware ethernet address can be determined.
It returns an all-zero address instead.
- Added additional classification functions to Poco::Unicode class; made classification functions inline.
- added Ascii class for ASCII character classification.
Methods of the Ascii class are now used instead of the
standard library functions (std::isspace(), etc.) due to
possible inconsistent results or assertions when the
standard library functions are used with character codes
outside the ASCII range.
- Poco::Net::MailMessage: fixed a bug in StringPartHandler that resulted in incorrect handling of non-ASCII data if
char is signed.
- Improved Poco::Net::SMTPClientSession compatibility with various mail servers when using AUTH_LOGIN authentication.
- Added CRAM-SHA1 support to Poco::Net::SMTPClientSession
- Poco::Net::SMTPClientSession now also supports login with AUTH PLAIN.
- Added Poco::Net::SecureSMTPClientSession class, supporting STARTTLS for secure SMTP connections.
- fixed an issue with SharedMemory on POSIX systems, where a shared memory region would be deleted
despite the server flag set to true (see http://pocoproject.org/forum/viewtopic.php?f=12&t=3494).
- PageCompiler: added a new page context directive, to allow passing custom context objects to the
request handler.
- fixed StreamSocketImpl::sendBytes() for non-blocking sockets
- added Poco::Net::DialogSocket::receiveRawBytes(), which should be used instead of receiveBytes() due to internal
buffering by DialogSocket.
- DOMParser: FEATURE_WHITESPACE has been renamed to FEATURE_FILTER_WHITESPACE (which now matches the underlying URI)
and is now handled correctly (previously we did the exact reverse thing)
- added Poco::Util::AbstractConfiguration::remove() to remove a configuration property; added removeRaw() implementations
to all implementations (contributions by Daniel Hobi and Alexey Shults).
- fixed NetSSL_OpenSSL compilation error on Windows with OpenSSL 1.0
- Added optional FIPS mode support to NetSSL_OpenSSL (contributed by Lior Okman).
If OpenSSL has been configured and built with FIPS support, then FIPS support can
be enabled by calling Poco::Crypto::OpenSSLInitializer::enableFIPSMode(true); or
by setting the fips property in the OpenSSL configuration to true (see Poco::Net::SSLManager
for details).
- fixed SF# 3031530: Ping and possible no timeout
- added Poco::Net::SocketReactor::onBusy(), called whenever at least one notification will
be dispatched.
- fixed SF# 3034863: Compiler warning in net/IPAddress.h with poco 1.3.2
- added support for CRAM-SHA1 authentication to SMTPClientSession
- Poco::format(): arguments can now be addressed by their index, e.g. %[2]d
- Poco::Util::Timer::cancel() now accepts an optional boolean argument.
If true is passed, cancel() waits until the task queue has been purged.
Otherwise, it returns immediately and works asynchronously, as before.
- Poco::Net::HTTPServerResponse::redirect() now accepts an optional additional
argument to specify the HTTP status code for the redirection.
- fixed a warning (BinaryReader.cpp) and error (ThreadLocal.cpp) in Foundation when compiling with Visual Studio 2010
- fixed a wrong exception in Poco::Net::POP3ClientSession
- Poco::Net::FTPClientSession and Poco::Net::SMTPClientSession now set the error code in exceptions they throw
- fixed a potential race condition with terminating a Windows service based on Poco::Util::ServerApplication
- fixed a bug in global build configuration file: explicitly setting POCO_CONFIG did not work on Solaris platforms,
as it was always overridden by the automatically determined configuration.
- Added support for MinGW cross builds on Linux.
- Changed location of statically linked build products in the gmake-based build system.
Statically linked executables are now in bin/$(OSNAME)/$(OSARCH)/static and no longer
have the _s suffix
- The POCO_VERSION macro now is in its own header file, "Poco/Version.h". It is no longer
available through "Poco/Foundation.h".
- added Poco::Net::HTTPCookie::escape() and Poco::Net::HTTPCookie::unescape().
- fixed SF# 3021173: Thread (POSIX) returns uninitialised value for OS priority
- fixed SF# 3040870: ThreadPool has no function to get assigned name
- fixed SF# 3044303: Can't use own config file on Solaris & OSARCH_64BITS ignored
- fixed SF# 2943896: AsyncChannel::log blocks
- fixed a bug in Poco::Util::WinRegistryKey::getInt():
The size variable passed to RegQueryValueExW() should be initialized to the size
of the output buffer.
- Added rudimentary support for compiling with Clang 2.0 (Xcode 4) on Mac OS X.
- New build configurations for Mac OS X: Darwin32 and Darwin64 for explicit
32-bit and 64-bit builds. Note that the default Darwin build configuration
will build 64-bit on Snow Leopard and 32-bit on Leopard, but will always place
build products in Darwin/i386. The new Darwin32 and Darwin64 configurations
will use the correct directories.
- fixed SF# 3051598: Bug in URL encoding
- Poco::ThreadPool::stopAll() (and thus also the destructor) will now wait for each
pooled thread to terminate before returning. This fixes an issue with creating
and orderly shutting down a thread pool in a plugin. Previously, a pooled thread
in a thread pool created by a dynamically loaded library might still be running
when the plugin's shared library was unloaded, resulting in Bad Things happening.
This can now no longer happen. As a downside, a pooled thread that fails to
finish will block stopAll() and the destructor forever.
- NetSSL_OpenSSL: for a SecureStreamSocket, available() now returns the number of bytes that
are pending in the SSL buffer (SSL_pending()), not the actual socket buffer.
- Added Poco::Net::HTTPClientSession::secure() to check for a secure connection.
- Poco::Net::HTTPRequest::setHost() now does not include the port number in the Host header
if it's either 80 or 443.
- log messages can now optionally include source file path and line number
- Poco::PatternFormatter can format source file path and line number (%U, %u)
- logging macros (poco_information(), etc.) now use __LINE__ and __FILE__
- new logging macros that incorporate Poco::format(): poco_information_f1(logger, format, arg) with up to 4 arguments
- added Poco::Net::HTTPSession::attachSessionData() and Poco::Net::HTTPSession::sessionData()
to attach arbitrary data to a HTTP session.
- added additional constructors to zlib stream classes that allow passing
a windowBits parameter to the underlying zlib library.
- fixed a potential error handling issue in Poco::Net::SecureSocketImpl.
- fixed SF# 3110272: RSACipherImpl bug.
- fixed SF# 3081677: ConfigurationView's getRaw not retrieving xml attributes.
- added basic support for Canonical XML and better pretty-printing support to Poco::XML::XMLWriter.
- Poco::Util::AbstractConfiguration now supports events fired when changing or
removing properties.
- XML: added support for finding DOM nodes by XPath-like
expressions. Only a very minimal subset of XPath is supported.
See Poco::XML::Element::getNodeByPath(), Poco::XML::Element::getNodeByPathNS()
and the same methods in Poco::XML::Document.
- Poco::Timer: If the callback takes longer to execute than the
timer interval, the callback function will not be called until the next
proper interval. The number of skipped invocations since the last
invocation will be recorded and can be obtained by the callback
by calling skipped().
- Poco::BinaryReader and Poco::BinaryWriter now support reading and
writing std::vectors of the supported basic types. Also, strings
can now be written in a different encoding (a Poco::TextEncoding
can be optionally passed to the constructor).
- Poco::UUID::nil() and Poco::UUID::isNil() have been renamed to
Poco::UUID::null() and Poco::UUID::isNull(), respectively, to avoid
issues with Objective-C++ projects on Mac OS X and iOS where nil is
a system-provided macro.
- Crypto bugfixes: RSACipherImpl now pads every block of data, not just the
last (or last two).
- Improved Crypto testsuite by adding new tests
- Added new Visual Studio project configurations: debug_static_mt and release_static_mt
(linking with static runtime libraries). The existing configurations debug_static
and release_static have been renamed to debug_static_md and release_static_md, respectively.
The suffixes of the static libraries have also changed. The static_md configurations
now build libraries with suffixes md[d], while the libraries built by the static_mt
configurations have mt[d] suffixes.
- Added Visual Studio project files for 64-bit builds.
- Added Visual Studio 2010 project files.
- Removed the use of local static objects in various methods due to
their construction not being threadsafe (and thus leading to
potential race conditions) on Windows/Visual C++.
- Fixed some warning on 64-bit Windows builds.
- The name of the Data connector libraries have changed. They are now
named PocoDataMySQL, PocoDataODBC and PocoDataSQLite.
- fixed SF# 3125498: Linux NetworkInterface::list() doesn't return IPv6 IPs
- fixed SF# 3125457: IPv6 IPAddress tests are wrong
- Added initialization functions for the NetSSL_OpenSSL and Crypto libraries.
These should be called instead of relying on automatic initialization,
implemented with static initializer objects, as this won't work with
statically linked executables (where the linker won't include the
static initializer object).
The functions are Poco::Crypto::initializeCrypto(), Poco::Crypto::uninitializeCrypto(),
Poco::Net::initializeSSL() and Poco::Net::uninitializeSSL().
Applications using Crypto and/or NetSSL should call these methods appropriately at
program startup and shutdown.
Note: In release 1.3.6, similar functions have been added to the Net library.
Release 1.3.6p2 (2010-01-15)
============================
- fixed an issue in the Windows implementation Poco::RWLock, where
tryReadLock() sometimes would return false even if no writers
were using the lock (fix contributed by Bjrn Carlsson)
- added Poco::Environment::libraryVersion().
- fixed SF# 2919461: Context ignores parameter cypherList
- removed an unused enum from RSACipherImpl.cpp (Crypto)
- integrated a new expat patch for CVE-2009-3560.
- fixed SF# 2926458: SSL Context Problem. The Poco::Net::Context
class now makes sure that OpenSSL is properly initialized.
- updated iPhone build configuration (contributed by Martin York)
- fixed SF# 1815124 (reopened): XML Compile failed on VS7.1 with
XML_UNICODE_WCHAR_T
- fixed SF# 2932647: FTPClientSession::getWorkingDirectory() returns a bad result
Release 1.3.6p1 (2009-12-21)
============================
- added support for using external zlib, pcre, expat and sqlite3 instead of
bundled ones (-DPOCO_UNBUNDLED, configure --unbundled)
- fixed SF# 2911407: Add sh4 support
- fixed SF# 2912746: RSAKey::EXP_LARGE doesn't work
- fixed SF# 2904119: abstractstrategy uses std::set but do not includes it
- fixed SF# 2909946: localtime NULL pointer
- fixed SF# 2914986: potential expat DoS security issues (CVE-2009-3560 and CVE-2009-3720)
- fixed SF# 2916305: SSL Manager crashes
- fixed SF# 2903676: Tuple TypeHander does not handle composites.
Release 1.3.6 (2009-11-24)
==========================
- added Environment::processorCount()
- added POCO_VERSION macro to Poco/Foundation.h
- fixed SF# 2807527: Poco::Timer bug for long startInterval/periodic interval
- fixed a bug similar to SF# 2807527 in Poco::Util::Timer.
- fixed SF# 2795395: Constructor doesn't treat the params "key" and "iv"
- fixed SF# 2804457: DateTime::checkLimit looks wrong
- fixed SF# 2804546: DateTimeParser requires explicit RFC1123 format
- added ReleaseArrayPolicy to Poco::SharedPtr
- upgraded to SQLite 3.6.20
- fixed SF# 2782709: Missing semicolons in "Logger.h" convenience
- fixed SF# 2526407: DefaultStrategy.h ++it instead of it++ in a loop
- fixed SF# 2502235: Poco STLPort patch
- fixed SF# 2186643: Data::Statement::reset() not implemented in 1.3.3
- fixed SF# 2164227: Allow File opened read only by FileInputSteam to be writable
- fixed SF# 2791934: use of char_traits::copy in BufferedStreamBuf::underflow
- fixed SF# 2807750: Support additional SQL types in SQLite
- fixed documentation bugs in Timed/PriorityNotificationQueue
- fixed SF# 2828401: Deadlock in SocketReactor/NotificationCenter (also fixes patch# 1956490)
NotificationCenter now uses a std::vector internally instead of a std::list, and the mutex is
no longer held while notifications are sent to observers.
- fixed SF# 2835206: File_WIN32 not checking aganist INVALID_HANDLE_VALUE
- fixed SF# 2841812: Posix ThreadImpl::sleepImpl throws exceptions on EINTR
- fixed SF# 2839579: simple DoS for SSL TCPServer, HTTPS server
No SSL handshake is performed during accept() - the handshake is delayed until
sendBytes(), receiveBytes() or completeHandshake() is called for the first time.
This also allows for better handshake and certificate validation when using
nonblocking connections.
- fixed SF# 2836049: Possible handle leak in FileStream
If sync() fails, close() now simply set's the stream's bad bit.
In any case, close() closes the file handle/descriptor.
- fixed SF# 2814451: NetSSL: receiveBytes crashes if socket is closed
- added a workaround for Vista service network initialization issue
(an Windows service using the Net library running under Vista will
crash in the call to WSAStartup() done in NetworkInitializer).
Workaround is to call WSAStartup() in the application's main().
Automatic call to WSAStartup() in the Net library can now be disabled
by compiling Net with -DPOCO_NET_NO_AUTOMATIC_WSASTARTUP. Also
the new Poco::Net::initializeNetwork() and Poco::Net::uninitializeNetwork()
functions can be used to call WSAStartup() and WSACleanup(), respectively,
in a platform-independent way (on platforms other than Windows, these
functions will simply do nothing).
- added VCexpress build script support (contributed by Jolyon Wright)
- fixed SF# 2851052: Poco::DirectoryIterator copy constructor is broken
- fixed SF# 2851197: IPAddress ctor throw keyword missing
- added Poco::ProtocolException
- PageCompiler improvements: new tags, support for buffered output, etc.
- better error reporting in Data MySQL connector (patch #2881270 by Jan "HanzZ" Kaluza)
- fixed SF# 1892462: FTPClient:Choose explicitely between EPSV and PASV
- fixed SF# 2806365: Option for PageCompiler to write output to different dir
- fixed a documentation bug (wrong sample code) in Process::launch() documentation
- added --header-output-dir option to PageCompiler
- fixed SF# 2849144: Zip::Decompress notifications error
- SAXParser has a new feature: "http://www.appinf.com/features/enable-partial-reads".
See ParserEngine::setEnablePartialReads() for a description of what this does.
- fixed SF# 2876179: MySQL Signed/Unsigned value bug
- fixed SF# 2877970: possible bug in timer task
- fixed SF# 2874104: wrong parsing empty http headers
- fixed SF# 2860694: Incorrect return code from SecureStreamSocketImpl::sendBytes
- fixed SF# 2849750: Possible bug with XMLWriter?
- added MailMessage::encodeWord() to support RFC 2047 word encoded
mail header fields when sending out mail containing non-ASCII
characters.
- fixed SF# 2890975: SMTPClientSession bug with 7BIT encoding
- fixed an issue with retrieving the value of socket options on Windows 7.
Before obtaining the value of a socket, we now initialize the variable receiving the
socket option value to zero.
- fixed SF# 2836141: Documentation errors
- fixed SF# 2864232: Socket::select() does not detect closed sockets on windows
- fixed SF# 2812143: Socket::select() should check socket descriptors...
- fixed SF# 2801750: NetworkInterface <iface-Obj>forName returns wrong subnetMask
- fixed SF# 2816315: Problem with POSIX Thread::sleepImpl
- fixed SF# 2795646: IPv6 address parsing bug
- fixed #0000092: ServerApplication::waitForTerminationRequest(), SIGINT and GDB.
Poco::Util::ServerApplication::waitForTerminationRequest() no longer registers a
signal handler for SIGINT if the environment variable POCO_ENABLE_DEBUGGER
is defined.
- fixed SF# 2896070: Poco::Net::Context with non-ASCII paths
- added Unicode Surrogate support to Poco::UTF16Encoding.
See Poco::TextEncoding::queryConvert() and Poco::TextEncoding::sequenceLength()
for how this is implemented. Contributed by Philippe Cuvillier.
- fixed SF# 2897650: [branch 1.3.6] Net.SocketAddress won't compile for CYGWIN
- fixed SF# 2896161: Building on Windows fails when basedir has space in it
- fixed SF# 2864380: Memory leak when using secure sockets
- NetSSL_OpenSSL: the SSL/TLS session cache is now disabled by default and
can be enabled per Context using Poco::Net::Context::enableSessionCache().
- fixed SF# 2899039: Wrong DST handling in LocalDateTime
- added RWLock::ScopedReadLock and RWLock::ScopedWriteLock (contributed by Marc Chevrier)
- added Thread::TID type, as well as Thread::tid() and Thread::currentTid() to obtain the native
thread handle/ID
- added Zip file comment support
- On Windows, Poco::SharedLibrary::load() now uses LoadLibraryEx instead of LoadLibrary
and uses the LOAD_WITH_ALTERED_SEARCH_PATH if an absolute path is specified. This will
add the directory containing the library to the search path for DLLs that the
loaded library depends upon.
- Mac OS X build settings now match those used by default Xcode projects, making linking the
POCO libs to Xcode projects easier
- Replaced use of std::valarray in Poco::Net::ICMPEventArgs with std::vector due to issues with
std::valarray together with STDCXX debug mode on OS X
Release 1.3.5 (2009-05-11)
==========================
- fixed SF# 2779410: Poco::Data::ODBC::HandleException impovement
- fixed wrong exception text for Poco::UnhandledException
- Fixed a problem with SSL shutdown that causes clients (web browsers)
to hang when the server attempts to perform a clean SSL shutdown. We now call
SSL_shutdown() once, even if the shutdown is not complete after the first call.
- added Poco::Crypto::X509Certificate::save()
- fixed a bug in Poco::Zip::Decompress that results in wrong paths for extracted files
- fixed a bug in Poco::Zip::ZipManipulator where the Zip file was opened in text format
on Windows.
- added Poco::Crypto::X509Certificate::issuedBy() to verify certificate chain.
- fixed 0000089: Thread::sleep() on Linux is extremely inaccurate
- added methods to extract the contents of specific fields from the
subject and issuer distinguished names of a certificate.
Release 1.3.4 (2009-04-21)
==========================
- fixed SF# 2611804: PropertyFileConfiguration continuation lines
- fixed SF# 2529788: ServerApplication::beDaemon() broken
- fixed SF# 2445467: Bug in Thread_WIN32.cpp
- Improved performance of HTTP Server by removing some
string copy operations
- fixed SF# 2310735: HTTPServer: Keep-Alive only works with send()
- fixed appinf.com IP address in Net testsuite
- fixed RFC-00188: NumberFormatter and float/double numbers
- added --pidfile option to ServerApplication on Unix
- fixed SF# 2499504: Bug in Win32_Thread when using from dll (fixed also for POSIX threads)
- fixed SF# 2465794: HTTPServerRequestImpl memory leak
- fixed SF# 2583934: Zip: No Unix permissions set
- the NetSSL_OpenSSL library has been heavily refactored
- added NumberFormatter::append*() and DateTimeFormatter::append() functions
- use NumberFormatter::append() and DateTimeFormatter::append() instead of format() where
it makes sense to gain some performance
- added system.dateTime and system.pid to Poco::Util::SystemConfiguration
- added %F format specifier (fractional seconds/microseconds) to DateTimeFormatter,
DateTimeParser and PatternFormatter.
- fixed SF# 2630476: Thread_POSIX::setStackSize() failure with g++ 4.3
- fixed SF# 2679279: Handling of -- option broken
- added compile options to reduce memory footprint of statically linked applications
by excluding various classes from automatically being linked.
See the POCO_NO_* macros in Poco/Config.h.
- fixed SF# 2644940: on Windows the COMPUTER-NAME and the HOSTNAME can be different
- added DNS::hostName() function
- added build configuration for iPhone (using Apple's SDK)
- basic support for AIX 5.x/xlC 8
- fixed a bug resulting in a badly formatted exception message with IOException
thrown due to a socket-related error
- fixed SF# 2644718: NetworkInterface name conflict in MinGW
- added a missing #include to CryptoTransform.h
- fixed SF# 2635377: HTTPServer::HTTPServer should take AutoPtr<HTTPServerParams>
- replaced plain pointers with smart pointers in some interfaces
- upgraded to sqlite 3.6.13
- improved Data::SQLite error reporting
- Poco::Glob now works with UTF-8 encoded strings and supports case-insensitive comparison.
This also fixes SF# 1944831: Glob::glob on windows should be case insensitve
- added Twitter client sample to Net library
- Fixed SF# 2513643: Seg fault in Poco::UTF8::toLower on 64-bit Linux
- Poco::Data::SessionPool: the janitor can be disabled by specifying a zero idle time.
- added Poco::Data::SessionPool::customizeSession()
- added support for different SQLite transaction modes (DEFERRED, IMMEDIATE, EXCLUSIVE)
- fixed a few wrong #if POCO_HAVE_IPv6 in the Net library
- added support for creating an initialized, but unconnected StreamSocket.
- added File::isDevice()
- added family() member function to SocketAddress,
- Data::SQLite: added support for automatic retries if the database is locked
- XMLConfiguration is now writable
- fixed an IPv6 implementation for Windows bug in HostEntry
- Timer class improvement: interval between callback is no longer influenced by the
time needed to execute the callback.
- added PriorityNotificationQueue and TimedNotificationQueue classes to Foundation.
These are variants of the NotificationQueue class that support priority and
timestamp-tagged notifications.
- added Poco::Util::Timer class. This implements a timer that can schedule different
tasks at different times, using only one thread.
- the signatures of Poco::NotificationQueue and Poco::NotificationCenter member functions
have been changed to accept a Poco::Notification::Ptr instead of Poco::Notification*
to improve exception safety. This change should be transparent and fully backwards
compatible. The signature of the methods returning a Poco::Notification* have not been
changed for backwards compatibility. It is recommended, that any Notification* obtained
should be immediately assigned to a Notification::Ptr.
- SQLite::SessionImpl::isTransaction() now uses sqlite3_get_autocommit() to find out
about the transaction state.
- refactored Crypto library to make it independent from NetSSL_OpenSSL.
- added support for RSA-MD5 digital signatures to Crypto library.
- removed SSLInitializer from NetSSL library (now moved to Crypto library)
- added build configs for static libraries to Crypto library
- OpenSSL now depends on Crypto library (which makes more sense than
vice versa, as it was before). Poco::Net::X509Certificate is now
a subclass of Poco::Crypto::X509Certificate (adding the verify()
member function) and the Poco::Net::SSLInitializer class was
moved to Poco::Crypto::OpenSSLInitializer.
- added build configs for static libraries to Zip
- added batch mode to CppUnit::WinTestRunner.
WinTestRunnerApp supports a batch mode, which runs the
test using the standard text-based TestRunner from CppUnit.
To enable batch mode, start the application with the "/b"
or "/B" command line argument. Optionally, a path to a file
where the test output will be written to may be given:
"/b:<path>" or "/B:<path>".
When run in batch mode, the exit code of the application
will denote test success (0) or failure (1).
- testsuites now also work for static builds on Windows
- The IPv6 support for Windows now basically works (Net library compiled with POCO_HAVE_IPv6)
- fixed a potential error when shutting down openssl in a statically linked application
- added static build configs to Data library
- added Poco::AtomicCounter class, which uses OS-specific APIs for atomic (thread-safe)
manipulation of counter values.
- Poco::RefCountedObject and Poco::SharedPtr now use Poco::AtomicCounter for
reference counting
- fixed SF# 2765569: LoadConfiguration failing from current directory
Release 1.3.3p1 (2008-10-09)
============================
- Fixed SF# 2153031: 1.3.3 Crypto won't compile on 64-bit Linux
- Fixed a warning in MySQL connector
- Updated README
- The global Makefile in the Zip archive is no longer broken
Release 1.3.3 (2008-10-07)
==========================
- Threads now have optional user-settable stack size (if the OS supports that feature)
- Events now support simplified delegate syntax based on delegate function template.
See Poco::AbstractEvent documentation for new syntax.
- Cache supports new access expire strategy.
- Upgraded to SQLite 3.6.2
- Upgraded to PCRE 7.8
- added HttpOnly support to Poco::Net::HTTPCookie
- NetworkInterface now has displayName() member (useful only on Windows)
- Poco::Util::WinRegistryKey now has a read-only mode
- Poco::Util::WinRegistryKey::deleteKey() can now recursively delete registry keys
- Poco::File::created() now returns 0 if the creation date/time is not known, as
it's the case on most Unix platforms (including Linux).
On FreeBSD and Mac OS X, it returns the real creation time.
- Time interval based log file rotation (Poco::FileChannel) now works
correctly. Since there's no reliable and portable way to find out the creation
date of a file (Windows has the tunneling "feature", most Unixes don't provide
the creation date), the creation/rotation date of the log file is written into
the log file as the first line.
- added Environment::nodeId() for obtaining the Ethernet address of the system
(this is now also used by UUIDGenerator - the corresponding code from UUIDGenerator
was moved into Environment)
- added a release policy argument to SharedPtr template
- Socket::select() will no longer throw an InvalidArgumentException
on Windows when called with no sockets at all. If all three socket
sets are empty, Socket::select() will return 0 immediately.
- SocketReactor::run() now catches exceptions and reports them via
the ErrorHandler.
- SocketReactor has a new IdleNotification, which will be posted when
the SocketReactor has no sockets to handle.
- added referenceCount() method to Poco::SharedPtr.
- POCO now builds with GCC 4.3 (but there are some stupid warnings:
"suggest parentheses around && within ||".
- Solution and project files for Visual Studio 2008 are included
- The Zip library is now officially part of the standard POCO release.
- The Crypto library (based on OpenSSL) has been added. The original code
was kindly contributed by Ferdinand Beyer.
- A Data Connector to MySQL, contributed by Sergey Kholodilov, is now part
of the POCO release.
- fixed SF# 1859738: AsyncChannel stall
- fixed SF# 1815124: XML Compile failed on VS7.1 with XML_UNICODE_WCHAR_T
- fixed SF# 1867340: Net and NetSSL additional dependency not set - ws2_32.lib
- fixed SF# 1871946: no exception thrown on error
- fixed SF# 1881113: LinearHashTable does not conform to stl iterators
- fixed SF# 1899808: HTMLForm.load() should call clear() first
- fixed SF# 2030074: Cookie problem with .NET server
- fixed SF# 2009707: small bug in Net/ICMPPacketImpl.cpp
- fixed SF# 1988579: Intel Warning: invalid multibyte character sequence
- fixed SF# 2007486: Please clarify license for Data/samples/*
- fixed SF# 1985180: Poco::Net::DNS multithreading issue
- fixed SF# 1968106: DigestOutputStream losing data
- fixed SF# 1980478: FileChannel loses messages with "archive"="timestamp"
- fixed SF# 1906481: mingw build WC_NO_BEST_FIT_CHARS is not defined
- fixed SF# 1916763: Bug in Activity?
- fixed SF# 1956300: HTTPServerConnection hanging
- fixed SF# 1963214: Typo in documentation for NumberParser::parseFloat
- fixed SF# 1981865: Cygwin Makefile lacks ThreadTarget.cpp
- fixed SF# 1981130: pointless comparison of unsigned integer with zero
- fixed SF# 1943728: POCO_APP_MAIN namespace issue
- fixed SF# 1981139: initial value of reference to non-const must be an lvalue
- fixed SF# 1995073: setupRegistry is broken if POCO_WIN32_UTF8 enabled
- fixed SF# 1981125: std::swap_ranges overloading resolution failed
- fixed SF# 2019857: Memory leak in Data::ODBC Extractor
- fixed SF# 1916761: Bug in Stopwatch?
- fixed SF# 1951443: NetworkInterface::list BSD/QNX no netmask and broadcast addr
- fixed SF# 1935310: Unhandled characters in Windows1252Encoding
- fixed SF# 1948361: a little bug for win32
- fixed SF# 1896482: tryReadLock intermittent error
- workaround for SF# 1959059: Poco::SignalHandler deadlock
the SignalHandler can now be disabled globally by adding a
#define POCO_NO_SIGNAL_HANDLER to Poco/Config.h
- fixed SF# 2012050: Configuration key created on read access
- fixed SF# 1895483: PCRE - possible buffer overflow
- fixed SF# 2062835: Logfile _creationDate is wrong
- fixed SF# 2118943: out_of_bound access in Poco::Data::BLOB:rawContent
- fixed SF# 2121732: Prevent InvalidArgumentException in SocketReactor
- fixed SF# 1891132: Poco::Data::StatementImpl::executeWithLimit is not correct
- fixed SF# 1951604: POCO refuses to compile with g++ 4.3.0
- fixed SF# 1954327: CYGWIN's pthread does not define PTHREAD_STACK_MIN
- fixed SF# 2124636: Discrepancy between FileWIN32(U)::handleLastError
- fixed SF# 1558300: MinGW/MSYS Builds
- fixed SF# 2123266: Memory leak under QNX6 with dinkum library
- fixed SF# 2140411: ScopedUnlock documentation bug
- fixed SF# 2036460: UUID regression tests are failing on Linux with g++ 4.3.1
- fixed SF# 2150438: Tuple TypeHandler position increment size is wrong
Release 1.3.2 (2008-02-04)
==========================
Foundation, XML, Net, Util:
- added POCO_NO_SHAREDMEMORY to Config.h
- POCO_NO_WSTRING now really disables all wide string related calls
- added template specialization for string hashfunction (performance)
- XML parser performance improvements (SAX parser is now up to 40 % faster
- added parseMemoryNP() to XMLReader and friends
- URIStreamOpener improvement: redirect logic is now in URIStreamOpener.
this enables support for redirects from http to https.
- added support for temporary redirects and useproxy return code
- added getBlocking() to Socket
- added File::isHidden()
- better WIN64 support (AMD64 and IA64 platforms are recognized)
- added support for timed lock operations to [Fast]Mutex
- SharedLibrary: dlopen() is called with RTLD_GLOBAL instead of RTLD_LOCAL
(see http://gcc.gnu.org/faq.html#dso)
- Poco::Timer threads can now run with a specified priority
- added testcase for SF# 1774351
- fixed SF# 1784772: Message::swap omits _tid mem
- fixed SF# 1790894: IPAddress(addr,family) doesn't fail on invalid address
- fixed SF# 1804395: Constructor argument name wrong
- fixed SF# 1806807: XMLWriter::characters should ignore empty strings
- fixed SF# 1806994: property application.runAsService set too late
- fixed SF# 1828908: HTMLForm does not encode '+'
- fixed SF# 1831871: Windows configuration file line endings not correct.
- fixed SF# 1845545: TCP server hangs on shutdown
- fixed SF# 1846734: Option::validator() does not behave according to doc
- fixed SF# 1856567: Assertion in DateTimeParser::tryParse()
- fixed SF# 1864832: HTTP server sendFile() uses incorrect date
- HTTPServerResponseImpl now always sets the Date header automatically
in the constructor.
- fixed SF# 1787667: DateTimeFormatter and time related classes
(also SF# 1800031: The wrong behavior of time related classes)
- fixed SF# 1829700: TaskManager::_taskList contains tasks that never started
- fixed SF# 1834127: Anonymous enums in Tuple.h result in invalid C++
- fixed SF# 1834130: RunnableAdapter::operator= not returning a value
- fixed SF# 1873924: Add exception code to NetException
- fixed SF# 1873929: SMTPClientSession support for name in sender field
- logging performance improvements (PatternFormatter)
- fixed SF# 1883871: TypeList operator < fails for tuples with duplicate values
- CYGWIN build works again (most things work but Foundation testsuite still fails)
- new build configuration for Digi Embedded Linux (ARM9, uclibc)
- new build configuration for PowerPC Linux
Data:
- fixed SF# 1724388: ODBC Diagnostics
- fixed SF# 1804797: ODBC Statement multiple execution fails
- fixed SF# 1803435: SessionPool onJanitorTimer called too often?
- fixed SF# 1851997: Undefined Behavior in ODBC::Preparation
- updated SQlite to 3.5.5
Release 1.3.1 (2007-08-08)
==========================
Foundation, XML, Net, Util:
- DynamicAny fixes for char conversions
- fixed SF# 1733362: Strange timeout handling in SocketImpl::poll and Socket::select
- fixed SF patch# 1728912: crash in POCO on Solaris
- fixed SF# 1732138: Bug in WinRegistryConfiguration::getString
- fixed SF# 1730790: Reference counting breaks NetworkInterface::list()
- fixed SF# 1720733: Poco::SignalHandler bug
- fixed SF# 1718724: Poco::StreamCopier::copyStream loops forever
- fixed SF# 1718437: HashMap bug
- changed LinearHashTable iterator implementation. less templates -> good thing.
- fixed SF# 1733964: DynamicAny compile error
- UUIDGenerator: fixed infinite loop with non ethernet interfaces
- updated expat to 2.0.1
- fixed SF# 1730566: HTTP server throws exception
- Glob supports symbolic links (additional flag to control behavior)
- fixed a problem with non blocking connect in NetSSL_OpenSSL
(see http://www.appinf.com/poco/wiki/tiki-view_forum_thread.php?comments_parentId=441&topics_threshold=0&topics_offset=29&topics_sort_mode=commentDate_desc&topics_find=&forumId=6)
- fixed a problem with SSL renegotiation in NetSSL_OpenSSL (thanks to Sanjay Chouksey for the fix)
- fixed SF# 1714753: NetSSL_OpenSSL: HTTPS connections fail with wildcard certs
- HTTPClientSession: set Host header only if it's not already set (proposed by EHL)
- NetworkInterface (Windows): Loopback interface now has correct netmask;
interfaces that do not have an IP address assigned are no longer reported.
- Fixes for VC++ W4 warnings from EHL
- SharedMemory: first constructor has an additional "server" parameter
Setting to true does not unlink the shared memory region when the SharedMemory object is destroyed. (Alessandro Oliveira Ungaro)
- fixed SF# 1768231: MemoryPool constructor
Data:
- fixed SF# 1739989: Data::RecordSet::operator = () (in 1.3 branch)
- fixed SF# 1747525: SQLite, Transactions and Session Pooling (in 1.3 branch)
- upgraded to SQLite 3.4.1
Release 1.3.0 (2007-05-07)
==========================
- added HashMap, HashSet classes
- the HashFunction class template has been changed in an incompatible
way. The member function formerly named hash() is now the function
call operator. If you have defined your own HashFunction classes,
you have to update your code. Sorry for the inconvenience.
- added Poco::Tuple
- added AbstractCache::getAllKeys(), improved performance of the get operation
- fixed AbstractCache::size() to do cache replacement before returning the size
- added additional match() method to RegularExpression and documented the fact that the simple
match() method internally sets RE_ANCHORED and RE_NOTEMPTY.
- added ExpirationDecorator template. Decorates data types so that they can be used with UniqueExpireCaches
- added operator ! to AutoPtr and SharedPtr
- Buffer uses std::size_t instead of int
- Exception::what() now returns exception name instead of message
- added poco_ndc_dbg() macro (same as poco_ndc(), but only enabled in debug builds)
- added Environment::get(name, defaultValue);
- Foundation.h now includes Config.h at the very beginning.
- added replace() and replaceInPlace() to Poco/String.h
- added AutoPtr::assign() and SharedPtr::assign()
- added operator () to AbstractEvent
- gcc Makefiles now strip release builds
- Void now has a == and != operator
- Base64Encoder and HexBinaryEncoder now support an unlimited line length
(no newlines written), by specifying a line length of 0
- NumberParser now has stricter syntax requirements: garbage following a number leads to a SyntaxException
(Thanks to [email protected] for the suggestion)
- fixed SF# 1676830: Don't use -rpath in libraries
- fixed SF# 1670279: AbstractConfiguration::unckeckedExpand crash
- fixed a warning in Hashtable
- HTTPClientSession now uses a keepAliveTimeout for better persistent connection handling
- added DateTime::makeUTC() and DateTime::makeLocal()
- added another constructor to LocalDateTime
- POCO_WIN32_UTF8 is ignored on non-Windows platforms
- fixed a timeout bug (with NetSSL) in HTTPSession
- AsyncChannel is automatically opened with first log()
- minor fix to NotificationQueue sample (reported by Laszlo Keresztfalvi)
- added File::canExecute() and File::setExecutable()
- added SharedMemory class to Foundation
- added FileStream, FileInputStream, FileOutputStream to Foundation
- added NodeAppender class to XML for faster DOM tree creation
- HTTPServerRequest and HTTPServerResponse are now abstract base classes,
actual functionality has moved into HTTPServerRequestImpl and
HTTPServerResponseImpl. This allows us to plug other HTTP servers
into POCO.
- added DynamicAny class to Foundation
- replaced std::fstream with Poco::FileStream across POCO.
- added Poco::Checksum class to Foundation.
- fixed SF# 1700811: conflict in threadpool
- bugfix: File::moveTo() does not work if the target is a directory
- File::copyTo() and File::moveTo() now copy/move directories recursively
- refactored NetworkInterface (now using pimpl idiom);
added broadcast address and netmask support
- fixed SF# 1688982: POP3ClientSession fails when retrieving mails with attachment
- fixed SF# 1655104: Enhance Poco::TextEncoding functionality
- added Poco::Condition class, implementing a POSIX-style condition variable
- fixed a bug in File::create() for Windows
- added poco_static_assert (imported from boost)
- added Thread::join(timeout) and Thread::tryJoin()
- ClassLoader support for named manifests (see ClassLibrary.h - POCO_EXPORT_NAMED_MANIFEST)
- POCO_WIN32_UTF8: UNICODE #define is no longer required (and no longer
automatically defined in POCO_WIN32_UTF8 is defined)
- PCRE: upgraded to PCRE version 7.1
- fixed SF# 1682162: Suggestion on thread priority
- fixed SF# 1613460: MSVC/STLPort warnings
- fixed SF# 1709358: Format double percent std::String bug
- added WindowsConsoleChannel class to Foundation
- added AutoPtr::unsafeCast<>() and SharedPtr::unsafeCast<>()
- fixed SF# 1708552: Failed to build on arm and powerpc
- fixed SF$ 1708529: Failed to build using GCC 4.3: missing #includes
- fixed SF# 1710053: LogStream proposal
- fixed a bug involving empty root directories in Windows DirectoryIterator implementation
(see http://www.appinf.com/poco/wiki/tiki-view_forum_thread.php?comments_parentId=343&forumId=6)
- robustness improvements to ActiveMethod - removed the opportunity for memory leaks in
case something goes while invoking the method
- made C library usage more C++-like - use C++ headers (e.g. <cstring>) instead of
C ones (<string.h>). Also, use C library functions in std namespace.
- added Unicode and UTF8String for improved Unicode support.
The Unicode class can be used to obtain the Unicode properties of a character.
The UTF8 class provides case insensitive comparison and case conversion
for UTF-8 encoded strings.
- added UnWindows.h header file, replaced all #include <windows.h> with #include "Poco/UnWindows.h".
See the Poco/UnWindows.h header file for a rationale and explanations.
- fixed SF# 1713820: StreamSocketImpl::sendBytes sends too many bytes
- File::copyTo(): on Windows, the copy now always has the read-only flag reset, to be consistent
with other platforms.
- With Microsoft Visual C++, the necessary POCO libraries are now implicitly linked when
the corresponding header files are included (#pragma comment(lib, "PocoXYZ.lib") is used).
To disable this, compile POCO with the preprocessor symbol POCO_NO_AUTOMATIC_LIBS #define'd
(see Poco/Foundation.h and Poco/Config.h).
- The Visual Studio project files for the POCO libraries now include configurations
for building static libraries.
Release 1.2.9 (2007-02-26)
==========================
- fixed a formatting problem in Util::HelpFormatter
- HTTPClientSession::sendRequest() now attempts to send the complete request in one network packet.
- improved network performance of ChunkedOutputStream: chunk size and chunk data
are sent in one network packet if possible
- fixed SF# 1655035: Wrong expires field calculation in HTTPCookie
(thanks to Sergey N. Yatskevich for this and other fixes)
- fixed SF# 1655049: Fix discrepancy of a code to the description
- fixed SF# 1655170: Poco::Timezone::standardName() problem on WIN32
- fixed SF# 1629095: POCO_WIN32_UTF8 problem
There is a new function Path::transcode() that can be used to convert a path (or any other string)
from UTF-8 to the current Windows code page. This string can the be passed as a filename
to an fstream or fopen(). This function only does the conversion on Windows,
and only, if POCO_WIN32_UTF8 is defined. Otherwise, it simply returns the unmodified argument.
- fixed SF# 1659607: Probably a bug in Poco::Net::DialogSocket
- HTTPServer network performance improvement: responses that fit into a single network packet
sent with HTTPServerResponse::sendFile() or the new HTTPServerResponse::sendBuffer() are
sent in only one packet.
- added HTTPServerResponse::sendBuffer()
- HTTPServer now sends a Bad Request response if it fails to parse the HTTP request header.
- HTTPServer now sends an Internal Server Error response if the request handler throws an
exception prior to sending a response.- enabled TCP_NODELAY per default on TCPServer/HTTPServer
- fixed a bug in HTTP persistent connection handling
(server does not send Connection: close when it reaches connection maximum)
- HTMLForm - POST submission of URL encoded form no longer uses chunked transfer encoding
(thus improving interoperability with certain web servers)
- integrated Environment.cpp from Main (missing get(var, default))
- added missing AutoPtr include to Util/Application
(and using Poco::AutoPtr is no longer necessary for POCO_APP_MAIN macro)
- fixed SF# 1635420: Per Regents of the University of Calfornia letter,
remove advertising from BSD licensed parts
- fixed SF# 1633133: MultipartWriter writes superluous CR-LF at beginning
Release 1.2.8 (2007-01-04)
==========================
- fixed SF# 1613906: Util/Application.h and GCC 3.3
- fixed a byte order issue (failed test) in IPv6 address formatting
- fixed SF# 1626640: Poco::Net::SocketReactor bug
- fixed client side chunked transfer encoding handling
- fixed client side persistent connection handling
- fixed SF# 1623536: HTTP Server Chunked Transfer Encoding Bug
- improved HTTP server exception text
- fixed SF# 1616294: KeepAlive HTTPServerSession patch
- fixed SF# 1616296: Trivial Poco::TaskCustomNotification patch
- fixed SF# 1619282: PurgeStrategy bug fix
- fixed SF# 1620855: Format problem
there is a new format specifier %z for std::size_t, as well as a new
flag ? for %d, %i, %o, %x meaning any signed or unsigned integer
Release 1.2.7 (2006-12-07)
==========================
- Poco::File: fixed root directory handling
- fixed UUIDGenerator documentation
- clarified Application::setUnixOptions() documentation
- fixes for issue [SOAPLite Transport 0000023]: SOAP Transport Listener should be able to use existing HTTPServer instance
- fixing mantis issues 13, 14, 15, 16, 17, 18, 19, 21
- fixed SF# 1597022: Signed/unsigned warning in StringTokenizer::operator[]
- fixed SF# 1598601: Message::op= leaks
- fixed SF# 1605960: PatternFormatter crashes on custom property
- fixed SF# 1605950: Memory leak in Logger sample code
- fixed SF# 1591635: Copy Paste Error in sample code
- fixed SF# 1591512: SMTPClientSession response stream
- fixed SF #1592776: LayeredConfiguration: getRaw should enumerate in reverse order
- SF Patch # 1599848 ] VS 2005 Util build fails
- Logger::dump() now uses std::size_t instead of int for buffer size
- LayeredConfiguration now supports a priority value for each configuration.
Also, it's possible to specify for each configuration added whether it
should be writeable.
- ServerApplication: cd to root directory only if running as a daemon
- added Message::swap()
- improvements to build system:
global Makefile has correct dependencies for samples
on Windows, samples build after libraries are ready
configure supports --no-wstring and --no-fpenvironment flags
build system supports POCO_FLAGS environment variable for compiler flags
- RemoteGen: fixed error handling for write protected files (SystemException)
fixing integral constant overflow messages with large cache expiration, m_ support for type serializers,
case-insensitive comparison added
Release 1.2.6 (2006-11-19)
==========================
- added additional match() method to RegularExpression and documented the fact that the simple
match() method internally sets RE_ANCHORED and RE_NOTEMPTY.
- added ExpirationDecorator template. Decorates data types so that they can be used with UniqueExpireCaches
- added operator ! to AutoPtr and SharedPtr
- Buffer uses std::size_t instead of int
- added poco_ndc_dbg() macro (same as poco_ndc(), but only enabled in debug builds)
- Foundation.h now includes Config.h at the very beginning.
- added AutoPtr::assign() and SharedPtr::assign()
- added operator () to AbstractEvent
- gcc Makefiles now strip release builds
- documentation improvements
Release 1.2.5 (2006-10-23)
==========================
- Improved LoggingConfigurator: channel creation and configuration is now a two-step process.
This means that the previous problems with PropertyFileConfiguration and IniFileConfiguration when referencing other channels are solved.
- improved options handling: better handling of (non) ambiguities.
If both an option named "help" and one named "helper" is specified, this no longer causes ambiguity errors.
- added check for duplicate option definition
- ThreadPool bugfix: fixed a crash that occurs on Linux multiprocessor machines
(caused by an thread unsafe string assignment corrupting the heap...)
(SF# 1575315)
- improved ThreadPool performance
- XML now compiles with -DXML_UNICODE_WCHAR_T (SF# 1575174)
- fixed SF# 1572757: HTML forms can have more than one key/value pair with the same name
- got rid of the dynamic casts in Events, Events/Cache: simpler/faster Delegate < operator,
prevents some rare dynamic casts error from occuring when using StrategyCollection with Caches
- improvements to Logger and LoggingConfigurator:
* added Logger::unsafeGet()
* added Logger::setProperty(loggerName, propertyName, value)
* LoggingConfigurator now correctly (re)configures existing Loggers
(prior to this change, if a Logger named "a.b.c" existed before
the LoggingConfigurator started its work, and the LoggingConfigurator
configured a Logger named "a.b", then "a.b.c" would not inherit
the new configuration).
- improvements to SplitterChannel and EventLogChannel configuration
- improved LoggingRegistry exception messages
- MessageHeader::read() is more liberal with malformed message headers.
This fixes problems with certain network cameras sending malformed HTTP headers.
Release 1.2.4 (2006-10-02)
==========================
- some code beautifying and improvements to comments
- DOMParser now automatically sets FEATURE_NAMESPACE_PREFIXES
- fixed SF #1567051: DOMBuilder/DOMParser/NamespaceStrategy bug
- fixed SF #1567364: POCO_APP_MAIN
- added Document::getElementById() (two-argument) and getElementByIdNS()
- added another test for DOMParser
- added AutoPtr::isNull() (to be consistent with SharedPtr)
- this release again compiles on PA-RISC HP-UX systems with aCC
- added CMAKE support files contributed by Andrew J. P. Maclean
Release 1.2.3 (2006-09-14)
==========================
- configure script now checks if (auto)selected configuration is supported
- fixed SF #1552904: NamedEvent bug?
- fixed SF #1552787: POCO not handling EINTR
- fixed SF #1552846: Random::~Random uses scalar delete
- fixed SF #1552987: TLSSlot should explicitly default-construct _value
- IPAddress no longer accepts an empty address string
- split up Observer.h into AbstractObserver.h and Observer.h
- added NObserver class template which supports an AutoPtr
argument for the notification callback
- changed EchoServer sample to use NObserver
- some Windows-specific files were missing in the tarballs
Release 1.2.2 (2006-09-01)
==========================
- fixed SF # 1549973: NotificationCenter::hasObservers() returns wrong result
- fixed a memory leak in EchoServer sample
- fixed SocketReactor TimeoutNotification bug (SF #1549365, SocketNotifier::addObserver() incorrect behavior)
- fixed SF# 1549513: MultipartReader does not work with Unix-style linefeeds
- MailMessage and HTMLForm: processing of multipart messages will no longer fail if a PartHandler does not read all data from the part stream.