CHANGELOG 196 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678
  1. This is the changelog file for the POCO C++ Libraries.
  2. Release 1.13.3 (2024-04-04)
  3. ===========================
  4. Summary of Changes:
  5. This is a bugfix release.
  6. Security Fixes:
  7. - GH #4496 Upgrade bundled libexpat to 2.6.2
  8. Features, Enhancements and Third Party Updates:
  9. - GH #4488 Add Poco::Util::Timer::idle() method to check if timer has any tasks scheduled
  10. - GH #3807 DNS.resolve() should not be sorted in HostEntry::removeDuplicates()
  11. - GH #4515 Upgrade bundled SQLite to 3.45.2
  12. - PR #4517 Optimize Net module for Android
  13. Bug Fixes and Improvements:
  14. - GH #4505 ODBC Unicode wrappers do not check for null length pointers
  15. - GH #4492 Poco::BasicMemoryStreamBuf is missing seekpos()
  16. - GH #4486 DateTimeFormat RFC1036 Sunday name is short (should be long)
  17. - GH #4468 Poco::URI: don't lowercase host part if it's a Unix domain socket
  18. - GH #4450 Error between Poco::ActiveRecord and Poco::Data::PostgreSQL
  19. - GH #4435 SecureStreamSocket is not thread-safe
  20. - GH #4415 SecureSocketImpl::reset shouldn't close socket
  21. - GH #3857 Thread_POSIX.cpp shouldn't convert thread IDs to long
  22. - GH #3725 secure socket receiveTimeout throwing after configured timeout * 2
  23. Release 1.13.2 (2024-02-19)
  24. ===========================
  25. Summary of Changes:
  26. This is a bugfix release.
  27. Breaking Changes:
  28. - GH #4378 [Data] Unconditionally includes of SQLParser.h
  29. Bug fixes and Improvements:
  30. - GH #4462 Disable SQL parsing by default
  31. Release 1.13.1 (2024-02-05)
  32. ===========================
  33. Summary of Changes:
  34. This is a bugfix release.
  35. Features and Enhancements:
  36. - GH #4367 `SQLite` `FTS5` (full text search)
  37. - GH #4335 Implement patches that Debian/Ubuntu applies when preparing deb packages
  38. - GH #4216 Replace C string literals (const char*) with C++ std::string literals for std::string parameters.
  39. - GH #3890 Get rid of SingletonHolder
  40. - GH #2450 Why does it take the ThreadPool 10+ seconds to shutdown when there is nothing running.
  41. - GH #2443 FileChannel doesn't flush to disk on unix until close
  42. - GH #4437 Add arm cross-compile config and CI
  43. - PR #4422 enh(File): Linux, macOS: microsecond precision for file times
  44. - PR #4390 enh(DateTimeParser): option to cleanup input string before parsing (#569)
  45. Bug Fixes and Improvements:
  46. - GH #4443 Upgrade libexpat to 2.6.0
  47. - GH #4425 Unit tests: optional testing of deprecated functionality
  48. - GH #4421 Multiple calls to initializeSSL/uninitializeSSL cause assert failure during certificate validation
  49. - GH #4411 NULL pointer: strategy when setting rotation never in FileChannel
  50. - GH #4404 qnx build error: 'prctl' was not declared in this scope
  51. - GH #4400 SocketReactor deadlock test intermittently hangs
  52. - GH #4398 Can not install CppUnit target
  53. - GH #4393 iOS ARM64 : Invalid access: Can not convert empty value.
  54. - GH #4392 Environment_WIN32U nodeIdImpl access violation in 1.13.0
  55. - GH #4375 UUID parser silently ignores too long strings
  56. - GH #4347 github check job on macOS: testEncryptDecryptGCM occasionally fails
  57. - GH #4313 Add macos sanitizer CI jobs
  58. - GH #4019 MSYS2/mingw cmake linking problem
  59. - GH #4018 cmake MSYS2 compile error for poco/net project
  60. - GH #3908 JWT token unitest fail with POCO_NO_SOO on vs 2019
  61. - GH #3650 MailMessage::read() chokes on "Content-disposition"
  62. - GH #3331 Apple Silicon ARM64 : Invalid access: Can not convert empty value.
  63. - GH #3213 NetSSL_Win\src\SecureSocketImpl.cpp CertFreeCertificateContext on nullptr
  64. - GH #661 Automatic Lib Init (NetworkInitializer) is not working on MinGW
  65. - PR #4427 enh(tests): Ability to enable/disable testing of deprecated functionality
  66. - PR #4381 fix(Crypto): Compile error if EVP_CIPHER_CTX_init not defined.
  67. Release 1.13.0 (2023-12-22)
  68. ===========================
  69. Highlights:
  70. - Support for MongoDB 5.1 and newer
  71. - C++17 is the lowest supported standard
  72. - Poco::Data SQLParser (experimental, optional at build and runtime)
  73. Breaking Changes:
  74. - GH #4305 Remove deprecated `toJSON` functions
  75. - GH #4304 NumericString conversions inconsistencies
  76. - GH #4235 Minimum standards: C++17 and C11
  77. - GH #4230 Poco::Data fixes and improvements
  78. - GH #3701 SocketReactor: Remove not useful handlers calls
  79. - GH #569 SyntaxException for DateTimeParser::parse not working
  80. Features and Enhancements
  81. - GH #4276 MongoDB default function deleted clang warning
  82. - GH #4261 Move autoCommit to AbstractSessionImpl
  83. - GH #4254 MessageHeader: provide original HTTP header values before RFC2047 decoding
  84. - GH #4249 Separate CI ODBC tests into separate job
  85. - GH #4217 Protect Reactor stop() and wakeUp() from reentrance
  86. - GH #4208 Add Unix socket support on windows
  87. - GH #4206 Improve Data::SessionPool thread safety
  88. - GH #4205 Data CI Improvements
  89. - GH #4198 Poco::Data fixes and improvements
  90. - GH #4183 Return Transaction execution status and error
  91. - GH #4181 Virtualize ServerApplication::handlePidFile()
  92. - GH #4160 Allow row count statements in Data::Recordset
  93. - GH #4148 SQL server stored procedures fail
  94. - GH #4146 ODBC max field size fails with int
  95. - GH #4129 make clean and distclean should not trigger dependencies creation
  96. - GH #4112 Redirect build stderr to a file
  97. - GH #4107 SQLChannel fixes and improvements
  98. - GH #4064 Add ProcessRunner and PIDFile
  99. - GH #4063 pthread_setname_np was not declared in this scope
  100. - GH #3951 Poco::Data::SessionPool: avoid sessions staying idle too long
  101. - GH #3833 DynamicStruct::toString() escaping
  102. - GH #3808 ICMPEventArgs Statistics bugs
  103. - GH #3740 buildwin.ps1 failed to build x64
  104. - GH #3713 SocketReactor improvements
  105. - GH #3710 Thread::trySleep() assertion
  106. - GH #3703 POSIX Thread::sleep() poor performance
  107. - GH #3702 SocketReactor: post ErrorNotification on exception
  108. - GH #3667 NumberFormatter: add Options enum for controlling prefix and lowercase
  109. - GH #2967 build Poco Net failed MinGW [TIMESTAMP_REQUEST enum vs macro]
  110. - GH #2770 Support for AF_UNIX on windows in recent windows builds.
  111. - GH #2707 Trying to Compile with emscripten: Target architecture was not detected as supported by Double-Conversion
  112. - GH #2578 HTTPClientSession not working with UNIX_LOCAL SocketAddress
  113. - GH #2403 File::exists() wrong result
  114. - GH #2331 Improve implementation of logging macros.
  115. - GH #2282 Add Path::self()
  116. - GH #1258 Poco::DateTimeParser::tryParse issue
  117. - GH #3845 Poco::XML::Node `insertAfter` API
  118. - GH #3659 Add thread name support
  119. - GH #2291 Visitor Pattern for Dynamic::Var
  120. - PR #4059 Update ICMPv4PacketImpl.h
  121. - PR #4021 Fix compile with `-DPOCO_NET_NO_IPv6`
  122. - PR #3885 Use map from key to count instead of multiset
  123. - PR #3864 Remove unnecessary dup. of std::string in NumberParser::tryParseFloat
  124. - PR #3802 ODBC: Fix DataFormatException getting Time value from SQL Server
  125. - PR #3797 HTTPServer Applications Slow to Terminate #3796
  126. - PR #3787 fix(Crypto) Update method to extract friendlyName from certificate
  127. - PR #3705 Fix/posix sleep
  128. - PR #3664 set thread name
  129. - PR #3657 Add lower case format for `NumberFormatter`
  130. - PR #4144 add visitor pattern implementation for Poco::Dynamic::Var
  131. - PR #3476 add separate accessors and mutators for connect, send and receive tim…
  132. Bug fixes and Improvements:
  133. - GH #4328 Environment::nodeId Should Throw SystemException When Node ID is 0
  134. - GH #4311 Canceled `Task` shouldn't start running
  135. - GH #4310 `ActiveThread` data race
  136. - GH #4309 `ArchiveStrategy` data race
  137. - GH #4308 `DirectoryWatcher` data race
  138. - GH #4307 `NotificationCenter` data race
  139. - GH #4274 Remove VS 140, 150 Projects
  140. - GH #4259 Progen uses wrong AdditionalOptions separator
  141. - GH #4252 SecureSocketImpl::currentSession() always return null
  142. - GH #4244 Poco::Data::PostgreSQL::SessionHandle::setAutoCommit(bool) should not call commit() or startTransaction()
  143. - GH #4241 Poco::FileInputStream broken in 1.12.5 and 1.11.8.
  144. - GH #4231 Poco::Data::PostgreSQL::SessionHandle::disconnect() leaks memory for failed connections
  145. - GH #4207 VS170 binary names mismatch on ARM
  146. - GH #4187 Sync 1.11.-1.12-devel(1.13)
  147. - GH #4109 Skip reset for null Binder
  148. - GH #4106 ODBC Binder does not retrieve proper type precision
  149. - GH #4093 PostgreSQL get sqlcode
  150. - GH #4028 Incompatibility with gcc 13.1
  151. - GH #3923 UDP Multicast : `leaveGroup()` method always throw an exception
  152. - GH #3835 DynamicStruct::toString not wrapping empty strings
  153. - GH #3823 Possibility of memory leak in Windows Environment nodeIdImpl?
  154. - GH #3812 Poco::Data::Session::reconnect throw Connection in use
  155. - GH #3704 TaskManager waits for all threads in the ThreadPool
  156. - GH #3557 HTTPSClientSession read infinite loop on IOS
  157. - GH #3484 Poco::MongoDB support for MongoDB 5.0?
  158. - GH #3331 Apple Silicon ARM64 : Invalid access: Can not convert empty value.
  159. - GH #3277 Use sendfile system call on Linux in HTTPServerResponseImpl::sendFile
  160. - GH #3165 Can't reuse Poco::Data::Statement with a new set of bindings
  161. - GH #2978 waitForTermination is unreliable on Linux.
  162. - GH #2976 SharedMemoryImpl x64 size error
  163. - GH #2965 Net fails to build with MinGW 9.20
  164. - GH #2634 Data race in Poco::Net::HTTPServerConnection::onServerStopped
  165. - GH #2366 Poco::Process::launch (UNIX) - possible memory leak when launching invalid command
  166. - GH #2332 Optimize multi-arg logger methods to only call format() if log level allows
  167. - PR #4353 Fix some issues found with clang-tidy
  168. - PR #4345 [email protected]
  169. - PR #4339 Fix RemoteSyslogChannel setProperty value check
  170. - PR #4333 enh(NumberFormatter): Introduce backward compatible options for formatHex functions
  171. - PR #4321 Github Action for Android NDK
  172. - PR #4319 Implementation of Path::self()
  173. - PR #4317 enh(ci): Add ENABLE_COMPILER_WARNINGS to cmake
  174. - PR #4306 3102 json lowercase hex
  175. - PR #4275 fix(NetSSL_Win): Error during handshake: failed to read data
  176. - PR #4270 SplitterChannel addChannel - Prevent Duplicate Channels
  177. - PR #4256 Implement MySQL::SessionHandle::startTransaction as submitting the SQL statement 'BEGIN'
  178. - PR #4223 Virtualize ServerApplication::handlePidFile()
  179. - PR #4211 Improve FifoEvent, ActiveMethod, ActiveResult
  180. - PR #4200 fixed infinite loops
  181. - PR #4199 fix(Poco::Data): fixes and improvements #4198
  182. - PR #4190 CMake: Use CMAKE_INSTALL_* variables from GNUInstallDirs
  183. - PR #4156 Allow passing raw fd's into ServerSocket
  184. - PR #4138 add missing check when activerecord is enabled
  185. - PR #4137 Fix platform when building for iPhoneSimulator
  186. - PR #4103 Fix openssl session resumption, FTPS certificate validation vs hostname
  187. - PR #4099 added new memeber SqlState to PostgreSQLException and made use of it.
  188. - PR #4068 AutoPtr: do 'duplicate' before 'release'
  189. - PR #4061 Adding API XML::AbstractContainerNode::insertAfterNP()
  190. - PR #4025 EVPPKey constructor for modulus/exponent
  191. - PR #4022 Make Binding and CopyBinding specializations final
  192. - PR #4020 MongoDB: add missing name accessor to get database name.
  193. - PR #4007 add sendfile method for streamsocket
  194. - PR #4004 Mongodb op msg database commands fix
  195. - PR #3989 Fix thread compilation issues on FreeBSD
  196. - PR #3976 fix(devel): add missing 1.11 releases commits
  197. - PR #3954 Complimentary to #3918 (std::*mutex wrapper)
  198. - PR #3946 Add GNU Hurd support
  199. - PR #3939 Solaris.build fix #3843 and #3643
  200. - PR #3932 Cross-compiling with ming32-w64 on Linux #3815
  201. - PR #3929 Fix multicast leave group
  202. - PR #3863 testDynamicStructEmptyString always failed
  203. - PR #3861 Do not incur insane stack limit in Foundation-ThreadPool test.
  204. - PR #3860 Fix Aix Build
  205. - PR #3842 hasMicrosecond is undefined
  206. - PR #3821 chore(Net): correct spelling, remove some unused codes fix(SocketProactor): missing adding sock to read pollset fix(DialogServer): _lastCommands data race
  207. - PR #3810 Custom rotate, archive and purge strategies for FileChannel
  208. - PR #3749 buildwin.ps1 script error building the x64 version of Poco
  209. - PR #3502 Add ODBC DirectExec public API
  210. - PR #3102 Made it possible to use lowercase hex numbers, also when encoding JSON
  211. - PR #3009 switching iPhoneSimulator arch to 64 bit
  212. Release 1.12.5p2 (2023-12-04)
  213. =============================
  214. - GH #4320: Integer overflow in Poco::UTF32Encoding
  215. Release 1.12.5p1 (2023-11-02)
  216. =============================
  217. - GH #4241: Poco::FileInputStream broken in 1.12.5 and 1.11.8
  218. Release 1.12.5 (2023-10-25)
  219. ===========================
  220. - GH #4219 Make POSIX event thread safe
  221. - GH #4215 Remove SocketReactor dependency on Poco::Thread for sleeping
  222. - GH #4197 ODBC::Binder UUID new/free mismatch
  223. - GH #4194 PollSet filters out some events
  224. - GH #4189 Use after free warnings
  225. - GH #4180 receiveResponse() may not return response body stream
  226. - GH #4177 Upgrade bundled pcre2 to 10.42
  227. - GH #4147 missing \r\n when setting trailer header in chunked response
  228. - GH #4134 Initialisation of _socketIndex in SSLManager (OpenSSL)
  229. - GH #3867 Add options to disable STDIO in child process
  230. - GH #3832 pthread_getname_np' was not declared in this scope
  231. - GH #3786 FileChannel::setRotation overflow
  232. - GH #2776 Shutdown TLS1.3 connection
  233. - GH #4176 PCRE2 10.40 version has security vulnerabilities(CVE-2022-41409), when is the plan to fix it third-party
  234. - GH #4150 Use Poco format instead of sprintf in Util
  235. - GH #4116 Logging should evaluate only if the logging level is active
  236. - GH #4071 PageCompiler: add referrerPolicy to page directive feature
  237. - GH #4057 ODBC: SQL Anywhere Support
  238. - GH #4031 Classes with virtual functions missing virtual destructors (compilation issues)
  239. - GH #4023 CPPParser: Losing data if parameter std::function<void(bool)> is used
  240. - GH #4014 wrong string offset in HTTPCredentials::isNTLMCredentials
  241. - GH #4005 On UNIX platform, Poco::Path::getExtension() returns name of the hidden file if no extension is present
  242. - GH #3986 Fix dead lock on Timer destructor
  243. - GH #3968 Poco::Net::SocketConnector constructor should take SocketAddress by const reference
  244. - GH #3935 The extractor in postgresql drops milliseconds
  245. - GH #3926 CppParser throws exception when return value is specified to be in global namespace
  246. - GH #3921 Deadlock in Timer when one sync and one async cancel requests are issued
  247. - GH #3918 Static FastMutex fails to lock when issued from another thread on linux
  248. - GH #3880 NetSSL_OpenSSL: Support session resumption with TLSv1.3
  249. - GH #3876 Replace sprintf with snprintf in Environment and NumberFormatter to avoid deprecation warnings
  250. - GH #3859 zlib headers not updated
  251. - GH #3806 HTTPClientSession::receiveResponse() gives NoMessage instead of Timeout exception for SSL connection on Windows when using OpenSSL 3.0.x
  252. - GH #3723 DateTimeFormatter creates invalid ISO8601 string
  253. - GH #3147 Reading from request stream hangs when "Transfer-Encoding: chunked" is used
  254. - GH #4218 Upgrade double-conversion to 3.3.0
  255. - PR #4210 Fix pthread_setname not declared
  256. - PR #4072 optimize checkUpperLimit and checkLowerLimit in VarHolder.h enhancement
  257. - PR #4050 rename arc -> poco_arc
  258. - PR #4038 Fixed Poco::format specifier for error code bug platform_specific
  259. - PR #4011 fix #4005 Poco::Path::getExtension()
  260. - PR #3999 Fix hang in destructor
  261. - PR #3992 Fix thread counter leak
  262. - PR #3987 Fix dead lock on Timer destructor
  263. - PR #3971 Fix error handling with OpenSSL 3.0 in SecureSocketImpl.cpp (fixes #3806)
  264. - PR #3943 Fix build for QNX platform_specific
  265. - PR #3942 Fix data race when create POSIX thread
  266. - PR #3912 Fixed compile error for OpenSSL 1.0 systems (#3739)
  267. - PR #3883 Added system_error header to SockerProactor for std::error_code
  268. - PR #3855 Fix epollfd validity checks when compiling with wepoll
  269. - PR #3809 improve Windows OpenSSL 3.0.x error handling #3806
  270. - PR #3769 Fixed converting/correcting pre-gregorian dates (#3723)
  271. Release 1.12.4 (2022-10-31)
  272. ===========================
  273. - GH #3849: Upgrade bundled libexpat to 2.5.0 [fixes CVE]
  274. - GH #3852: SocketReactor - 100 % CPU usage on single-core system
  275. Release 1.12.3 (2022-10-24)
  276. ===========================
  277. - GH #3682: Including Any.h causes Compiler error on Visual Studio
  278. - GH #3683: Poco::format receives empty Vector<Any>
  279. - GH #3692: v1.12.0 and v1.12.1 Poco::Any compile problem
  280. - GH #3723: DateTimeFormatter creates invalid ISO8601 string
  281. - GH #3737: Poco EventImpl for Win32 breaks INFINITE wait
  282. - GH #3744: bindImplLOB zero size (or NULL) HY104 "Invalid precision value"
  283. - GH #3748: Poco 1.12.2 - Building DataMySQL still fails (issue #3689)
  284. - GH #3753: Fix optional JSON support for MySQL
  285. - GH #3763: Poco::Util::Application VxWorks main is incorrect
  286. - GH #3769: Fixed converting/correcting pre-gregorian dates (#3723).
  287. - GH #3795: aix system NumberFormatter.cpp build error
  288. - GH #3805: Upgrade expat to 2.4.9
  289. - GH #3814: Security Vulnerability identified in POCO version 1.12.2
  290. - GH #3825: VS 2022 Net project missing ARM64 config
  291. - GH #3834: SocketImpl::available()
  292. - GH #3846: Upgrade bundled zlib to 1.2.13 [fixes CVE]
  293. - GH #3847: Upgrade bundled SQLite to 3.39.4
  294. Release 1.12.2 (2022-08-08)
  295. ===========================
  296. - GH #3460 fix(Platform): LoongArch support
  297. - GH #3688 Linking Crypto-testrunner fails
  298. - GH #3693 VS2022 compilation issues
  299. - GH #3698 SIGABRT in OSSL_PROVIDER_unload with static OpenSSL3
  300. - GH #3699 POSIX Event state need not be atomic
  301. - GH #3700 Release script must include build_vs170.cmd
  302. - GH #3708 wakeup fd is never read
  303. - GH #3711 lowercase winsock2 and iphlpapi to allow cross compile
  304. - GH #3716 Compiling with clang_cl_x64_x64 on Visual Studio 2022 failed
  305. - GH #3717 Only support extracting JSON fields when the SDK supports it
  306. - GH #3719 PocoNet Project File does not support Visual Studio 2022
  307. - GH #3720 Update max MSVC version information
  308. - GH #3721 fails to build with Visual Studio projects
  309. - GH #3722 Added missing Crypto Header to ProGen source
  310. - GH #3724 Crypto: Progen again to add new files and bring back ARM64 configuration
  311. - GH #3727 Add how to install using Conan section on README
  312. - GH #3733 Poco::format and C++20
  313. - GH #3734 g++ C++20 warnings
  314. Release 1.12.1 (2022-07-18)
  315. ===========================
  316. - GH #3677 PocoFoundationConfig.cmake should now check for PCRE2
  317. - GH #3686 SIGSEGV in OSSL_PROVIDER_unload with static OpenSSL3
  318. Release 1.12.0 (2022-07-08)
  319. ===========================
  320. - This release introduces Prometheus library
  321. - Upgraded bundled PCRE to PCRE2 10.40
  322. - Small object optimization for Any and Dynamic::Var (compile-time option, enabled by default)
  323. - All swap operations are noexcept now
  324. - PollSet::add() is mode-cumulative now
  325. - UDPServer now requires explicit starting
  326. - Move semantics for sockets and SocketAddress (compile-time option, disabled by default)
  327. - GH #709: Poco::Dynamic::Var memory leak
  328. - GH #1039 Race condition in AsyncChannel close/log
  329. - GH #1459 Fix Socket::select() epoll and poll implementations
  330. - GH #1687 SQLite Notifier has no table information
  331. - GH #1884 TCPServerDispatcher::run() issue
  332. - GH #2084 LogFile_STD (LogFileImpl) fails to recover from getting out of space
  333. - GH #2085 Crash due to race condition in TCPServerDispatcher
  334. - GH #2091 Integrate windows poll
  335. - GH #2222 Warning when compiling my that's use VarHolder
  336. - GH #2270 HTTPClientSession not supporting binding source address for proxy connect
  337. - GH #2271 HTTPClientSession source IP address
  338. - GH #2285 SQLite::Connector::open() crashes on db file with non existing directory
  339. - GH #2287 Poco::Data::Statement becomes unusable after exception
  340. - GH #2352 Allow setting the socket of SecureSocketImpl to no-blocking
  341. - GH #2386 As of C++11, std::swap is noexcept
  342. - GH #2401 Net::MailMessage::read hangs on missing final multipart boundary
  343. - GH #2457 Poco::Redis after executing "auth" command next command always return "OK"
  344. - GH #2465 Operating system specific thread ID is not available any more in Logger/Formatter
  345. - GH #2470 Can't use Poco::MongoDB::Cursor on aggregation cursor
  346. - GH #2511 Negative precision in NumberFormatter::format()
  347. - GH #2513 Poco::Net::SocketConnector unregistering
  348. - GH #2516 SHA3Engine hard to use with HMACEngine duplicate enhancement
  349. - GH #2521 MySQL Extractor null value extraction
  350. - GH #2538 Poco::Data::Session::connector() returns empty string for MySQL session
  351. - GH #2569 MySQL timestamp
  352. - GH #2576 Add std::chrono support to Timespan
  353. - GH #2590 Zip 64-bit extensions not set
  354. - GH #2614 NTPClient ignores second fractions enhancement
  355. - GH #2619 Decoding URI query parameters incompatible with Spring 5
  356. - GH #2638 Upgrade Windows SDK Used for Building Poco
  357. - GH #2688 Static code analyzer warnings
  358. - GH #2691 MinGW: fatal error: kernelspecs.h: No such file
  359. - GH #2706 [windows bug] pollset WSAPoll with non blocking socket will not report error
  360. - GH #2755 MySQL LONGTEXT
  361. - GH #2821 Poco::Buffer: full on creation
  362. - GH #2849 setPadding does nothing when OpenSSL 1.1.x is used
  363. - GH #2864 SessionImpl begin
  364. - GH #2940 Add vcpkg installation instructions
  365. - GH #2943 Avoid clang 10 -Wimplicit-int-float-conversion warning/error when converting int into float
  366. - GH #2959 Fix percent-encoded fragment modification in Poco::URI
  367. - GH #2980 Memory leaks in Poco::Any
  368. - GH #2986 Once exhausted, Poco::ObjectPool does not lend out returned objects
  369. - GH #3016 MongoDB::Array interface improvements
  370. - GH #3026 HTTPDigestCredentials added support for RFC7616 algorithms
  371. - GH #3039 Poco errors with _DEBUG and NDEBUG
  372. - GH #3052 Fix constness of URI::getPathSegments
  373. - GH #3088 Fix error in find_package example
  374. - GH #3056 Inconsistent behavior ConsoleChannel vs. WindowsConsoleChannel
  375. - GH #3062 Makefile: space(s) following target name will break build (during link)
  376. - GH #3073 libPocoCrypto.so: undefined reference to `pthread_atfork' when linking statically with OpenSSL 1.1
  377. - GH #3104 Publicly expose Poco::Message parameters
  378. - GH #3105 CMake: use GNUInstallDirs
  379. - GH #3175 SharedLibrary::isLoaded() not thread safe
  380. - GH #3195 MinGW also defines __GNUC__
  381. - GH #3240 Task::postNotification possible leak
  382. - GH #3241 Poco::Data::SessionPool change connection timeout
  383. - GH #3251 JSON Serializing NAN
  384. - GH #3253 Arbitrary indent of 2 applied to JSON string objects Var conversion
  385. - GH #3261 Upgrade to PCRE2 latest version
  386. - GH #3283 DatagramSocket does not allow IPV6_V6ONLY
  387. - GH #3296 Add move semantics to Net (sockets and addresses)
  388. - GH #3297 Poco Foundation Fails to Compile With POCO_ENABLE_SOO Defined
  389. - GH #3323 Extend format patterns %T and %I to support native threads
  390. - GH #3342 DB into() does not compile for more than 20 members in a tuple
  391. - GH #3357 Add socket proactor
  392. - GH #3359 Make PollSet::poll() interruptible
  393. - GH #3371 SocketReactor::getNotifier() does not use socket.impl()
  394. - GH #3372 FTPClientSession::activeDataConnection 1.11.0 cannot set specific data port
  395. - GH #3374 No access to padding in Cipher
  396. - GH #3375 PollSet::SocketModeMap poll(const Poco::Timespan& timeout) hasSignaledFDs issue slow down connections
  397. - GH #3378 PollSet function setMode 1.11.0 cause while(1) on windows
  398. - GH #3380 Windows SO_REUSEADDR is neither reliable nor safe
  399. - GH #3384 Always set thread names on POSIX platforms
  400. - GH #3385 IPAddress::tryParse does not work for "::"
  401. - GH #3396 Poco::Data::ODBC - dbEncoding property not used for insert/update
  402. - GH #3399 IPAddress::isLoopback() returns false for IPv4 mapped in IPv6
  403. - GH #3404 Net: make MessageHeader limits configurable
  404. - GH #3415 OpenSSL 3.0 support
  405. - GH #3417 Calling SocketReactor's run() method in a program's main thread yields a lot of null pointer exceptions
  406. - GH #3421 Cannot use HMACEngine with SHA2Engine
  407. - GH #3452 Syslog: Include Facility to Syslog Message
  408. - GH #3453 added facility to SyslogChannel
  409. - GH #3460 LoongArch support
  410. - GH #3481 JSON DataType support for MySQL
  411. - GH #3482 Visual Studio 2022 (v170) missing from buildwin.cmd
  412. - GH #3486 Windows on ARM64 support
  413. - GH #3516 Fix OpenSSL 3.0 deprecated warnings
  414. - GH #3529 Added LocalConfigurationView to only search inside the viewed scope
  415. - GH #3543 Visual Studio Warning C4244
  416. - GH #3558 Race condition in SSLManager
  417. - GH #3561 Add envelope to crypto
  418. - GH #3569 Readded named substring support for regexes
  419. - GH #3580 Rounds very large negative numbers to the incorrect values
  420. - GH #3592 Add 425 / HTTP_TOO_EARLY to HTTPResponse::HTTPStatus
  421. - GH #3598 Socket::available does not always return correct value for UDP
  422. - GH #3602 Add Data::JSONRowFormatter
  423. - GH #3603 Update minimum GCC version information
  424. - GH #3611 VS2022 Arm64 projects missing or do not load
  425. - GH #3613 UDPHandler data race
  426. - GH #3620 MariaDB still uses tx_isolation for transaction isolation unlike MySQL 8+ which uses transaction_isolation
  427. - GH #3624 Upgrade double-conversion to v3.2.0
  428. - GH #3628 PollSet data race
  429. - GH #3629 Event data race
  430. - GH #3633 Redis: Support Authentication
  431. - GH #3635 ConfigurationView and JSON is broken for array access
  432. - GH #3639 Bugcheck: indicate compiler that functions will never return
  433. - GH #3640 fix warning C4717: 'format<vector<any>': recursive on all control paths, function will cause runtime stack overflow
  434. - GH #3641 FifoBuffer.advance method not throw exception when length==0
  435. - GH #3642 Make ParallelSocketReactor thread namable
  436. - GH #3651 TCPserver missing from Net/samples/CMakeLists.txt
  437. - GH #3652 Linking with Foundation on Android gives error
  438. - GH #3655 Socket::select EPOLL implementation returns socket in exceptList when empty list is given
  439. - GH #3658 Support for chunked transfer encoding trailer
  440. - GH #3661 PollSet::add()/update() semantics
  441. - GH #3665 MSVC does not properly recognize std version
  442. Release 1.11.8p2 (2023-12-04)
  443. =============================
  444. - GH #4320: Integer overflow in Poco::UTF32Encoding
  445. Release 1.11.8p1 (2023-11-02)
  446. =============================
  447. - GH #4241: Poco::FileInputStream broken in 1.12.5 and 1.11.8
  448. Release 1.11.8 (2023-10-18)
  449. ===========================
  450. - GH #1372: Possible deadlock in SessionPool
  451. - GH #4170: Poco::FileStream is always opened with std::ios::in | std::ios::out bug
  452. - GH #4169: Upgrade bundled zlib to 1.3.
  453. - GH #4171: Upgrade bundled sqlite to 3.43.1
  454. - GH #4162: [Bug] class KeylessActiveRecord is missing export macro
  455. - GH #4164: [Bug] SharedLibraryImpl::loadImpl uses an incorrect format specifier
  456. - GH #4173: AbstractConfiguration: when expanding property references, allow specifying a default value
  457. - GH #4174: AbstractConfiguration: support Int16/UInt16 and Int32/UInt32
  458. - GH #4182: Util: Make load()/save()/clear() operations on configurations thread-safe
  459. - GH #4184: Poco::TemporaryFile: make filenames less predictable
  460. - GH #4195: Poco::File::created() on macOS should use birthtime
  461. Release 1.11.7 (2023-07-11)
  462. ===========================
  463. - GH #4023: CPPParser: Losing data if parameter std::function<void(bool)> is used
  464. - GH #4031: Classes with virtual functions missing virtual destructors (compilation issues)
  465. - GH #4014: wrong string offset in HTTPCredentials::isNTLMCredentials
  466. - GH #4071: PageCompiler: add referrerPolicy to page directive
  467. - GH #4077: OpenSSL 3: Don't throw if legacy provider is not available
  468. - GH #4078: Upgrade bundled SQLite to 3.42
  469. - GH #4079: SocketConnector: constructor should take SocketAddress by const reference
  470. - GH #4082: Logger performance improvement with formatting
  471. Release 1.11.6 (2022-12-08)
  472. ===========================
  473. - GH #3147: Reading from request stream hangs when "Transfer-Encoding: chunked" is used
  474. - GH #3859: zlib headers not updated
  475. - GH #3876: Replace sprintf with snprintf in Environment and NumberFormatter to avoid deprecation warnings
  476. - Build system improvements for Xcode on Apple Silicon.
  477. - Upgrade bundled SQLite to 3.40.0
  478. Release 1.11.5 (2022-10-31)
  479. ===========================
  480. - GH #3849: Upgrade bundled libexpat to 2.5.0 [fixes CVE]
  481. Release 1.11.4 (2022-10-24)
  482. ===========================
  483. - GH #3805: Upgrade expat to 2.4.9
  484. - GH #3846: Upgrade bundled zlib to 1.2.13 [fixes CVE]
  485. - GH #3847: Upgrade bundled SQLite to 3.39.4
  486. Release 1.11.3 (2022-06-12)
  487. ===========================
  488. - GH #3567: fix(openssl-initializer): check legacy provider existence for legacy exception
  489. - GH #3587: MySQL UUID binding temporary string
  490. - GH #3632: Redis - add TLS support
  491. - updated a few copyright dates
  492. Release 1.11.2 (2022-04-16)
  493. ===========================
  494. - GH #2882: Handle negative DST offset
  495. - GH #3268: Poco redis command set have a bug when you want to set nx ex or expireTime
  496. - GH #3338: NamedMutex does not work on Linux distributions where fs.protected_regular=1
  497. - GH #3448: Basic support for OpenSSL 3.0.0
  498. - GH #3458: encryptString() crash on redhat/centos 8 with FIPS enabled using md5 default digest
  499. - GH #3465: NetSSL_Win: bad error handling when decodeMessage() fails
  500. - GH #3466: DefinePlatformSpecific.cmake: handle RelWithDebInfo and MinSizeRel configurations
  501. - GH #3470: bug in JSON ParseHandler.cpp (RFC 7159 should be valid)
  502. - GH #3472: Add Windows 11 detection to Environment_WIN32U
  503. - GH #3483: Adds Windows 11 and Server 2022 to Environment::osDisplayName()
  504. - GH #3485: Adds Visual Studio 2022 (v170) to buildwin.cmd
  505. - GH #3495: Should the Array::operator[] throw?
  506. - GH #3500: Sandbox all iFrames in PocoDoc
  507. - GH #3504: OpenSSL 3 compatibility
  508. - GH #3505: JSON::PrintHandler.value(bool) prints incorrect value
  509. - GH #3507: Reference counting for bound configuration in Util::Option is broken
  510. - GH #3508: #3507: Fix bound configuration reference counting in Poco::Util::Option.
  511. - GH #3509: fix dst and utcOffset handling for Dublin time zone
  512. - GH #3515: NetSSL_OpenSSL Testsuite: testInterop() and testProxy() fail due to changed certificate
  513. - GH #3518: Expat version check in #defines incorrect.
  514. - GH #3519: Add convertation to string in Redis Command#set
  515. - GH #3524: [linux] Why is Poco::XML linked to Poco::Zip target?
  516. - GH #3525: Bad management of file in case of OpenSSLException in X509Certificate::readPEM and X509Certificate::writePEM
  517. - GH #3538: Upgrade bundled expat to 2.4.7
  518. - GH #3544: Add back NIOS2 double conversion detection to fix compile errors
  519. - GH #3549: Test against the correct signatures in the JWT ES384 and ES512 tests
  520. - GH #3553: Upgrade bundled zlib to 1.2.12
  521. - GH #3559: Poco::Data::PostgreSQL - DateTime extraction truncates fractional seconds
  522. - GH #3563: Remove support for OpenSSL < 1.0
  523. Release 1.11.1 (2021-11-05)
  524. ===========================
  525. - Upgraded bundled PCRE to 8.45
  526. - Upgraded bundled SQLite to 3.36.0
  527. - GH #2823: error: implicit conversion from 'int' to 'float' changes value from 2147483647 to 2147483648
  528. - GH #2966: SocketReactor loads one core of CPU up to 100%
  529. - GH #3221: Crash reported on Windows in X509Certificate verification
  530. - GH #3330: Poco::Data::ODBC::ODBCStatementImpl causes crash
  531. - GH #3334: Fork error on tvOS and watchOS
  532. - GH #3335: XML error when build 1.11.0
  533. - GH #3344: [bug] MacOS bundle destination path is not set
  534. - GH #3345: fix cmake bundle
  535. - GH #3347: The definition POCO_NO_FORK_EXEC is not respected or something like this
  536. - GH #3353: fix fork option
  537. - GH #3360: Add POCO_PGSQL_{INCLUDE,LIB} variables
  538. - GH #3363: Fixed compilation error with MongoDB::Connection and Util::Application
  539. - GH #3377: Updates comments for windows
  540. - GH #3381: DNS::hostByAddress not thread-safe
  541. - GH #3397: Fix crash due to X.509 certificates with Subject Alternative Name other than DNS Host
  542. - GH #3400: fix std::localtime not thread safe
  543. - GH #3414: fix missing expat definition
  544. - GH #3425: Fixed suspend/resumeEvents pair in DirectoryWatcher
  545. Release 1.11.0 (2021-06-28)
  546. ===========================
  547. - This release introduces ActiveRecord, a simple and lightweight object-relational mapping
  548. (ORM) framework based on the Active Record pattern and the Data library.
  549. - Upgraded bundled expat to 2.4.1
  550. - Upgraded bundled PCRE to 8.44
  551. - Upgraded bundled pdjson to latest master
  552. - Upgraded bundled SQLite to 3.35.5
  553. - GH #2205: Start POCO as Windows service with parameters fix #2190
  554. - GH #2418: SecureServerSocket doesn't work with IpV6
  555. - GH #2677: Fix CLOB type support in StatementImpl and RecordSet
  556. - GH #2746: Race in TCPServerDispatcher::stop
  557. - GH #2783: Invalid condition [ICMPv4PacketImpl.cpp:234]
  558. - GH #2825: riscv: Enable double operations when using double float abi
  559. - GH #2895: Settings to verify OCSP stapling response (if received any) for client connections
  560. - GH #2904: Support environments without hardware floating point
  561. - GH #2906: Support environments without hardware floating point
  562. - GH #2927: Fix assigned value to wrong pointer
  563. - GH #2928: Fix clang issue
  564. - GH #2929: Zip and SevenZip do not depend on Util, XML, JSON
  565. - GH #2932: Poco::Net::NTLMContext is missing dllexport/dllimport symbols
  566. - GH #2935: Configuration to receive OCSP stapling response for client connection…
  567. - GH #2942: Avoid clang 10 -Wimplicit-int-float-conversion warning/error when con…
  568. - GH #2945: Iterating over Var containing empty container throws "Out of range" exception
  569. - GH #2970: Poco::Data::TypeHandler<Poco::Nullable<T>>::prepare() must prepare with underlying type, not Poco::Data::Keywords::null
  570. - GH #2982: Poco::Net - return value from close needs to be checked in SocketImpl
  571. - GH #2984: Fixed linking with Data ODBC error on some platforms
  572. - GH #2989: setting priorityNames property on PatternFormatter has no effect
  573. - GH #2992: CryptoTransformImpl::setPadding(int padding) incorrect for OpenSSL >= 1.1
  574. - GH #2993: The Sec-WebSocket-Key of WebSocket is always the same one
  575. - GH #3019: ObjectPool wait on borrow condition fix
  576. - GH #3021: PatternFormatter priorityNames fix
  577. - GH #3022: Process::isRunning(PID pid) causes handle leak on Windows
  578. - GH #3023: Link to "discussion forums" on "How to get help" advice broken
  579. - GH #3025: PKCS12Container: fix memory leaks on exceptions (1.10.1)
  580. - GH #3027: PKCS12Container: fix memory leaks on exceptions (devel)
  581. - GH #3037: Poco::toJSON: Don't escape forward slash in JSON strings
  582. - GH #3041: PostgreSQL and TEXT column type
  583. - GH #3044: Upgrading PCRE to 8.44 is it in immediate plan?
  584. - GH #3045: PostgreSQL and BYTEA column type
  585. - GH #3057: Poco::Data::PostgreSQL::SessionImpl::connectorName() returns empty string
  586. - GH #3059: MessageHeader::splitParameters fails on 'httponly' cookie with 'string too long' exception
  587. - GH #3061: SocketImpl::bind --> bind wrong config
  588. - GH #3064: PostgreSQL: Extraction of 16-bit integers corrupts result
  589. - GH #3066: CMake warning about MYSQL casing
  590. - GH #3067: Fix pkg-name in find_package_handle_standard_args
  591. - GH #3068: Documented ENABLE_JWT option
  592. - GH #3074: Fix sessions may not return back to the pool
  593. - GH #3076: Avoid access to already freed memory in JSON code
  594. - GH #3078: Fix typo in the ThreadPool's docs
  595. - GH #3086: Use POCO_IOS_INIT_HACK for Linux in combination with libc++
  596. - GH #3089: HTTPSessionFactory does not support HTTPClientSession::ProxyConfig
  597. - GH #3090: Do not initialize value with undefined behavior
  598. - GH #3091: feat(SharedLibrary): add more detailed error description when LoadLib…
  599. - GH #3092: feat(SharedLibrary): add more detailed error description when LoadLib…
  600. - GH #3095: Digest proxy authentication does not work in 1.10.1
  601. - GH #3097: Support for building Arm64 Apple Silicon
  602. - GH #3099: Fixed Postgres extraction into Dynamic::Var
  603. - GH #3107: unused variable
  604. - GH #3114: Added JSON Array::empty() method
  605. - GH #3116: Changed EventHandlerMap key
  606. - GH #3130: Possible use-after-free bug on the method copyToImpl
  607. - GH #3133: POCO_STATIC has been deprecated
  608. - GH #3135: Poco::Data::SQLite::Utility::fileToMemory unsuccessful if journal exists
  609. - GH #3136: Fixed null character issue when parsing a JSON
  610. - GH #3138: Add support of arch riscv32
  611. - GH #3141: allow to handle hot-journal (fixes #3135)
  612. - GH #3151: fix(JSON::Object): crash when a key is removed from object with JSON_PRESERVE_KEY_ORDER
  613. - GH #3153: Poco::Data::ODBC [N]VARCHAR(MAX) wrong maxDataSize() result
  614. - GH #3155: Fixed typo in overridden
  615. - GH #3157: fix(openssl): add missing dependency to OpenSSL components
  616. - GH #3159: Bug in NumericString with decSep != '.'
  617. - GH #3163: Correct Var::parse null value
  618. - GH #3166: Fix PostgresSQL BLOB extractor
  619. - GH #3168: Reference documentation contains invalid links.
  620. - GH #3169: #2746: Fix race condition on TCPServerDispatcher stop
  621. - GH #3182: Poco::Process:launch on MacOS BigSur
  622. - GH #3183: fix setPadding
  623. - GH #3190: [NetSSL_Win]: SSL-connection fails with "Host name verification failed error" (Regression bug)
  624. - GH #3191: Fixing a bug in the NetSSL_Win module (Host name verification failed error)
  625. - GH #3193: ServerApplication::registerService() unquoted path security vulnerability
  626. - GH #3196: std::forward for Poco::Optional ctor with rvalue
  627. - GH #3202: JWT: ESxxx signature must include padding for ECDSA R and S values
  628. - GH #3204: CryptoTransformImpl::setPadding wrong call
  629. - GH #3215: XML parser returns item from different element in a array
  630. - GH #3217: CMake: warning message with -DPOCO_STATIC confusing
  631. - GH #3219: SMTPClientSession: invalid SMTP command if empty recipients list in MailMessage
  632. - GH #3223: Compilation failure since OpenSSL (alpha 13)
  633. - GH #3224: Remove SSL23 support from Poco/Crypto
  634. - GH #3229: Upgrade bundled expat to 2.3.0
  635. - GH #3230: ECDSADigestEngine: include missing header
  636. - GH #3233: Feat/hash range
  637. - GH #3237: An error in the documentation for Poco/JSON/Parser.h
  638. - GH #3239: XML parser returns item from different element in a array #3215
  639. - GH #3242: RemoteSyslogListener: add reusePort option
  640. - GH #3245: find_package(Poco REQUIRED COMPONENTS ... NetSSL) requires an aditional find_package(OpenSSL) since poco-10
  641. - GH #3248: PollSet not working as intended on Windows
  642. - GH #3249: PollSet - poll() timeout not properly used
  643. - GH #3250: fix(PollSet): #3248 #3249
  644. - GH #3260: Memory leak in EVPPKey::loadKey used with files & wrong password
  645. - GH #3266: Order of Util::Application::uninitialize() is not in reverse as documented
  646. - GH #3269: Poco::Net::Context initialization with empty certificateFile
  647. - GH #3274: Fix localtime_r for VxWorks 6.9 and later
  648. - GH #3278: Fixing no hardware floating point support - Part II
  649. - GH #3279: Update bundled expat to 2.4.0
  650. - GH #3282: Update constant in setContentType documentation
  651. - GH #3284: JSON Fuzzing: Undefined-shift in poco_double_conversion::DiyFpStrtod
  652. - GH #3285: JSON Fuzzing: Stack-overflow in Poco::JSON::ParserImpl::handle
  653. - GH #3291: JSON Fuzzing: Stack-overflow with empty stacktrace
  654. - GH #3292: JSON Fuzzing: Stack-overflow in Poco::JSON::Array::~Array
  655. - GH #3295: A variation on Issue 949 comes back to life?
  656. - GH #3299: NetSSL: Allow per-Context InvalidCertificateHandler
  657. - GH #3301: Unterminated string possible in NetworkInterfaceImpl::setPhyParams()
  658. - GH #3302: MSVC: Poco hides warnings (C4996) for the C++14 attribute [[deprecated]]
  659. - GH #3303: DNS HostEntry returns multiple entries
  660. - GH #3307: Poco::Crypto::X509Certificate: obtain certificate fingerprint
  661. - GH #3309: JSON parser copies entire JSON document to memory when parsing from stream.
  662. - GH #3310: Upgrade bundled SQLite to 3.35.5.
  663. - GH #3313: Upgrade bundled double-conversion
  664. - GH #3314: NetSSL_OpenSSL: any.pem certificate error: ca md too weak
  665. - GH #3315: Unintended sign/type conversion out of RecordSet
  666. - GH #3317: Data::MySQL MySQL headers and library search paths
  667. - GH #3318: Data: Support Poco::UUID for data binding
  668. - GH #3321: Feat/data db encoding
  669. - GH #3322: why is useless MyStruct present in Thread_posix.cpp :: ThreadImpl::setPriorityImpl (easy to fix I guess)
  670. - GH #3326: [asan] Undefined behavior in ICMPv4PacketImpl.cpp
  671. Release 1.10.1 (2020-02-10)
  672. ===========================
  673. - Upgraded bundled SQLite to version 3.31.1.
  674. - GH #2894: Poco 1.10.0 doesn't build with cmake & POCO_UNBUNDLED
  675. - GH #2898: poco 1.10/ NetSSL / openssl < 1.1 : default server usage changed (compare to 1.9.4)
  676. - GH #2834: Wrong cancelation of the fix: incorrect type of store name parameter in
  677. CertOpenStore API call into NetSSL_Win. Release 1.10.0
  678. - GH #2791: allow pre-allocation of the buffer in Poco::LogStreamBuf.
  679. - GH #2816: Modernise TLS configuration
  680. - GH #2818: Add getSpecifiedPort() method in Poco::URI.
  681. - GH #2909: Test failures on s390x architecture with 1.10.0
  682. - GH #2911: Poco::UTF16Encoding and Poco::UTF32Encoding byte order conversion bug
  683. - GH #2912: Poco::SHA2Engine computes incorrect hash on big-endian systems
  684. - GH #2923: cmake: Version 1.10.0 not parsed correctly from VERSION file
  685. - GH #2908: [Windows] Process arguments quoting is broken.
  686. - GH #2894: Poco 1.10.0 doesn't build with cmake & POCO_UNBUNDLED
  687. - GH #2920: Close Service Handle after DeleteService Function call
  688. - GH #2919: Fixed Crash in WinService::setFailureActions
  689. - GH #2922: 1.10 cmake build fails on FreeBSD 11.2 Release
  690. - MySQL: resetting the session when putting it back into a SessionPool is now optional
  691. (and disabled by default) due to a bug in MySQL messing up the character encoding when doing so.
  692. - Poco::AutoPtr and Poco::SharedPtr now support comparison with nullptr.
  693. Release 1.10.0 (2020-01-27)
  694. ===========================
  695. - This release now requires a C++14 compiler (GCC 5, Clang 3.4, Visual C++ 2015).
  696. - Visual Studio project and solution files for versions prior to 2015 have
  697. been removed. Furthermore, the separate projects and solutions for 64-bit builds
  698. have been removed and configurations have been merged in a single project file.
  699. - POCO's fixed-size integer types are now based on <cstdint> types. This changes
  700. the definition of Poco::Int64 and Poco::UInt64 on some platforms.
  701. - Many methods exposing raw pointers have been changed to use smart pointers
  702. (usually Poco::SharedPtr or Poco::AutoPtr) instead. This may break some existing
  703. code. Specifically, the Logging framework in the Foundation library and the
  704. Configuration framework in the Util library have been changed.
  705. - New JWT library for dealing with JSON Web Tokens.
  706. - Upgrade bundled SQLite to version 3.31.0.
  707. - The NetSSL_OpenSSL library supports TLS 1.3 with OpenSSL 1.1.1 or later.
  708. - The NetSSL_Win library supports TLS 1.3 if it's supported by the underlying SChannel
  709. implementation.
  710. - Added support for NTLM authentication in the Net library.
  711. - NetSSL_OpenSSL now has a Poco::Net::FTPSClientSession and Poco::Net::FTPSStreamOpener
  712. class for connecting to FTP servers over TLS.
  713. - Fixed a potential crash in Poco::Net::NetworkInterface on Linux and macOS due to
  714. an invalid cast when obtaining the MAC address of an interface.
  715. - GH #2624: Poco::FileChannel/Poco:LogFileImpl::writeImpl() on Windows should translate \n to \r\n.
  716. - GH #2869: X509Certificate does not render UTF-8 characters in subjectName
  717. - GH #2863: NetworkInterface::map can fail to reveal some interfaces if an earlier one can not be handled
  718. - GH #2807: Poco::Data::ODBC Binding of SQL Decimal Type
  719. - GH #2812: String trimInPlace crashes with 0 size on Visual Studio Express 2017
  720. - GH #2830: Fix wrong buffer size in client handshake when re-using a SecureSocket [NetSSL_Win]
  721. - GH #2809: Allow to filter long tests using a command line argument
  722. - GH #2853: Poco::Process::launch process environment unicode support is broken on Windows
  723. - GH #2843: Poco::Net::MediaType::parse() does not split parameters
  724. - GH #2772: On iOS real device (not simulator) the home directory is not usable
  725. - GH #2689: Added tryWait() into Process and ProcessHandle. Handle kill()-ed UNIX process exit codes.
  726. - GH #2866: unescape Backslash char in UTF8 unescape method
  727. - GH #2879: Add support for SameSite attribute in HTTPCookie
  728. - GH #2824: Poco::Environment missing UTF8/wstring support on Windows
  729. - GH #2295: setEscapeUnicode() functions in JSON Array and Object classes ignore their boolean parameter
  730. - GH #2306: Why does Poco explicitly define _WIN32_WINNT?
  731. - GH #2802: Deprecated warning when building POCO with OpenSSL in submodule + cmake
  732. - GH #2884: Is it a description error about setReceiveTimeout()?
  733. - GH #2780: Allow Poco::Net::Context::usePrivateKey to accept ECKey and/or general EVPPKey
  734. - GH #2747: NetSSL_Win: Context constructor usage argument should specify minimum supported SSL/TLS version
  735. - GH #2745: Small problem in the code
  736. - GH #2743: X509Certificate validFrom expiresOn Date parsing
  737. - GH #2744: Poco::Mysql does not build with MySQL 8.0+
  738. - GH #2686: Uploads larger than 2GB fail
  739. - GH #2217: UUIDGenerator should allow random seed
  740. - GH #1609: Improve XDG Base Directory Specification implementation
  741. - GH #561: Support for XDG Base Directory Specification
  742. - GH #2881: Add an option to force the use of PollingDirectoryWatcherStrategy
  743. - GH #2584: Adding standard macOS legacy encodings
  744. - GH #2885: fix Dynamic::Var parse string issue
  745. - GH #2616: Restore pre-1.8.0 behaviour of Poco::Net::ServerSocket::bind.
  746. - GH #2641: Implement DataURIStream for extracting data from data URIs.
  747. - GH #2842: File fail on overwrite
  748. - GH #2840: Deleting Registry Keys on the WOW6432Node is not possible on 64Bit Applications
  749. - GH #2841: Service manager improvments
  750. - GH #2827: X509Certificate: Get rid of deprecated OpenSSL 1.1 APIs
  751. - GH #2826: CipherImpl: Fix small error with OpenSSL 1.1
  752. - GH #2775: Fix issue in NetSSL_Win. Windows Server 2016 reboots while trying to establish an SSL connection.
  753. - GH #2773: Fix the issue with incorrect type of store name parameter in CertOpenStore API call into NetSSL_Win
  754. - GH #2766: Support qnx sdp7
  755. - GH #2308: SocketAcceptor::setReactor() is broken
  756. - GH #2250: Poco::strToInt<> fails for values right above the type's boundary / limit
  757. - GH #2249: Poco::JSON::Object::set() should return reference to this to allow chaining.
  758. - GH #2275: SQLite mismatch open/close API calls
  759. - GH #1921: ICMPSocket does not check reply address
  760. - GH #2092: Use PollSet in SocketReactor
  761. - GH #2552: Poco::MongoDB test cases failed in Linux on IBM z
  762. - GH #2546: MySQL session state is not cleared in SessionPool
  763. - GH #2410: Preserve entries order in DynamicStruct
  764. - GH #2467: Can not open certain zip files include data descriptor
  765. - GH #2398: Poco 1.9.1 branch cmake build on FreeBSD 11.1 failed
  766. - GH #2365: add struct tm support to DateTime
  767. - GH #2348: NTPClient not checking reply address
  768. - GH #2346: lock-order-inversion in SocketReactor
  769. - GH #2330: add socket gather/scatter capabilities
  770. - GH #2343: UDPServer and client
  771. - GH #2329: add PMTU discovery
  772. - GH #2345: SocketNotifier not thread-safe
  773. - GH #2323: WebSocketTest.cpp faults reported by valgrind
  774. - GH #1160: Poco::Net::NetException "SSL Exception: error:1409F07F:SSL routines:ssl3_write_pending:bad write retry"
  775. - GH #2547: Reset connection when a session is returned to the SessionPool
  776. - GH #2451: http client timeout on Windows 7 and Server 2008 R2
  777. - GH #2417: Added missing IPv6 methods to SecureSocketImpl
  778. - GH #2408: add ordered containers
  779. - GH #2042: Android abstract namespace local socket address
  780. - GH #2088: Fix race condition in TCPServerDispatcher.cpp
  781. - GH #2892: SocketImpl::bind --> bind wrong config
  782. Release 1.9.4 (2019-09-18)
  783. ==========================
  784. - fixed GH #2784: Upgrade bundled expat XML parser library to release 2.2.8,
  785. which fixes CVE-2019-15903.
  786. Release 1.9.3 (2019-08-20)
  787. ==========================
  788. - fixed GH #2603: Remove incorrect upper size limits for SSL certificates in NetSSL_Win
  789. - fixed GH #2661: Poco::Zip::ZipArchive cannot load new tomcat.zip file (additional fix)
  790. - fixed GH #2742: Support of vs150 & vs160 with the official Microsoft localization executable,
  791. vswhere.exe, installed by MSVC starting from VS2017
  792. - Data/ODBC: make binding of std::string configurable (SQL_LONGVARCHAR - default or SQL_VARCHAR)
  793. through a global setting (Poco::Data::ODBC::Connector::bindStringToLongVarChar()).
  794. - added Poco::SharedLibrary::setSearchPath() (currently implemented on Windows only)
  795. - Windows required minimum version is now Windows XP SP2
  796. - upgraded bundled SQLite to 3.29.0
  797. - CppParser now supports type aliases defined with using keyword.
  798. - PageCompiler: added support for adding Content-Security-Policy and Cache-Control headers.
  799. Release 1.9.2 (2019-07-02)
  800. ==========================
  801. - fixed GH #2736: Error using CMake gui - latest version
  802. - fixed GH #2737: Bundles vulnerable copy of Expat — please upgrade to Expat 2.2.7
  803. - fixed GH #2738: Poco::AccessExpireStrategy::onGet() must not extend expiration time after expiration
  804. Release 1.9.1 (2019-06-24)
  805. ==========================
  806. - Added support for building with different OpenSSL distributions on Windows.
  807. See the POCO_EXTERNAL_OPENSSL macro defined in Foundation/include/Poco/Config.h
  808. for options.
  809. - Added Poco::Net::HTTPClientSession::flushRequest()
  810. - Added Poco::Net::WebSocket::setMaxPayloadSize() and Poco::Net::WebSocket::getMaxPayloadSize()
  811. to specify a maximum acceptable payload size for Poco::Net::WebSocket::receiveFrame().
  812. - Poco::Net::WebSocket: don't attempt to send empty credentials in response to 401 response.
  813. - Redis: added support for additional commands (exists, expire, ping, multi, exec, discard)
  814. - Redis: added Poco::Redis::Client::isConnected()
  815. - Upgraded bundled PCRE to version 8.43
  816. - Upgraded bundled SQLite to version 3.28.0
  817. - Added project/solution files for Visual Studio 2019
  818. - Fixed Visual Studio project files (version information from DLLVersion.rc not included in DLLs)
  819. - Include version resource in DLLs built with CMake
  820. - Added HTTP*Credentials::empty() and HTTPCredentials::clear()
  821. - fixed GH #2220: Encoding/DoubleByteEncoding.cpp fails to compile with VS2008 and _DEBUG
  822. - fixed GH #2243: DLLVersion.rc is excluded from build, missing detail information in properties of *.dll
  823. - fixed GH #2277: SQLite null pointer dereference occurs when exception is being thrown
  824. - fixed GH #2313: PollSet behaves differently on windows
  825. - fixed GH #2316: cmake can't find MySQL and ODBC libraries
  826. - fixed GH #2336: Omit ContentLength in WebSocket accept response
  827. - fixed GH #2358: Don't include <openssl/fips.h> for later OpenSSL
  828. - fixed GH #2364: Stringify escapes every unicode symbol when object contain an array
  829. - fixed GH #2380: Calling Poco::Net::X509Certificate::addChainCertificate() leads to double free.
  830. - fixed GH #2492: Net::Socket::address() crash on Android
  831. - fixed GH #2549: Fix keepAlive in http client session
  832. - fixed GH #2565: HTMLForm: optional enforcement of Content-Length instead of Chunked Transfer-Encoding
  833. - fixed GH #2570: DialogSocket: receiveStatusMessage() - line length limit applies to entire multi-line message
  834. - fixed GH #2583: Crypto library does not build with OpenSSL 1.0.0
  835. - fixed GH #2655: MongoDB Binary element to string - bug
  836. - fixed GH #2661: Poco::Zip::ZipArchive cannot load new tomcat.zip file
  837. - fixed GH #2700: Invalid read of memory in Poco::Environment::set which may cause crashes.
  838. - fixed GH #2712: File_WIN32.cpp(168): error C2065: "_upath":Undeclared identifier
  839. - fixed GH #2723: Access violation when trying to decompress .zip file with unsupported compression method.
  840. Release 1.9.0 (2018-03-07)
  841. ==========================
  842. - Added additional text encodings, available in the new PocoEncodings library (GH #2165)
  843. - Added Punycode support for resolving Internationalized Domain Names to Poco::Net::DNS (GH #2164)
  844. - Added XDG Base Directory Specification support in Poco::Path, Poco::Util::SystemConfiguration
  845. and Poco::Util::Application (GH #1609, GH #561, GH #1609)
  846. - Added support for GCM ciphers in Crypto library (GH #2129)
  847. - Poco::Net::RemoteSyslogChannel and Poco::Net::RemoteSyslogListener now have basic
  848. support for RFC 5424 structured data (GH #2173)
  849. - Poco::File now has methods for obtaining partition space (GH #1545)
  850. - Added Poco::Net::Context::addCertificateAuthority() (GH #2197)
  851. - Added Poco::AutoPtr::reset() and Poco::SharedPtr::reset() to improve compatibility
  852. with std::shared_ptr() (GH #2172)
  853. - fixed GH #703: Poco::Data::SQLite data types (INTEGER is now mapped to Int64)
  854. - fixed GH #1426: inttypes.h is available on sun solaris
  855. - fixed GH #1912: Run ping with custom data size #1912
  856. - fixed GH #2177: Run ping with custom timeout instead of the default
  857. - fixed GH #2058 and GH #2095: Synchronization issue/deadlock in Poco::Util::Timer at destruction
  858. - fixed GH #2089: Allow hyphen in HTTP authentication scheme names
  859. - fixed GH #2106: Undefined behavior in Delegate::equals()
  860. - fixed GH #2108: POCO SQLite Data Connector hangs for 20 secs waiting for thread timeouts on Windows
  861. - fixed GH #2142: JSON::Object preserveOrder keys not synced on assignment
  862. - fixed GH #2199 and GH #2188: Illegal header in zip file exception/assertion failure during JAR file decompression
  863. - fixed GH #2203: Use MAX_ADDRESS_LENGTH to determine buffer size
  864. Release 1.8.1 (2018-01-09)
  865. ==========================
  866. - Added Poco::File::linkTo()
  867. - fixed GH #2044: Poco::Net::NetworkInterface::list does not list inactive interfaces
  868. even when explicitly being asked for it.
  869. - fixed GH #2042: Android abstract namespace local socket address
  870. - fixed GH #2038: Poco::Net::MultipartWriter::createBoundary() always returns the same string.
  871. - fixed GH #2020: SQLite not handling parameter count mismatch correctly.
  872. - fixed GH #2012: Data/SQLite: Exception messages contain duplicate text
  873. - fixed GH #2005: Upgraded bundled PCRE to 8.41
  874. - fixed GH #2000: Fix building XMLStreamParser with unbundled expat
  875. - fixed GH #1603: fix MinGW 4.8.2 Compilation
  876. - fixed GH #1991: Support building poco 1.8.0 as cmake sub-project
  877. - fixed GH #2080: Bugs in Poco::Net::Socket::select when POCO_HAVE_FD_POLL is defined
  878. Release 1.8.0.1 (2017-11-11)
  879. ============================
  880. - Reverted change for GH #1828; DeflatingStreamBuf::sync() no longer flushes
  881. underlying stream as this causes corruption for some Zip files.
  882. - PocoDoc: fix for handling compiler configuration for Gradle builds.
  883. Release 1.8.0 (2017-11-10)
  884. ==========================
  885. - Poco::Base64Encoder: add support for base64url encoding (GH #1967)
  886. - Add Poco::Net::PollSet class to Net library (GH #1763)
  887. - The Net library now supports Unix Domain Sockets, where available.
  888. - Added stream parser (Poco::XML::XMLStreamParser) to XML library (GH #1697)
  889. - Added Poco::Net::TCPServerConnectionFilter and Poco::Net::TCPServer::setConnectionFilter()
  890. to support connection filtering and IP blacklisting (GH #1485)
  891. - Added Redis library (GH #1383)
  892. - Added Zip64 support to Zip library (GH #1356)
  893. - Upgraded bundled SQLite to 3.21.0
  894. - Removed OpenVMS support (GH #1988)
  895. - fixed GH #271: NamedMutex_UNIX.cpp must remove semid
  896. - fixed GH #739: Add WebSocket::receiveFrame() that appends to a Poco::Buffer<char>
  897. - fixed GH #749: NTP Packet impl not according to RFC958
  898. - fixed GH #896: Sample "TwitterClient" of NetSSL_OpenSSL can't be build
  899. - fixed GH #1172: Poco::Data default storage should be std::vector
  900. - fixed GH #1337: Poco::HTMLForm throws exception HTMLFormException("Form must be prepared")
  901. even after form is prepared.
  902. - fixed GH #1373: SessionImpl::close() does not check return code of close handle specific function
  903. - fixed GH #1425: Workaround bug in SolarisStudio 12.4 on RVO-ed objects.
  904. - fixed GH #1614: Problematic license for JSON component: the previously used JSON.org parser
  905. has been replaced with pdjson
  906. - fixed GH #1659: wrong field size calculation in ODBC code
  907. - fixed GH #1683: Poco::Data ODBC impl doesn't bind to unsigned numeric types properly
  908. - fixed GH #1705: MongoDB: support URI in Connection
  909. - fixed GH #1708: "SocketReactor::addEventHandler" and "SocketReactor::removeEventHandler"
  910. must protect the access to "NotifierPtr pNotifier"
  911. - fixed GH #1729: getConnectionTimeout of SQLite DB wrapper returns wrong value
  912. (in milliseconds, should be in seconds)
  913. - fixed GH #1739: OpenSSLInitializer isn't threadsafe
  914. - fixed GH #1750: double_conversion in NumericString is in conflict with Qt5 Core
  915. - fixed GH #1804 and GH #1805: Integer Overflow or Wraparound
  916. - fixed GH #1828: DeflatingStreamBuf::sync() should also flush underlying stream.
  917. - fixed GH #1880: FTPClientSession::close() error
  918. - fixed GH #1897: DateTime wrong binding/extraction for MySQL database
  919. - fixed GH #1905: Compiling Foundation library with POCO_NO_FPENVIRONMENT in Config.h fails
  920. - fixed GH #1906: Race condition in ThreadPool
  921. - fixed GH #1913: Message Doesn't Support 64-bit Thread IDs
  922. - fixed GH #1921: ICMPSocket does not check reply address
  923. - fixed GH #1926: Exception when using SortedDirectoryIterator
  924. - fixed GH #1934: File::setExecutable() on POSIX should set executable bit for group and
  925. other if corresponding readable bit is set
  926. - fixed GH #1950: Net Exception: Address family not supported with clang
  927. - fixed GH #1964: Buffer<> swap miss ownMem
  928. Release 1.7.9p2 (2017-11-06)
  929. ============================
  930. - fixed GH #1628: Export Poco::Zip::ZipUtil class
  931. Release 1.7.9p1 (2017-11-02)
  932. ============================
  933. - fixed GH #1968: Zip Decompress Parent Path Injection
  934. Release 1.7.9 (2017-09-11)
  935. ==========================
  936. - fixed GH #1813: xmlparse.cpp doesn't compile in WinCE (poco 1.7.8p3)
  937. - fixed GH #1826: XPath query error
  938. - fixed GH #1834: Visual Studio 2008 cannot find stdint.h
  939. - fixed GH #1842: Upgrade bundled expat to 2.2.3
  940. - fixed GH #1843: Use random salt for Poco::XML::NamePool
  941. - fixed GH #1865: AbstractEvent::hasDelegates() is not thread-safe
  942. - improved/fixed QNX support
  943. - Poco::Util::LayeredConfiguration: added support for labelling configurations and
  944. finding them by their label
  945. - upgraded bundled SQLite to 3.20.1
  946. - PageCompiler: support <%@ include file="<path>" %> syntax for includes, in addition
  947. to <%@ include page="<path>" %>
  948. - PageCompiler: optimize generated request handler code by removing useless
  949. statements, e.g. writing empty strings.
  950. - added POCO_DEPRECATED macro which will be used in the future to deprecate
  951. classes and methods.
  952. - Poco::NamedMutex and Poco::NamedEvent (System V Semaphores implementation): files are
  953. now opened with O_RDONLY | O_CREAT instead of O_WRONLY | O_CREAT, allowing sharing
  954. between different users. Furthermore, ftok() is called with 'p' as project ID
  955. argument.
  956. Release 1.7.8p3 (2017-06-22)
  957. ============================
  958. - fixed GH #1760: Upgrade bundled expat to 2.2.1 which fixes some vulnerabilities:
  959. http://seclists.org/oss-sec/2017/q2/499
  960. Release 1.7.8p2 (2017-04-18)
  961. ============================
  962. - fixed GH #1655: CipherImpl memory leak with OpenSSL 1.1
  963. Release 1.7.8 (2017-02-21)
  964. ==========================
  965. - fixed GH #1212: Lost WebSocket Frames after Client Websocket Handshake is complete
  966. - fixed GH #1260: URI encoding
  967. - fixed GH #1501: Alpine 3.4 trouble with Foundation/src/Error.cpp
  968. - fixed GH #1523: Long path names under Windows
  969. - fixed GH #1536: Building with OS X 10.12 SDK and 10.7 deployment target without libc++ fails
  970. - fixed GH #1537: Need to add multiple cflags parameters to configure
  971. - fixed GH #1539: Allow overriding POCO_TARGET_OSARCH for iPhoneSimulator
  972. - fixed GH #1546: Enable bitcode for iPhone build config
  973. - fixed GH #1549: Latin2Encoding and 0xFF
  974. - fixed GH #1551: Unable to use Poco on macOS 10.12
  975. - fixed GH #1552: IPv6 & operator throws an exception when scope = 0
  976. - fixed GH #1566: Poco/Zip issue with some CM_DEFLATE archives
  977. - fixed GH #1567: Poco/ZIP issue with uncompressed archives
  978. - fixed GH #1570: IPv6AddressImpl::toString() returns wrong output for IPv6 address "::"
  979. - fixed GH #1571: ODBC Preparator memory leak
  980. - fixed GH #1573: Poco::File::createDirectories() should not throw Poco::FileExistsException
  981. - fixed GH #1580: Unable to unzip zip file created using non-seeking stream
  982. - fixed GH #1581: Cannot find 'pcre.h' when using POCO_UNBUNDLED, a non-system PCRE, and CMake
  983. - fixed GH #1588: Poco::Net::HTTPChunkedStreamBuf::readFromDevice(): restrict maximum
  984. size of chunk length
  985. - fixed GH #1589: Poco::Net::HTMLForm: restrict maximum field and value length
  986. - fixed GH #1590: Poco::Net::DialogSocket: restrict maximum line length
  987. - fixed GH #1591: Poco::Net::MultipartReader: restrict maximum boundary string length
  988. - fixed GH #1597: adding empty file to zip leads to archive that can't be unzipped by windows
  989. - fixed GH #1599: readFromDevice() in AutoDetectStream.cpp in Poco Zip cannot detect signature
  990. - fixed GH #1534: Upgraded bundled zlib to 1.2.11
  991. - fixed GH #1558: Upgraded bundled SQLite to 3.16.2
  992. - fixed GH #1586: Upgraded bundled PCRE to 8.40
  993. - fixed GH #1538: Upgraded bundled double-conversion to 1.1.5
  994. - MongoDB: added support for authentication using "MONGODB-CR" and "SCRAM-SHA-1"
  995. authentication schemes.
  996. - MongoDB: additional documentation and fixes for style and consistency and minor
  997. API improvements (e.g., Poco::MongoDB::Binary)
  998. Note: some flag enumeration values have been renamed for better consistency
  999. and readability; existing code using these will have to be updated.
  1000. Release 1.7.7 (2016-12-31)
  1001. ==========================
  1002. - fixed GH #865: FileChannel compress fails leaving empty .gz files
  1003. - fixed GH #990: Potential race condition in Poco::File on Windows
  1004. - fixed GH #1157: Fixing a bug in the NetSSL_Win module (Host name verification failed error)
  1005. - fixed GH #1351: Fix for android include pthread.h from /usr/include
  1006. - fixed GH #1436: ODBC Bug: Unicode text(NVARCHAT) read from DB is truncated to half
  1007. - fixed GH #1453: _clock_gettime Symbol not found on Mac 10.11
  1008. - fixed GH #1460: POCO does not build with OpenSSL 1.1
  1009. - fixed GH #1461: Poco::Data::SQLite::SQLiteStatementImpl::next() error
  1010. - fixed GH #1462: AbstractConfiguration::getUInt does not parse hex numbers
  1011. - fixed GH #1464: ODBCMetaColumn::init() always maps integer NUMERIC/DECIMAL to Int32
  1012. - fixed GH #1465: Assertion violation in DateTime.cpp using ZipArchive
  1013. - fixed GH #1472: HTTP(S)StreamFactory should send a User-Agent header.
  1014. - fixed GH #1476: Fixed error with Poco::UTF8Encoding::isLegal()
  1015. - fixed GH #1484: ODBC: fix uninitialized variable
  1016. - fixed GH #1486: Support ODBC GUID data type as string
  1017. - fixed GH #1488: Poco::ObjectPool shrinks if returned object is not valid
  1018. - fixed GH #1515: Detection of closed websocket connection
  1019. - fixed GH #1521: bug in JSON ParseHandler.cpp (empty keys should be valid)
  1020. - fixed GH #1526: iOS app rejected, IPv6 not working
  1021. - fixed GH #1532: RecordSet and RowFilter: bad use of reference counter
  1022. Release 1.7.6 (2016-10-18)
  1023. ==========================
  1024. - fixed GH #1298: ZipFileInfo: Assertion violation when reading ods files
  1025. - fixed GH #1315: Redefine Poco assertions for static analysis
  1026. - fixed GH #1397: Fix issues reported by static source code analysis
  1027. - fixed GH #1403: Android compile with poco-1.7.5 no 'pthread_condattr_setclock' error
  1028. - fixed GH #1416: Assertion violation when unzipping
  1029. - fixed GH #1418: Poco::Delegate assignment operator fails to compile for some specializations
  1030. - fixed GH #1422: Can't build poco 1.7.4 or 1.7.5 on centos5 32 bit
  1031. - fixed GH #1429: exception thrown in MongoDB when using replicaset
  1032. - fixed GH #1431: Poco/FIFOBuffer.h copy issue
  1033. - fixed GH #1445: Use stable_sort to preserve order of IP addresses from DNS
  1034. - fixed GH #1456: better handle leap seconds in Poco::DateTime and Poco::LocalDateTime
  1035. - fixed GH #1458: Probably invalid epoll_create() usage inside Poco/Socket.cpp
  1036. - Poco::XML::NamePool: increased default size from 251 to 509. Default size can now
  1037. be changed by defining the POCO_XML_NAMEPOOL_DEFAULT_SIZE macro accordingly.
  1038. - Enchancements: Poco::XML::Document and Poco::XML::DOMParser have new constructors
  1039. taking a NamePool size. Poco::Util::XMLConfiguration::load() also has a new overload
  1040. for that purpose.
  1041. - Improved error handling in the Zip library (getting rid of some poco_assert macros
  1042. and did proper error handling instead).
  1043. - Added Poco::URISyntaxException (subclass of Poco::SyntaxException), which is now
  1044. thrown by Poco::URI.
  1045. - Improved error handling in Poco::URIStreamOpener::open().
  1046. - Poco::Data::MySQL: Handle connection lost/server gone error when starting a transaction
  1047. and retry.
  1048. - XMLConfiguration default (and single-argument delimiter) constructor now loads an empty
  1049. XML document with "config" root element to make the configuration usable without an
  1050. additional call to load() or loadEmpty().
  1051. Release 1.7.5 (2016-08-29)
  1052. ==========================
  1053. - fixed GH #1252: Unable to compile Poco::Data for Windows Compact Embedded 2013
  1054. - fixed GH #1344: Poco::Event::wait(timeout) should use CLOCK_MONOTONIC on Linux
  1055. - fixed GH #1355: [JSON::Object] After copy-ctor, JSON::Object::_keys still points to
  1056. keys in map of copied object
  1057. - GH #1361: Shell expansion rules say that tilde must be replaced with $HOME before
  1058. calling getpwuid
  1059. - Poco::SingletonHolder: added reset() method
  1060. - prefer clock_getttime() over gettimeofday() if available
  1061. - Upgraded bundled SQLite to 3.14.1
  1062. Release 1.7.4 (2016-07-20)
  1063. ==========================
  1064. - fixed GH #1300: Session constructor hangs
  1065. - fixed GH #1303: HTTPSClientSession::sendRequest() fails if server has wildcard cert
  1066. - fixed GH #1304: URI doesn't know "ws:/" or "wss://" schemes
  1067. - fixed GH #1307: Upgrade bundled expat to 2.2.0
  1068. - fixed GH #1313: XML library compilation error
  1069. - fixed GH #1316: Empty SocketReactor never sleeps
  1070. - Upgraded bundled SQLite to 3.13.0
  1071. Release 1.7.3 (2016-05-02)
  1072. ==========================
  1073. - fixed GH #993: Invalid zip format when opening a docx in word
  1074. - fixed GH #1235: Poco::Net::HTTPClientSession::sendRequest() should also handle HTTP_PATCH
  1075. - fixed GH #1236: Remove Poco::Data::Row::checkEmpty() as it prevents Row from being used
  1076. with all NULL rows
  1077. - fixed GH #1239: Poco::Zip::Compress with non-seekable stream fails for CM_STORE
  1078. - fixed GH #1242: Poco::Data::RowFormatter generate exception if the first column of first
  1079. row is null
  1080. - fixed GH #1253: ListMap does not maintain insertion order if key already exists
  1081. - Upgraded bundled SQLite to 3.12.2
  1082. Release 1.7.2 (2016-03-21)
  1083. ==========================
  1084. - fixed GH #1197: Upgrade bundled expat to 2.1.1
  1085. Expat 2.1.1 fixes a CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-1283
  1086. - fixed GH #1204: getdtablesize has been removed on Android 21
  1087. - fixed GH #1203: Poco::Data::RecordSet should be reusable
  1088. - fixed GH #1198: Upgrade bundled SQLite to 3.12.1
  1089. Release 1.7.1 (2016-03-14)
  1090. ==========================
  1091. - fixed GH #1187: Data/MySQL: Seeing frequent "MySQL server has gone away" errors
  1092. - fixed GH #1184: Attempting to connect via a proxy throws a DNS error "Host not found"
  1093. - fixed GH #1180: Possible deadlock when TaskManager::count() is called in onFinished
  1094. - NetSSL_OpenSSL: use TLS_*_method() instead of deprecated SSLv23_*_method()
  1095. if OpenSSL version is >= 1.1; initialize default/fallback client context to support
  1096. all TLS protocols, not just TLSv1
  1097. Release 1.7.0 (2016-03-07)
  1098. ==========================
  1099. - POSSIBLE BREAKING CHANGE: removed automatic registration of Data connectors due to
  1100. issues with static initialization order.
  1101. - NetSSL_OpenSSL: added support for ECDH and DH ciphers; added support to disable
  1102. specific protocols (Poco::Net::Context::disableProtocols());
  1103. new Poco::Net::Context constructor taking a Poco::Net::Context::Params structure that
  1104. allows specifying ECDH and DH parameters.
  1105. - Poco::Net::TCPServer: add additional try ... catch block around poll() to
  1106. gracefully deal with errors due to high system load (e.g., out of file descriptors).
  1107. - fixed GH #1171: Poco::Data::RecordSet: rowCount not reset after execute
  1108. - fixed GH #1167: CMake & POCO_UNBUNDLED: expat sources are compiled in libPocoXML
  1109. - fixed GH #1160: Poco::Net::NetException
  1110. "SSL Exception: error:1409F07F:SSL routines:ssl3_write_pending:bad write retry"
  1111. - fixed GH #1152: Wrong TaskProgressNotification description
  1112. - fixed GH #1141: Poco::StringTokenizer::TOK_TRIM changes behavior between 1.4 and 1.6
  1113. - fixed GH #1137: Missing 'longint' type in SQLite
  1114. - fixed GH #1135: Different package on github and official web site
  1115. - fixed GH #1030: tvOS / WatchOS bitcode enabled for simulators
  1116. - fixed GH #1114: World-write permissions on files created by daemon
  1117. - fixed GH #1087: prevent line breaks in base64-encoded creds
  1118. - fixed GH #1026: Fixes for producing the poco-1.6.2 release on a Cygwin x86 platform
  1119. - fixed GH #1022: Abbreviation in setThreadName can happen even if thread name is not too long
  1120. - fixed GH #1002: ActiveDispatcher saves reference to event context after event was
  1121. performed until it gets new event
  1122. - fixed GH #973: overwrite existing files on windows when moving files
  1123. - fixed GH #969: Poco::File::renameTo() behaviour differs on windows and linux
  1124. - fixed GH #967: Missing data types in SQLite
  1125. - fixed GH #966: Possible crash when processing a corrupted Zip file
  1126. - fixed GH #958: Bug while reading X509Certificate subjectName
  1127. - fixed GH #937: Missing build_vs140.cmd
  1128. - fixed GH #933: Change in JSON::Object::set(key,value) behavior in 1.6.1
  1129. - fixed GH #931: make strToInt() more strict in what it accepts
  1130. - fixed GH #921: `BasicUnbufferedStreamBuf` needs to be marked for import/export
  1131. - fixed GH #848: MailMessage::_encoding is not set when retrieving plain/text message
  1132. - fixed GH #767: Inconsistency in getPath & getPathAndQuery returns
  1133. - fixed GH #724: Poco 1.6.0 is not compiled with openssl 1.0.0
  1134. - fixed GH #713: Improved support for producing Canonical XML in XMLWriter
  1135. - fixed GH #696: bug in parsing name of attachment poco c++ 1.6.0
  1136. - fixed GH #335: Compress with nonseekable
  1137. - upgraded bundled SQLite to 3.11.0
  1138. - added Poco::Crypto::X509Certificate::equals() to compare two certificates
  1139. - support for detecting Win8/Win10 in Poco::Environment
  1140. - Poco::Net::HTTPServerRequestImpl: fixed an issue with DELETE in persistent connections
  1141. - NetSSL: added Context::preferServerCiphers()
  1142. - NetSSL: added support for ECDH, new Context constructor
  1143. - NetSSL: add support for disabling certain protocols
  1144. - SMTPClientSession: added support for XOAUTH2 authentication
  1145. - Poco::Data::SessionPool: re-added customizeSession() method from 1.4.x releases
  1146. - improved SSLManager to automatically set-up a reasonable client Context if
  1147. none is configured
  1148. - add brew OpenSSL search paths to Darwin configs
  1149. - add HTTP/1.1 version to HTTPRequest for client WebSocket, as this is required for
  1150. most servers
  1151. - remove GCC_DIAG_OFF as this caused more issues than it solved
  1152. - respect POCO_NO_FORK_EXEC in ServerApplication (tvOS)
  1153. - tvOS and WatchOS support
  1154. - fix: need an implementation of available() for WebSocketImpl
  1155. - HTTPSessionInstantiator: respect global proxy config
  1156. - added constant for HTTP PATCH method to Poco::Net::HTTPRequest
  1157. - NumberParser::parseHex[64](): allow 0x/0X prefix
  1158. Release 1.6.1 (2015-08-03)
  1159. ==========================
  1160. - added project and solution files for Visual Studio 2015
  1161. - upgraded bundled SQLite to 3.8.11.1
  1162. - fixed GH #782: Poco::JSON::PrintHandler not working for nested arrays
  1163. - fixed GH #819: JSON Stringifier fails with preserve insert order
  1164. - fixed GH #878: UUID tryParse
  1165. - fixed GH #869: FIFOBuffer::read(T*, std::size_t) documentation inaccurate
  1166. - fixed GH #861: Var BadCastException
  1167. - fixed GH #779: BUG in 1.6.0 Zip code
  1168. - fixed GH #769: Poco::Var operator== throws exception
  1169. - fixed GH #766: Poco::JSON::PrintHandler not working for objects in array
  1170. - fixed GH #763: Unable to build static with NetSSL_OpenSSL for OS X
  1171. - fixed GH #750: BsonWriter::write<Binary::Ptr> missing size ?
  1172. - fixed GH #741: Timestamp anomaly in Poco::Logger on WindowsCE
  1173. - fixed GH #735: WEC2013 build fails due to missing Poco::Path methods.
  1174. - fixed GH #722: poco-1.6.0: Unicode Converter Test confuses string and char types
  1175. - fixed GH #719: StreamSocket::receiveBytes and FIFOBuffer issue in 1.6
  1176. - fixed GH #706: POCO1.6 Sample EchoServer BUG
  1177. - fixed GH #646: Prevent possible data race in access to Timer::_periodicInerval
  1178. - DeflatingStream: do not flush underlying stream on sync() as these can cause
  1179. corrupted files in Zip archives
  1180. Release 1.6.0 (2014-12-22)
  1181. ==========================
  1182. - fixed GH #625: MongoDB ensureIndex double insert?
  1183. - fixed GH #622: Crypto: RSATest::testSign() should verify with public key only
  1184. - fixed GH #620: Data documentation sample code outdated
  1185. - fixed GH #618: OS X 10.10 defines PAGE_SIZE macro, conflicts with PAGE_SIZE in Thread_POSIX.cpp
  1186. - fixed GH #616: Visual Studio warning C4244
  1187. - fixed GH #612: OpenSSLInitializer calls OPENSSL_config but not CONF_modules_free
  1188. - fixed GH #608: (Parallel)SocketAcceptor ctor/dtor call virtual functions
  1189. - fixed GH #607: Idle Reactor high CPU usage
  1190. - fixed GH #606: HTMLForm constructor read application/x-www-form-urlencoded UTF-8 request
  1191. body first parameter with BOM in name
  1192. - fixed GH #596: For OpenSSL 1.0.1, include openssl/crypto.h not openssl/fips.h
  1193. - fixed GH #592: Incorrect format string in Poco::Dynamic::Struct
  1194. - fixed GH #590: Poco::Data::SQlite doesn't support URI filenames
  1195. - fixed GH #564: URI::encode
  1196. - fixed GH #560: DateTime class calculates a wrong day
  1197. - fixed GH #549: Memory allocation is not safe between fork() and execve()
  1198. - fixed GH #500: SSLManager causes a crash
  1199. - fixed GH #490: 2 byte frame with payload length of 0 throws "Incomplete Frame Received" exception
  1200. - fixed GH #483: multiple cases for sqlite_busy
  1201. - fixed GH #482: Poco::JSON::Stringifier::stringify bad behaviour
  1202. - fixed GH #478: HTTPCredentials not according to HTTP spec
  1203. - fixed GH #471: vs2010 release builds have optimization disabled ?
  1204. - fixed GH #468: HTTPClientSession/HTTPResponse not forwarding exceptions
  1205. - fixed GH #438: Poco::File::setLastModified() doesn't work
  1206. - fixed GH #402: StreamSocket::receiveBytes(FIFOBuffer&) and sendBytes(FIFOBuffer&) are
  1207. not thread safe
  1208. - fixed GH #345: Linker warning LNK4221 in Foundation for SignalHandler.obj, String.obj
  1209. and ByteOrder.obj
  1210. - fixed GH #331: Poco::Zip does not support files with ".." in the name.
  1211. - fixed GH #318: Logger local time doesn't automatically account for DST
  1212. - fixed GH #294: Poco::Net::TCPServerParams::setMaxThreads(int count) will not accept count == 0.
  1213. - fixed GH #215: develop WinCE build broken
  1214. - fixed GH #63: Net::NameValueCollection::size() returns int
  1215. - Poco::Logger: formatting methods now support up to 10 arguments.
  1216. - added Poco::Timestamp::raw()
  1217. - Poco::DeflatingOutputStream and Poco::InflatingOutputStreams also flush underlying stream
  1218. on flush()/sync().
  1219. - Poco::Util::Timer: prevent re-schedule of cancelled TimerTask
  1220. - enabled WinRegistryKey and WinRegistryConfiguration for WinCE
  1221. - Poco::BasicEvent improvements and preparations for future support of lambdas/std::function
  1222. - upgraded bundled sqlite to 3.8.7.2
  1223. - Poco::Thread: added support for starting functors/lambdas
  1224. - Poco::Net::HTTPClientSession: added support for global proxy configuration
  1225. - added support for OAuth 1.0/2.0 via Poco::Net::OAuth10Credentials and
  1226. Poco::Net::OAuth20Credentials classes.
  1227. - Poco::Net::IPAddress: fixed IPv6 prefix handling issue on Windows
  1228. - added Poco::Timestamp::TIMEVAL_MIN and Poco::Timestamp::TIMEVAL_MAX
  1229. - added Poco::Clock::CLOCKVAL_MIN and Poco::Clock::CLOCKVAL_MAX
  1230. - added poco_assert_msg() and poco_assert_msg_dbg() macros
  1231. - Poco::Net::Context: fixed a memory leak if the CA file was not found while creating the
  1232. Context object (the underlying OpenSSL context would leak)
  1233. - Poco::URI: added new constructor to create URI from Path
  1234. - Various documentation and style fixes
  1235. - Removed support (project/solution files) for Visual Studio.NET 2003 and Visual Studio 2005.
  1236. - Improved CMake support
  1237. Release 1.5.4 (2014-10-14)
  1238. ==========================
  1239. - fixed GH #326: compile Net lib 1.5.2 without UTF8 support enabled
  1240. - fixed GH #518: NetworkInterface.cpp compile error w/ POCO_NO_WSTRING (1.5.3)
  1241. - Fixed MSVC 2010 warnings on large alignment
  1242. - make HTTPAuthenticationParams::parse() add value on end of string
  1243. - fixed GH #482: Poco::JSON::Stringifier::stringify bad behaviour
  1244. - fixed GH #508: Can't compile for arm64 architecture
  1245. - fixed GH #510: Incorrect RSAKey construction from istream
  1246. - fix SharedMemory for WinCE/WEC2013
  1247. - Add NIOS2 double conversion detection, fixes compile errors
  1248. - added VS2013 project/solution files for Windows Embedded Compact 2013
  1249. - added Process::isRunning()
  1250. - NetSSL: Fix typo in documentation
  1251. - NetSSL_OpenSSL: support for TLS 1.1 and 1.2
  1252. - Zip: Added CM_AUTO, which automatically selects CM_STORE or CM_DEFLATE based
  1253. on file extension. Used to avoid double-compression of already compressed file
  1254. formats such as images.
  1255. - added %L modifier to PatternFormatter to switch to local time
  1256. - removed unnecessary explicit in some multi-arg constructors
  1257. - Allow SecureStreamSocket::attach() to be used in server connections
  1258. - added Var::isBoolean() and fixed JSON stringifier
  1259. - added poco_unexpected() macro invoking Bugcheck::unexpected() to deal
  1260. with unexpected exceptions in destructors
  1261. - fixed GH #538 prevent destructors from throwing exceptions
  1262. - improved HTTP server handling of errors while reading header
  1263. - fixed GH #545: use short for sign
  1264. - upgraded SQLite to 3.8.6
  1265. - fixed GH #550 WebSocket fragmented message problem
  1266. - improved HTTPClientSession handling of network errors while sending the request
  1267. - updated bundled PCRE to 8.35.0
  1268. - fixed GH #552: FIFOBuffer drain() problem
  1269. - fixed GH #402: StreamSocket::receiveBytes(FIFOBuffer&) and sendBytes(FIFOBuffer&) are
  1270. not thread safe
  1271. - HTTPCookie: fix documentation for max age
  1272. - added Timestamp::raw() and Clock::raw()
  1273. - Poco::Buffer properly handles zero-sized buffers
  1274. - GH #512: Poco:Data:ODBC:Binder.h causes a crash
  1275. - Added Crypto_Win and NetSSL_Win libraries which are re-implementations of existing
  1276. Crypto and NetSSL_OpenSSL libraries based on WinCrypt/Schannel. The new libraries
  1277. can be used as an almost drop-in replacement for the OpenSSL based libraries on
  1278. Windows and Windows Embedded Compact platforms. Only available from GitHub for now.
  1279. Release 1.5.3 (2014-06-30)
  1280. ==========================
  1281. - fixed GH# 316: Poco::DateTimeFormatter::append() gives wrong result for
  1282. Poco::LocalDateTime
  1283. - Poco::Data::MySQL: added SQLite thread cleanup handler
  1284. - Poco::Net::X509Certificate: improved and fixed domain name verification for
  1285. wildcard domains
  1286. - added Poco::Clock class, which uses a system-provided monotonic clock
  1287. (if available) and is thus not affected by system realtime clock changes.
  1288. Monotonic Clock is available on Windows, Linux, OS X and on POSIX platforms
  1289. supporting clock_gettime() and CLOCK_MONOTONIC.
  1290. - Poco::Timer, Poco::Stopwatch, Poco::TimedNotificationQueue and Poco::Util::Timer
  1291. have been changed to use Poco::Clock instead of Poco::Timestamp and are now
  1292. unaffected by system realtime clock changes.
  1293. - fixed GH# 350: Memory leak in Data/ODBC with BLOB
  1294. - Correctly set MySQL time_type for Poco::Data::Date.
  1295. - fixed GH #352: Removed redundant #includes and fixed spelling mistakes.
  1296. - fixed setting of MYSQL_BIND is_unsigned value.
  1297. - fixed GH #360: CMakeLists foundation: add Clock.cpp in the list of source files
  1298. - Add extern "C" around <net/if.h> on HPUX platform.
  1299. - added runtests.sh
  1300. - fixed CPPUNIT_IGNORE parsing
  1301. - fixed Glob from start path, for platforms not alowing transverse from root (Android)
  1302. - added NTPClient (Rangel Reale)
  1303. - added PowerShell build script
  1304. - added SmartOS build support
  1305. - fix warnings in headers
  1306. - XMLWriter: removed unnecessary apostrophe escaping (&apos)
  1307. - MongoDB: use Int32 for messageLength
  1308. - fixed GH #380: SecureSocket+DialogSocket crashes with SIGSEGV when timeout occours
  1309. - Improve RSADigestEngine, using Poco::Crypto::DigestEngine to calculate hash before signing
  1310. - added Poco::PBKDF2Engine
  1311. - Fixed GH #380: SecureSocket+DialogSocket crashes with SIGSEGV when timeout occours
  1312. - added support for a 'Priority' attribute on cookies.
  1313. - GH #386: fixed bug in MailMessage without content-transfer-encoding header
  1314. - GH #384: ew hash algorithms support for RSADigestEngine
  1315. - fixed Clock overflow bug on Windows
  1316. - Poco::ByteOrder now uses intrinsics, if available
  1317. - CMake: added /bigobj option for msvc
  1318. - Fix typo to restore Net/TestSuite_x64_vs120 build
  1319. - correct path for CONFIGURE_FILE in CMakeLists.txt
  1320. - Building Poco 1.5.2 for Synology RS812+ (Intel Atom) (honor POCO_NO_INOTIFY)
  1321. - added WEC2013 support to buildwin.cmd and buildwin.ps1
  1322. - HTMLForm: in URL encoding, percent-encode more characters
  1323. - Fixed #include <linux/if.h> conflict with other libraries
  1324. - Poco::Net::X509Certificate::verify() no longer uses DNS reverse lookups to validate host names
  1325. - cert hostname validation is case insensitive and stricter for wildcard certificates
  1326. - TCPServer: do not reduce the capacity of the default ThreadPool
  1327. - added POCO_LOG_DEBUG flag
  1328. - Zip: fixed a crash caused by an I/O error
  1329. - added runtest script for windows
  1330. - added SQlite Full Text Search support
  1331. - added Thread::trySleep() and Thread::wakeUp()
  1332. - fixed GH #410: Bug in JSON::Object.stringify() in 1.5.2
  1333. - fixed GH #362: Defect in Var::parseString when there is no space between value and newline
  1334. - fixed GH #314: JSON parsing bug
  1335. - added GH #313: MetaColumn additions for Data::ODBC and Data::SQLite
  1336. - fixed GH #346: Make Poco::Data::Date and Poco::Data::Time compare functions const.
  1337. - fixed GH #341: Compiling poco-1.5.2 for Cygwin
  1338. - fixed GH #305: There are bugs in Buffer.h
  1339. - fixed GH #321: trivial build fixes (BB QNX build)
  1340. - fixed GH #440: MongoDB ObjectId string formatting
  1341. - added SevenZip library (Guenter Obiltschnig)
  1342. - fixed GH #442: Use correct prefix length field of Windows IP_ADAPTER_PREFIX structure
  1343. - improved GH #328: NetworkInterface on Windows XP
  1344. - fixed GH #154 Add support for MYSQL_TYPE_NEWDECIMAL to Poco::Data::MySQL
  1345. - fixed GH #290: Unicode support
  1346. - fixed GH #318: Logger local time doesn't automatically account for DST
  1347. - fixed GH #363: DateTimeParser tryParse/parse
  1348. - added HTMLForm Content-Length calculation (Rangel Reale)
  1349. - Make TemporaryFile append a slash to tempDir
  1350. - fixed GH #319 android build with cmake
  1351. - added hasDelegates() method to AbstractEvent
  1352. - fixed GH #230: Poco::Timer problem
  1353. - fixed GH #317: Poco::Zip does not support newer Zip file versions.
  1354. - fixed GH #176: Poco::JSON::Stringifier UTF encoding
  1355. - fixed GH #458: Broadcast address and subnet mask for IEEE802.11 network interface
  1356. - fixed GH #456: poco: library install dirs per RUNTIME/LIBRARY/ARCHIVE
  1357. Release 1.5.2 (2013-09-16)
  1358. ==========================
  1359. - added MongoDB library
  1360. - fixed GH #57: poco-1.5.1: Doesn't compile for Android
  1361. - added VoidEvent (Arturo Castro)
  1362. - fixed GH #80: NumberFormatter::append broken
  1363. - fixed GH #93: ParallelSocketAcceptor virtual functions
  1364. - optional small object optimization for IPAddress, SocketAddress, Any and Dynamic::Var
  1365. - SQLite events (insert, update, delete, commit, rollback) handlers
  1366. - merged GH #91: Improve SQLite multi-threaded use (Rangel Reale)
  1367. - merged GH #86: Invalid pointers to vector internals (Adrian Imboden)
  1368. - automatic library initialization macros
  1369. - fixed GH #110: WebSocket accept() fails when Connection header contains multiple tokens
  1370. - fixed GH #71: WebSocket and broken Timeouts (POCO_BROKEN_TIMEOUTS)
  1371. - fixed a warning in Poco/Crypto/OpenSSLInitializer.h
  1372. - fixed GH #109: Bug in Poco::Net::SMTPClientSession::loginUsingPlain
  1373. - added clang libc++ build configurations for Darwin and iPhone (Andrea Bigagli)
  1374. - fixed GH #116: Wrong timezone parsing in DateTimeParse (Matej Knopp)
  1375. - fixed GH #118: JSON::Object::stringify endless loop
  1376. - added Recursive and SortedDirectoryIterator (Marian Krivos)
  1377. - added ListMap (map-like container with preserving insertion order)
  1378. - MailMessage: attachments saving support and consistent read/write
  1379. - fixed GH #124: Possible buffer overrun in Foundation/EventLogChannel
  1380. - fixed GH #119: JSON::Object holds values in ordered map
  1381. - added JSON::PrintHandler
  1382. - renamed JSON::DefaultHandler to ParseHandler (breaking change!)
  1383. - fixed GH #127: Eliminate -Wshadow warnings
  1384. - fixed GH #79: Poco::Thread leak on Linux
  1385. - fixed GH #61: static_md build configs for Crypto and NetSSL
  1386. - fixed GH #130: prefer sysconf over sysctlbyname
  1387. - fixed GH #131: no timezone global var on OpenBSD
  1388. - fixed GH #102: Some subprojects don't have x64 solutions for VS 2010
  1389. - added GH #75: Poco::Uri addQueryParameter method
  1390. - Poco::Environment::osDisplayName() now recognizes Windows 8/Server 2012
  1391. - fixed GH #140: Poco::Runnable threading cleanup issue
  1392. - simplified default TCP/HTTPServer construction
  1393. - fixed GH #141: Application::run() documentation/implementation discrepancy
  1394. - changed RowFormatter to SharedPtr<RowFormatter> in Data::RecordSet interface (breaking change!)
  1395. - fixed GH #144: Poco::Dynamic emits invalid JSON
  1396. - removed naked pointers from Data interfaces
  1397. - fixed GH #82: name conflict in Data::Keywords::bind
  1398. - fixed GH #157: MySQL: cannot bind to 'long' data type on Windows/Visual C++
  1399. - fixed GH #158: MySQL: MYSQL_BIND 'is_unsigned' member is not set
  1400. - fixed GH #160: MultipartReader ignores first part, if preamble is missing
  1401. - fixed GH #156: Possible buffer overrun in Foundation/EventLogChannel
  1402. - XML: fixed an issue with parsing a memory buffer > 2 GB
  1403. - upgraded to expat 2.1.0
  1404. - Data/ODBC: added support for setting query timeout (via setProperty
  1405. of "queryTimeout"). Timeout is int, given in seconds.
  1406. - fixed a potential endless loop in SecureStreamSocketImpl::sendBytes()
  1407. and also removed unnecessary code.
  1408. - fixed GH #159: Crash in openssl CRYPTO_thread_id() after library libPocoCrypto.so
  1409. has been unloaded.
  1410. - fixed GH #155: MailOutputStream mangles consecutive newline sequences
  1411. - fixed GH #139: FileChannel::PROP_FLUSH is invalid (contains a tab character)
  1412. - fixed GH #173: HTTPClientSession::proxyConnect forces DNS lookup of host names
  1413. - fixed GH #194: MessageNotification constructor is inefficient.
  1414. - fixed GH #189: Poco::NumberParser::tryParse() documentation bug
  1415. - fixed GH #172: IPv6 Host field is stripped of Brackets in HTTPClientSession
  1416. - fixed GH #188: Net: SocketAddress operator < unusable for std::map key
  1417. - fixed GH #128: DOMWriter incorrectly adds SYSTEM keyword to DTD if PUBLIC is
  1418. already specified
  1419. - fixed GH #65: Poco::format() misorders sign and padding specifiers
  1420. - upgraded bundled SQLite to 3.7.17
  1421. - replaced JSON parser with Poco::Web::JSON parser (from sandbox)
  1422. - added JSON conversion to Dynamic Struct and Array
  1423. - added VarIterator
  1424. - modified behavior of empty Var (empty == empty)
  1425. - added Alignment.h header for C++03 alignment needs
  1426. - added Data/WebNotifier (DB, WebSocket) example
  1427. - fixed GH #209: Poco::NumberFormatter double length
  1428. - fixed GH #204: Upgrade zlib to 1.2.8
  1429. - fixed GH #198: The "application.configDir" property is not always created.
  1430. - fixed GH #185: Poco::NumberFormatter::format(double value, int precision)
  1431. ignore precision == 0
  1432. - fixed GH #138: FreeBSD JSON tests fail
  1433. - fixed GH #99: JSON::Query an JSON::Object
  1434. - limited allowed types for JSON::Query to Object, Array, Object::Ptr,
  1435. Array::Ptr and empty
  1436. - fixed GH #175: HTMLForm does not read URL parameters on POST or PUT
  1437. - added GH #187: MySQL: allow access to the underlying connection handle
  1438. - added GH #186: MySQL: support for MYSQL_SECURE_AUTH
  1439. - fixed GH #174: MySQL: 4GB allocated when reading any largetext or largeblob field
  1440. - fixed a potential memory leak in Poco::Net::HTTPClientSession if it is misused
  1441. (e.g., sendRequest() is sent two times in a row without an intermediate call to
  1442. receiveResponse(), or by calling receiveResponse() two times in a row without
  1443. an intermediate call to sendRequest()) - GH #217
  1444. - removed a few unnecessary protected accessor methods from Poco::Net::HTTPClientSession
  1445. that would provide inappropriate access to internal state
  1446. - merged GH #210: Don't call CloseHandle() twice on Windows; Ability to select the
  1447. threadpool that will be used to start an Activity(Patrice Tarabbia)
  1448. - fixed GH #212: JSONConfiguration was missing from the vs90 project(Patrice Tarabbia)
  1449. - fixed GH #220: add qualifiers for FPEnvironment in C99 (Lucas Clemente)
  1450. - fixed GH #222: HTTPCookie doesn't support expiry times in the past (Karl Reid)
  1451. - fixed GH #224: building 1.5.1 on Windows for x64
  1452. - fixed GH# 233: ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool ipV6Only) does not work
  1453. - fixed GH# 231: Compatibility issue with Poco::Net::NetworkInterface
  1454. - fixed GH# 236: Bug in RecursiveDirectoryIterator
  1455. - added ColorConsoleChannel and WindowsColorConsoleChannel classes supporting
  1456. colorizing log messages
  1457. - fixed GH# 259: Poco::EventLogChannel fails to find 64bit Poco Foundation dll
  1458. - fixed GH# 254: UTF8::icompare unexpected behavior
  1459. - Poco::UUID::tryParse() also accepts UUIDs without hyphens. Also updated documentation
  1460. (links to specifications).
  1461. - added GH# 268: Method to get JSON object value using Poco::Nullable
  1462. - fixed GH# 267: JSON 'find' not returning empty result if object is expected but another value is found
  1463. - Added support for ARM64 architecture and iPhone 5s 64-bit builds
  1464. (POCO_TARGET_OSARCH=arm64).
  1465. Release 1.5.1 (2013-01-11)
  1466. ==========================
  1467. - using double-conversion library for floating-point numeric/string conversions
  1468. - added Poco::istring (case-insensitive string) and Poco::isubstr
  1469. - added SQLite sys.dual (in-memory system table)
  1470. - applied SF Patch #120: The ExpireLRUCache does not compile with a tuple as key on Visual Studio 2010
  1471. - fixed SF Bug #599: JSON::Array and JSON::Object size() member can implicitly lose precision
  1472. - fixed SF Bug #602: iterating database table rows not correct if no data in table
  1473. - fixed SF Bug #603: count() is missing in HashMap
  1474. - fixed GH #23: JSON::Object::stringify throw BadCastException
  1475. - fixed GH #16: NetworkInterface::firstAddress() should not throw on unconfigured interfaces
  1476. - Android compile/build support (by Rangel Reale)
  1477. - TypeHandler::prepare() now takes const-reference
  1478. - fixed GH #27: Poco::URI::decode() doesn't properly handle '+'
  1479. - fixed GH #31: JSON implementation bug
  1480. - fixed SF #597: Configure script ignores cflags
  1481. - fixed SF #593: Poco 1.5.0 on FreeBSD: cannot find -ldl
  1482. - added SF #542: SocketAddress() needs port-only constructor
  1483. - fixed SF #215: Wrong return type in SocketConnector.h
  1484. - applied SF Patch #97: fix c++0x / clang++ bugs
  1485. - fixed GH32/SF596: Poco::JSON: Parsing long integer (int64) value fails.
  1486. - added Net ifconfig sample (contributed by Philip Prindeville)
  1487. - merged GH #34: add algorithm header (Roger Meier/Philip Prindeville)
  1488. - fixed GH #26: Cannot compile on gcc
  1489. - merged SF #111: FTP Client logging (Marian Krivos)
  1490. - fixed GH #30: Poco::Path::home() throws when called from Windows Service
  1491. - fixed GH #22: MySQL connection string lowercased
  1492. - added MySQL support for Date/Time
  1493. - upgraded SQLite to version 3.7.15.1 (2012-12-19)
  1494. - improved SQLite execute() return (affected rows) value and added tests
  1495. - added SQLite::Utility::isThreadSafe() function
  1496. - added SQLite::Utility::setThreadMode(int mode) function
  1497. - fixed GH #36: 'distclean' requires 3 traversals of project tree
  1498. - fixed GH #41: Buffer::resize crash
  1499. - fixed GH #42: Linux unbundled builds don't link
  1500. - fixed GH #44: Problems with win x64 build
  1501. - fixed GH #46: 1.5.1 build fails on OS X when using libc++
  1502. - fixed GH #48: Need getArgs() accessor to Util::Application to retrieve start-up arguments
  1503. - fixed GH #49: NetworkInterface::list doesn't return MAC addresses
  1504. - fixed GH #51: Android should use isfinite, isinf, isnan and signbit from the std namespace
  1505. - fixed GH #53: JSON unicode fixes and running tests on invalid unicode JSON
  1506. - added ParallelAcceptor and ParallelReactor classes
  1507. - added EOF and error to FIFOBuffer
  1508. Release 1.5.0 (2012-10-14)
  1509. ==========================
  1510. - added JSON library
  1511. - added Util::JSONConfiguration
  1512. - added FIFOBuffer and FIFOBufferStream
  1513. - fixed SF# 3522906: Unregistering handlers from SocketReactor
  1514. - fixed SF# 3522084: AbstractConfiguration does not support 64-bit integers
  1515. - HTTPServer::stopAll(): close the socket instead of just shutting it down, as the latter won't wake up a select() on Windows
  1516. - added SMTPLogger
  1517. - added cmake support
  1518. - fixed SF#3538778: NetworkInterface enumeration uses deprecated API
  1519. - fixed SF#3538779: IPAddress lacks useful constructors: from prefix mask, native SOCKADDR
  1520. - fixed SF#3538780: SocketAddress needs operator < function
  1521. - fixed SF#3538775: Issues building on Fedora/Centos, etc. for AMD64
  1522. - fixed SF#3538786: Use size_t for describing data-blocks in DigestEngine
  1523. - added IPAddress bitwise operators (&,|,^,~)
  1524. - added IPAddress BinaryReader/Writer << and >> operators
  1525. - modified IPAddress to force IPv6 to lowercase (RFC 5952)
  1526. - fixed SF#3538785: SMTPClientSession::sendMessage() should take recipient list
  1527. - added IPAddress::prefixLength()
  1528. - UTF portability improvements
  1529. - fixed SF#3556186: Linux shouldn't use <net/if.h> in Net/SocketDefs.h
  1530. - added IPAddress RFC 4291 compatible site-local prefix support
  1531. - fixed SF#3012166: IPv6 patch
  1532. - added SF#3558085: Add formatter to MACAddress object
  1533. - fixed SF#3552774: Don't hide default target in subordinate makefile
  1534. - fixed SF#3534307: Building IPv6 for Linux by default
  1535. - fixed SF#3516844: poco missing symbols with external >=lipcre-8.13
  1536. - added SF#3544720: AbstractConfigurator to support 64bit values
  1537. - fixed SF#3522081: WinRegistryConfiguration unable to read REG_QWORD values
  1538. - fixed SF#3563626: For Win32 set Up/Running flags on NetworkInterface
  1539. - fixed SF#3560807: Deprecate setPeerAddress() as this is now done in getifaddrs
  1540. - fixed SF#3560776: Fix byte-ordering issues with INADDR_* literals
  1541. - fixed SF#3563627: Set IP address on multicast socket from socket family
  1542. - fixed SF#3563999: Size BinaryWriter based on buffer's capacity(), not size()
  1543. - fixed SF#102 Fix building Poco on Debian GNU/kFreeBSD
  1544. - fixed SF#321 Binding DatTime or Timestamp
  1545. - fixed SF#307 Detect the SQL driver type at run time
  1546. - added VS 2012 Projects/Solutions
  1547. - enhanced and accelerated numeric parsing for integers and floats
  1548. - fixed SF#590 Segfault on FreeBSD when stack size not rounded
  1549. - added warn function and warnmsg macro in CppUnit
  1550. - fixed SF# 3558012 Compilation fails when building with -ansi or -std=c++0x
  1551. - fixed SF# 3563517 Get rid of loss-of-precision warnings on x64 MacOS
  1552. - fixed SF#3562244: Portability fix for AF_LINK
  1553. - fixed SF #3562400: DatagramSocketImpl comment is incorrect
  1554. Release 1.4.7p1 (2014-11-25)
  1555. ============================
  1556. - Fixed Visual C++ 2010-2013 project files. Release builds now have optimization enabled.
  1557. - Poco::URI: added constructor to create URI from Path.
  1558. - fixed GH #618: OS X 10.10 defines PAGE_SIZE macro, conflicts with PAGE_SIZE in Thread_POSIX.cpp
  1559. - Poco::Net::HTTPClientSession: added support for global proxy configuration
  1560. - fixed GH #331: Poco::Zip does not support files with .. in the name.
  1561. - fixed a memory leak in Poco::Net::Context constructor when it fails to load the certificate
  1562. or private key files.
  1563. - upgraded bundled SQLite to 3.8.7.2
  1564. - fixed GH #229: added missing value() function
  1565. - fixed GH #69: MySQL empty text/blob
  1566. Release 1.4.7 (2014-10-06)
  1567. ==========================
  1568. - fixed GH #398: PropertyFileConfiguration: input != output
  1569. - fixed GH #368: Build failure of Poco 1.4.6p2 on FreeBSD 9.2
  1570. - fixed GH #318: Logger local time doesn't automatically account for DST
  1571. - fixed GH #317: Poco::Zip does not support newer Zip file versions.
  1572. - fixed GH #454: Fix: handle unhandled exceptions
  1573. - fixed GH #463: XML does not compile with XML_UNICODE_WCHAR_T
  1574. - fixed GH #282: Using Thread in a global can cause crash on Windows
  1575. - fixed GH #424: Poco::Timer deadlock
  1576. - fixed GH #465: Fix result enum type XML_Error -> XML_Status
  1577. - fixed GH #510: Incorrect RSAKey construction from istream
  1578. - fixed GH #332: POCO::ConsoleChannnel::initColors() assigns no color to
  1579. PRIO_TRACE and wrong color to PRIO_FATAL
  1580. - fixed GH #550: WebSocket fragmented message problem
  1581. - Poco::Data::MySQL: added SQLite thread cleanup handler
  1582. - Poco::Net::X509Certificate: improved and fixed domain name verification for
  1583. wildcard domains
  1584. - fixed a crash in Foundation testsuite with Visual C++ 2012
  1585. - improved and fixed domain name verification for wildcard domains in
  1586. Poco::Net::X509Certificate
  1587. - updated TwitterClient sample to use new 1.1 API and OAuth
  1588. - added Poco::Clock class, which uses a system-provided monotonic clock
  1589. (if available) and is thus not affected by system realtime clock changes.
  1590. Monotonic Clock is available on Windows, Linux, OS X and on POSIX platforms
  1591. supporting clock_gettime() and CLOCK_MONOTONIC.
  1592. - Poco::Timer, Poco::Stopwatch, Poco::TimedNotificationQueue and Poco::Util::Timer
  1593. have been changed to use Poco::Clock instead of Poco::Timestamp and are now
  1594. unaffected by system realtime clock changes.
  1595. - added Poco::PBKDF2Engine class template
  1596. - Poco::Net::HTTPCookie: added support for Priority attribute (backport from develop)
  1597. - fixed makedepend.* scripts to work in paths containing '.o*'
  1598. (contributed by Per-Erik Bjorkstad, Hakan Bengtsen)
  1599. - Upgraded bundled SQLite to 3.8.6
  1600. - Support for Windows Embedded Compact 2013 (Visual Studio 2012)
  1601. - Project and solution files for Visual Studio 2013
  1602. - Changes for C++11 compatibility.
  1603. - fixed an issue with receiving empty web socket frames (such as ping)
  1604. - improved error handling in secure socket classes
  1605. - Poco::ByteOrder now uses intrinsics if available
  1606. - added new text encoding classes: Latin2Encoding, Windows1250Encoding, Windows1251Encoding
  1607. - Zip: Added CM_AUTO, which automatically selects CM_STORE or CM_DEFLATE based on file extension.
  1608. Used to avoid double-compression of already compressed file formats such as images.
  1609. Release 1.4.6p4 (2014-04-18)
  1610. ============================
  1611. - no longer use reverse DNS lookups for cert hostname validation
  1612. - cert hostname validation is case insensitive and more strict
  1613. - HTMLForm: in URL encoding, percent-encode more special characters
  1614. - fixed thread priority issues on POSIX platforms with non-standard scheduling policy
  1615. - XMLWriter no longer escapes apostrophe character
  1616. - fixed GH #316: Poco::DateTimeFormatter::append() gives wrong result for Poco::LocalDateTime
  1617. - fixed GH #305 (memcpy in Poco::Buffer uses wrong size if type != char)
  1618. - Zip: fixed a crash caused by an I/O error (e.g., full disk) while creating a Zip archive
  1619. Release 1.4.6p3 (2014-04-02)
  1620. ============================
  1621. - Fixed a potential security vulnerability in client-side X509
  1622. certificate verification.
  1623. Release 1.4.6p2 (2013-09-16)
  1624. ============================
  1625. - fixed GH #156: Possible buffer overrun in Foundation/EventLogChannel
  1626. - XML: fixed an issue with parsing a memory buffer > 2 GB
  1627. - upgraded to expat 2.1.0
  1628. - Data/ODBC: added support for setting query timeout (via setProperty
  1629. of "queryTimeout"). Timeout is int, given in seconds.
  1630. - fixed a potential endless loop in SecureStreamSocketImpl::sendBytes()
  1631. and also removed unnecessary code.
  1632. - fixed GH #159: Crash in openssl CRYPTO_thread_id() after library libPocoCrypto.so
  1633. has been unloaded.
  1634. - fixed GH #155: MailOutputStream mangles consecutive newline sequences
  1635. - fixed GH# 139: FileChannel::PROP_FLUSH is invalid (contains a tab character)
  1636. - fixed GH# 173: HTTPClientSession::proxyConnect forces DNS lookup of host names
  1637. - fixed GH# 194: MessageNotification constructor is inefficient.
  1638. - fixed GH# 189: Poco::NumberParser::tryParse() documentation bug
  1639. - fixed GH# 172: IPv6 Host field is stripped of Brackets in HTTPClientSession
  1640. - fixed GH# 188: Net: SocketAddress operator < unusable for std::map key
  1641. - fixed GH# 128: DOMWriter incorrectly adds SYSTEM keyword to DTD if PUBLIC is
  1642. already specified
  1643. - fixed GH# 65: Poco::format() misorders sign and padding specifiers
  1644. - upgraded bundled SQLite to 3.7.17
  1645. - upgraded bundled zlib to 1.2.8
  1646. - fixed a potential memory leak in Poco::Net::HTTPClientSession if it is misused
  1647. (e.g., sendRequest() is sent two times in a row without an intermediate call to
  1648. receiveResponse(), or by calling receiveResponse() two times in a row without
  1649. an intermediate call to sendRequest()) - GH #217
  1650. - removed a few unnecessary protected accessor methods from Poco::Net::HTTPClientSession
  1651. that would provide inappropriate access to internal state
  1652. - fixed GH# 223 (Poco::Net::HTTPCookie does not support expiry times in the past)
  1653. - fixed GH# 233: ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool ipV6Only)
  1654. does not work
  1655. - added ColorConsoleChannel and WindowsColorConsoleChannel classes supporting
  1656. colorizing log messages
  1657. - fixed GH# 259: Poco::EventLogChannel fails to find 64bit Poco Foundation dll
  1658. - fixed GH# 254: UTF8::icompare unexpected behavior
  1659. - Poco::UUID::tryParse() also accepts UUIDs without hyphens. Also updated documentation
  1660. (links to specifications).
  1661. - Added support for ARM64 architecture and iPhone 5s 64-bit builds
  1662. (POCO_TARGET_OSARCH=arm64).
  1663. Release 1.4.6p1 (2013-03-06)
  1664. ============================
  1665. - fixed GH# 71: WebSocket and broken Timeouts (POCO_BROKEN_TIMEOUTS)
  1666. - fixed an ambiguity error with VC++ 2010 in Data/MySQL testsuite
  1667. - Poco::Net::NetworkInterface now provides the interface index even for IPv4
  1668. - added DNS::reload() as a wrapper for res_init().
  1669. - On Linux, Poco::Environment::nodeId() first always tries to obtain the
  1670. MAC address of eth0, before looking for other interfaces.
  1671. - Poco::Net::HTTPSession now always resets the buffer in connect() to clear
  1672. any leftover data from a (failed) previous session
  1673. - fixed copysign namespace issue in FPEnvironment_DUMMY.h
  1674. - fixed a warning in Poco/Crypto/OpenSSLInitializer.h
  1675. - added a build configuration for BeagleBoard/Angstrom
  1676. - fixed GH# 109: Bug in Poco::Net::SMTPClientSession::loginUsingPlain)
  1677. - fixed compile errors with clang -std=c++11
  1678. - fixed GH# 116: Wrong timezone parsing in DateTimeParse (fix by Matej Knopp)
  1679. - updated bundled SQLite to 3.7.15.2
  1680. Release 1.4.6 (2013-01-10)
  1681. ==========================
  1682. - changed FPEnvironment_DUMMY.h to include <cmath> instead of <math.h>
  1683. - updated bundled SQLite to 3.7.15.1
  1684. - fixed GH# 30: Poco::Path::home() throws
  1685. - fixed SF Patch# 120 The ExpireLRUCache does not compile with a tuple as key on VS2010
  1686. - fixed SF# 603 count() is missing in HashMap
  1687. - Crypto and NetSSL_OpenSSL project files now use OpenSSL *MD.lib library files for
  1688. static_md builds. Previously, the DLL import libs were used.
  1689. - Poco::Environment::osDisplayName() now recognizes Windows 8/Server 2012
  1690. Release 1.4.5 (2012-11-19)
  1691. ==========================
  1692. - added Visual Studio 2012 project files
  1693. - buildwin.cmd now support building with msbuild for VS2010 and 2012.
  1694. - added Poco::Optional class
  1695. - fixed SF# 3558012 Compilation fails when building with -ansi or -std=c++0x
  1696. - fixed SF# 3563517 Get rid of loss-of-precision warnings on x64 MacOS
  1697. - fixed SF# 3562244: Portability fix for AF_LINK
  1698. - fixed SF# 3562400: DatagramSocketImpl comment
  1699. - fixed SF# 594: Websocket fails with small masked payloads
  1700. - fixed SF# 588: Missing POCO_ARCH and POCO_ARCH_LITTLE_ENDIAN define for WinCE on SH4
  1701. - fixed SF# 581: Out-of-bound array access in Unicode::properties() function.
  1702. - fixed SF# 590: Segfault on FreeBSD when stack size not rounded
  1703. - fixed SF# 586: Poco::DateTimeParser and ISO8601 issues when seconds fraction has more than 6 digits
  1704. - Poco::Net::HTTPSSessionInstantiator::registerInstantiator() now optionally accepts a
  1705. Poco::Net::Context object.
  1706. - added Poco::XML::XMLWriter::depth() member function.
  1707. - added Poco::XML::XMLWriter::uniquePrefix() and Poco::XML::XMLWriter::isNamespaceMapped().
  1708. - Poco::FileChannel now supports a new rotateOnOpen property (true/false) which can be used
  1709. to force rotation of the log file when it's opened.
  1710. - fixed a bug in Poco::XML::XMLWriter::emptyElement(): need to pop namespace context
  1711. - OS X builds now use Clang as default compiler
  1712. - Updated SQLite to 3.7.14.1
  1713. - POCO_SERVER_MAIN macro now has a try ... catch block for Poco::Exception and writes
  1714. the displayText to stderr.
  1715. - Poco/Platform.h now defines POCO_LOCAL_STATIC_INIT_IS_THREADSAFE macro if the compiler
  1716. generates thread-safe static local initialization code.
  1717. Release 1.4.4 (2012-09-03)
  1718. ==========================
  1719. - ZipStream now builds correctly in unbundled build.
  1720. - added proxy digest authentication support to Net library
  1721. - integrated MySQL BLOB fixes from Franky Braem.
  1722. - use standard OpenSSL import libraries (libeay32.lib, ssleay32.lib) for Crypto and
  1723. NetSSL_OpenSSL Visual Studio project files.
  1724. - fixed a potential buffer corruption issue in Poco::Net::SecureStreamSocket if lazy
  1725. handshake is enabled and the first attempt to complete the handshake fails
  1726. - Poco::DateTimeParser::tryParse() without format specifier now correctly parses ISO8601
  1727. date/times with fractional seconds.
  1728. - Poco::Process::launch() now has additional overloads allowing to specify an initial
  1729. directory and/or environment.
  1730. - Poco::Net::FTPClientSession: timeout was not applied to data connection, only to
  1731. control connection.
  1732. - Fixed potential IPv6 issue with socket constructors if IPv6 SocketAddress is given
  1733. (contributed by ??????? ????????? <[email protected]>).
  1734. - Added an additional (optional) parameter to Poco::Thread::setOSPriority() allowing to
  1735. specify a scheduling policy. Currently this is only used on POSIX platforms and allows
  1736. specifying SCHED_OTHER (default), SCHED_FIFO or SCHED_RR, as well as other
  1737. platform-specific policy values.
  1738. - Added Poco::Crypto::DigestEngine class providing a Poco::DigestEngine interface to
  1739. the digest algorithms provided by OpenSSL.
  1740. - Fixed some potential compiler warnings in Crypto library
  1741. - In some cases, when an SSL exception was unexpectedly closed, a generic Poco::IOException
  1742. was thrown. This was fixed to throw a SSLConnectionUnexpectedlyClosedException instead.
  1743. - Added Poco::ObjectPool class template.
  1744. - Poco::Net::HTTPServer has a new stopAll() method allowing stopping/aborting of all
  1745. currently active client connections.
  1746. - The HTTP server framework now actively prevents sending a message body in the
  1747. response to a HEAD request, or in case of a 204 No Content or 304 Not Modified
  1748. response status.
  1749. - fixed a DOM parser performance bug (patch by Peter Klotz)
  1750. - fixed SF# 3559325: Util Windows broken in non-Unicode
  1751. - updated iOS build configuration to use xcode-select for finding toolchain
  1752. - Poco::Net::SecureSocketImpl::shutdown() now also shuts down the underlying socket.
  1753. - fixed SF# 3552597: Crypto des-ecb error
  1754. - fixed SF# 3550553: SecureSocketImpl::connect hangs
  1755. - fixed SF# 3543047: Poco::Timer bug for long startInterval/periodic interval
  1756. - fixed SF# 3539695: Thread attributes should be destroyed using the pthread_attr_destroy()
  1757. - fixed SF# 3532311: Not able to set socket option on ServerSocket before bind
  1758. Added Poco::Net::Socket::init(int af) which can be used to explicitely
  1759. initialize the underlying socket before calling bind(), connect(), etc.
  1760. - fixed SF# 3521347: Typo in UnWindows.h undef
  1761. - fixed SF# 3519474: WinRegistryConfiguration bug
  1762. Also added tests and fixed another potential issue with an empty root path passed to the constructor.
  1763. - fixed SF# 3516827: wrong return value of WinRegistryKey::exists()
  1764. - fixed SF# 3515284: RSA publickey format(X.509 SubjectPublicKeyInfo)
  1765. - fixed SF# 3503267: VxWorks OS prio is not set in standard constructor
  1766. - fixed SF# 3500438: HTTPResponse failure when reason is empty
  1767. - fixed SF# 3495656: numberformater, numberparser error in mingw
  1768. - fixed SF# 3496493: Reference counting broken in TaskManager postNotification
  1769. - fixed SF# 3483174: LogFile flushing behavior on Windows
  1770. Flushing is now configurable for FileChannel and SimpleFileChannel
  1771. using the "flush" property (true or false).
  1772. - fixed SF# 3479561: Subsequent IPs on a NIC is not enumerated
  1773. - fixed SF# 3478665: Permission checks in Poco::File not correct for root
  1774. - fixed SF# 3475050: Threading bug in initializeNetwork() on Windows
  1775. - fixed SF# 3552680: websocket small frames bug and proposed fix
  1776. - fixed a WebSocket interop issue with Firefox
  1777. - added Poco::Net::MessageHeader::hasToken()
  1778. - Poco::AtomicCounter now uses GCC 4.3 builtin atomics on more platforms
  1779. - fixed SF# 3555938: NetSSL: socket closed twice
  1780. - socket exceptions now include OS error code
  1781. - fixed SF# 3556975: Need to fix Shared Memory for memory map
  1782. - Poco::Net::SecureSocketImpl::close() now catches exceptions thrown by its call to shutdown().
  1783. - fixed SF# 3535990: POCO_HAVE_IPv6 without POCO_WIN32_UTF8 conflict
  1784. - fixed SF# 3559665: Poco::InflatingInputStream may not always inflate completely
  1785. - added Poco::DirectoryWatcher class
  1786. - fixed SF# 3561464: Poco::File::isDevice() can throw due to sharing violation
  1787. - Poco::Zip::Compress::addRecursive() has a second variant that allows to specify the compression method.
  1788. - Upgraded internal SQLite to 3.7.14
  1789. Release 1.4.3p1 (2012-01-23)
  1790. ============================
  1791. - fixed SF# 3476926: RegDeleteKeyEx not available on Windows XP 32-bit
  1792. Release 1.4.3 (2012-01-16)
  1793. ==========================
  1794. - fixed a compilation error with Data/MySQL on QNX.
  1795. - fixed Util project files for WinCE (removed sources not compileable on CE)
  1796. - removed MD2 license text from Ackowledgements document
  1797. - fixed iPhone build config for Xcode 4.2 (compiler name changed to llvm-g++)
  1798. - Poco::Util::XMLConfiguration: delimiter char (default '.') is now configurable.
  1799. This allows for working with XML documents having element names with '.' in them.
  1800. - Poco::Util::OptionProcessor: Required option arguments can now be specified as
  1801. separate command line arguments, as in "--option value" in addition to the
  1802. "--option=value" format.
  1803. - Poco::Util::HelpFormatter: improved option help formatting if indentation has
  1804. been set explicitely.
  1805. - added Mail sample to NetSSL_OpenSSL, showing use of Poco::Net::SecureSMTPClientSession.
  1806. - added additional read() overloads to Poco::Net::HTMLForm.
  1807. - fixed SF# 3440769: Poco::Net::HTTPResponse doesn't like Amazon EC2 cookies.
  1808. - added support for requiring TLSv1 to Poco::Net::Context.
  1809. - added an additional constructor to Poco::Net::HTTPBasicCredentials, allowing
  1810. the object to be created from a string containing a base64-encoded, colon-separated
  1811. username and password.
  1812. - Poco::Zip::ZipStreamBuf: fixed a crash if CM_STORE was used.
  1813. - Added setContentLength64() and getContentLength64() to Poco::Net::HTTPMessage.
  1814. - added Poco::Environment::osDisplayName().
  1815. - fixed SF# 3463096: WinService leaves dangling handles (open() now does not reopen the
  1816. service handle if it's already open)
  1817. - fixed SF# 3426537: WinRegistryConfiguration can't read virtualized keys
  1818. - added Poco::Buffer::resize()
  1819. - fixed SF# 3441822: thread safety issue in HTTPClientSession:
  1820. always use getaddrinfo() instead of gethostbyname() on all platforms supporting it
  1821. - added version resource to POCO DLLs
  1822. - fixed SF# 3440599: Dir Path in Quotes in PATH cause PathTest::testFind to fail.
  1823. - fixed SF# 3406030: Glob::collect problem
  1824. - added Poco::Util::AbstractConfiguration::enableEvents()
  1825. - Poco::AtomicCounter now uses GCC builtins with GCC 4.1 or newer
  1826. (contributed by Alexey Milovidov)
  1827. - made Poco::Logger::formatDump() public as it may be useful for others as well
  1828. (SF# 3453446)
  1829. - Poco::Net::DialogSocket now has a proper copy constructor (SF# 3414602)
  1830. - Poco::Net::MessageHeader and Poco::Net::HTMLForm now limit the maximum number of
  1831. fields parsed from a message to prevent certain kinds of denial-of-service
  1832. attacks. The field limit can be changed with the new method setFieldLimit().
  1833. The default limit is 100.
  1834. - Poco::NumberFormatter, Poco::NumberParser and Poco::format() now always use the
  1835. classic ("C") locale to format and parse floating-point numbers.
  1836. - added Poco::StreamCopier::copyStream64(), Poco::StreamCopier::copyStreamUnbuffered64()
  1837. and Poco::StreamCopier::copyToString64(). These functions use a 64-bit integer
  1838. to count the number of bytes copied.
  1839. - upgraded internal zlib to 1.2.5
  1840. - upgraded internal sqlite to 3.7.9
  1841. - XML: integrated bugfix for Expat bug# 2958794 (memory leak in poolGrow)
  1842. - Added support for HTTP Digest authentication (based on a contribution by
  1843. Anton V. Yabchinskiy (arn at bestmx dot ru)). For information on how
  1844. to use this, see the Poco::Net::HTTPCredentials, Poco::Net::HTTPDigestCredentials
  1845. and Poco::Net::HTTPAuthenticationParams classes.
  1846. - Poco::Net::HTTPStreamFactory and Poco::Net::HTTPSStreamFactory now support Basic
  1847. and Digest authentication. Username and password must be provided in the URI.
  1848. - added Poco::Net::WebSocket, supporting the WebSocket protocol as described in RFC 6455
  1849. - NetSSL_OpenSSL: added client-side support for Server Name Indication.
  1850. Poco::Net::SecureSocketImpl::connectSSL() now calls SSL_set_tlsext_host_name()
  1851. if its available (OpenSSL 9.8.6f and later).
  1852. - added Poco::Net::HTTPClientSession::proxyConnect() (factored out from
  1853. Poco::Net::HTTPSClientSession::connect())
  1854. - added Poco::Process::kill(const Poco::ProcessHandle&) which is preferable to
  1855. kill(pid) on Windows, as process IDs on Windows may be reused.
  1856. - fixed SF# 3471463: Compiler warnings with -Wformat
  1857. - Poco::Util::Application::run() now catches and logs exceptions thrown in initialize()
  1858. - Fixed a WinCE-specific bug in Poco::Util::ServerApplication where uninitialize() would
  1859. be called twice.
  1860. - fixed SF# 3471957: WinRegistryKey::deleteKey() unable to delete alt views
  1861. - Added additional constructor to Poco::ScopedLock and Poco::ScopedLockWithUnlock
  1862. accepting a timeout as second argument.
  1863. - Added Poco::Logger::parseLevel()
  1864. - Poco::format(): an argument that does not match the format
  1865. specifier no longer results in a BadCastException. The string [ERRFMT] is
  1866. written to the result string instead.
  1867. - PageCompiler: added createSession page attribute.
  1868. Release 1.4.2p1 (2011-09-24)
  1869. ============================
  1870. - On Linux, the RTLD_DEEPBIND option is no longer passed to dlopen().
  1871. This change was introduced in 1.4.2 to solve a specific problem one customer
  1872. was having. Unfortunately, it leads to problems with RTTI.
  1873. - It's now possible to pass flags (SHLIB_GLOBAL, SHLIB_LOCAL) to
  1874. Poco::SharedLibrary::load() (and the constructor implicitly calling load()),
  1875. controlling the mode flags (RTLD_GLOBAL, RTLD_LOCAL) passed to dlopen().
  1876. On platforms not using dlopen(), these flags are ignored.
  1877. - fixed SF# 3400267: Path_WIN32.cpp bug
  1878. Release 1.4.2 (2011-08-28)
  1879. ==========================
  1880. - added Poco::DateTimeFormat::ISO8601_FRAC_FORMAT
  1881. - added new Poco::DateTimeFormatter and Poco::DateTimeParser format specifier:
  1882. %s for seconds with optional fractions of a second
  1883. - fixed a problem with ioctl() on BSD platforms (including OS X) where the
  1884. second argument to ioctl() is unsigned long instead of int, causing bad
  1885. things on a OS X 64-bit kernel.
  1886. - fixed a potential endless loop when enumerating IPv6 network addresses
  1887. (reported by Laurent Carcagno)
  1888. - new compile-time config option on Windows to set thread names in
  1889. debugger. Enable with -DPOCO_WIN32_DEBUGGER_THREAD_NAMES. Available
  1890. only in debug builds.
  1891. - Cipher can now create Base64 and HexBinary encoded output without linefeeds
  1892. (suitable for use in cookies, etc.)
  1893. - added Poco::Path::popFrontDirectory()
  1894. - improved VxWorks support
  1895. - IPv6 fixes: added proper scope id handling in IPAddress, SocketAddress
  1896. and related classes.
  1897. - Added Poco::Net::ServerSocket::bind6() which allows control over the
  1898. IPPROTO_IPV6/IPV6_V6ONLY socket option.
  1899. - Removed Poco::MD2Engine class due to licensing issues (the
  1900. license for the MD2 code from RSA only allows non-commercial
  1901. use). Note that the MD4 and MD5 code from RSA does not have
  1902. this issue.
  1903. - fixed a Net HTTP client testsuite issue where some tests might
  1904. have failed due to prematurely aborted connections by
  1905. the HTTPTestServer.
  1906. - Poco::Net::SocketAddress: when there is more than one address
  1907. returned by a DNS lookup for a name, IPv4 addresses will be
  1908. preferred to IPv6 ones.
  1909. - NetworkInterface::list() now also returns IPv4 interfaces on Windows when
  1910. built with -DPOCO_HAVE_IPv6
  1911. - XMLWriter: fixed a bug with attribute namespaces (no namespace prefix
  1912. written if attribute namespace is the same as element namespace)
  1913. - fixed SF# 3378588: Mismatched new[]/delete (in RSAEncryptImpl and RSADecryptImpl)
  1914. - fixed SF# 3212954 (OpenSSLInitializer::uninitialize() crash) and
  1915. SF# 3196862 (Static OpenSSLInitializer instance causes Windows deadlocks) by
  1916. removing the static Poco::Crypto::OpenSSLInitializer instance. Automatic OpenSSL
  1917. initialization is now done through Poco::Crypto::Cipher, Poco::Crypto::CipherKey,
  1918. Poco::Crypto::X509Certificate, Poco::Net::Context classes; however, it is still
  1919. recommended to call Poco::Crypto::initializeCrypto() and
  1920. Poco::Crypto::uninitializeCrypto() early at application startup, and late at
  1921. shutdown respectively (or Poco::Net::initializeSSL()/Poco::Net::uninitializeSSL()
  1922. if the NetSSL library is used) to avoid multiple full OpenSSL init/uninit cycles
  1923. during application runtime.
  1924. - Poco::Logger now also support a symbolic log level "none"
  1925. (for use with setLevel()) that disables logging completely
  1926. for that Logger (equivalent to setLevel(0)).
  1927. - Added experimental Android support, using the existing gmake-based
  1928. build system.
  1929. - fixed SF# 3288584: DateTimeFormatter link error
  1930. - fixed SF# 3187117: Typo in InflatingInputStream doc
  1931. - fixed SF# 3309731: _WIN32_WCE comparison should be with 0x600 not 600
  1932. - fixed SF# 3393026: RegularExpression.h identical enum value
  1933. - fixed SF# 3274222: AtomicCounter's postfix operators aren't atomic on Windows
  1934. - fixed SF# 3317177: Handle leak on windows
  1935. - fixed SF# 3181882: Poco::URI::getPathEtc() double-encodes query
  1936. - fixed SF# 3379935: ThreadPool Start Bug
  1937. - fixed SF# 3354451: Poco::Format::parsePrec never sets the precision to zero
  1938. - fixed SF# 3387258: _MAX_PATH used but unknown in Path_WIN32
  1939. - fixed a problem in RSAKeyImpl where direct access to the RSA in a EVP_PKEY
  1940. would no longer work in recent OpenSSL versions. Using EVP_PKEY_get1_RSA()
  1941. fixes the issue.
  1942. - added Poco::Crypto::EncryptingInputStream, Poco::Crypto::EncryptingOutputStream,
  1943. Poco::Crypto::DecryptingInputStream and Poco::Crypto::DecryptingOutputStream.
  1944. - fixed SF# 3148126: HTTPSClientSession destructor (!) throws an IOException
  1945. - fixed SF# 3178098: Add constructor to Poco::TemporaryFile to specify directory
  1946. - fixed SF# 3175310: Absolute path when device
  1947. - fixed SF# 3301207: Guided tour example contradicts apidoc (API doc was wrong)
  1948. - Poco::Net::HTTPMessage::setContentLength() and Poco::Net::HTTPMessage::getContentLength() now
  1949. use std::streamsize instead of int. This enables 64-bit Content-Length support at least
  1950. on 64-bit platforms.
  1951. - fixed SF# 3177530: TemporaryFile::tempName() + glob bug on xp
  1952. - fixed SF# 3177372: FileChannel documentation inconsistency
  1953. - added %E format specifier to Poco::PattermFormatter (epoch time in seconds
  1954. since midnight, January 1 1970)
  1955. - On Windows, Poco::Util::ServerApplication now supports a /description command
  1956. line argument for specifying a service description (together with /registerService)
  1957. - added Poco::Util::WinService::setDescription() and
  1958. Poco::Util::WinService::getDescription()
  1959. - fixed SF# 3155477: Incorrect URI path handling
  1960. - fixed SF# 3309736: Extended Exception macros to set default exception code
  1961. new macro is named POCO_DECLARE_EXCEPTION_CODE
  1962. - added getter functions for modulus and exponents to Poco::Crypto::RSAKey.
  1963. - added Poco::Net::SocketAddress::operator == () and
  1964. Poco::Net::SocketAddress::operator != ()
  1965. - fixed SF# 3182746: IPAddress.cpp IPv6 bug on big-endian
  1966. - fixed SF# 3196961: Unix daemon fails to loadConfiguration() if started from cwd
  1967. - fixed SF# 3393700: NotificationCenter may call a removed observer and crash.
  1968. - Reworked implementation of the events framework (Poco::BasicEvent and friends).
  1969. The framework is now completely multithreading save (even in the case that
  1970. an event subscriber object unsubscribes and is deleted while an event is
  1971. being dispatched). Also, the restriction that any object can only register
  1972. one delegate for each event has been removed. For most cases, dispatching
  1973. events should be faster, as dispatching an event now needs less dynamic memory
  1974. allocations.
  1975. - fixed SF# 3178109: getNodeByPath() changes:
  1976. getNodeByPath() and getNodeByPathNS() have been moved to Poco::XML::Node.
  1977. Furthermore, when invoked on a Poco::XML::Document, the behavior has changed
  1978. so that the document element is now included when traversing the path (previously,
  1979. traversal would start at the document element, now it starts at the document).
  1980. The path expression can now start with a double-slash, which results in a recursive
  1981. search for the path's first element in the DOM tree.
  1982. - fixed SF# 3382935: String data being truncated using ODBC, and
  1983. SF# 2921813: Wrong implementation of the ODBC string binding
  1984. Release 1.4.1p1 (2011-02-08)
  1985. ============================
  1986. - Poco::Mutex is now a recursive mutex again on Linux
  1987. (this was caused by an unfortunate feature test for
  1988. PTHREAD_MUTEX_RECURSIVE which did not work on Linux
  1989. as PTHREAD_MUTEX_RECURSIVE is an enum value and not
  1990. a macro)
  1991. - Poco::Net::SecureSocketImpl::abort() now only shuts
  1992. down the underlying socket connection and does not free
  1993. the SSL object, due to multithreading issues.
  1994. Release 1.4.1 (2011-01-29)
  1995. ==========================
  1996. - fixed SF# 3150223: Poco::BinaryReader cannot read std::vector correctly
  1997. - fixed SF# 3146326: SharedMemory issue
  1998. - made Poco::Net::HTTPSession::abort() virtual
  1999. - added Poco::Net::SecureStreamSocket::abort() to immediately close
  2000. a SSL/TLS connection without performing an orderly SSL/TLS shutdown.
  2001. - fixed SF# 3148126: HTTPSClientSession destructor (!) throws an IOException.
  2002. Added try/catch block to Poco::Net::SecureSocketImpl destructor.
  2003. - added additional constructor to Poco::Net::HTTPSClientSession, taking
  2004. both a socket and a session object.
  2005. - Poco::Net::HTTPSession::abort() now also can be used with a
  2006. Poco::Net::HTTPSClientSession.
  2007. - fixed SF# 3148045: make clean and distclean issues
  2008. - changed Data library names on Unix/Linux platforms to
  2009. match the names on Windows (PocoSQLite -> PocoDataSQLite,
  2010. PocoMySQL -> PocoDataMySQL, PocoODBC -> PocoDataODBC)
  2011. - added additional options to configure script
  2012. - added additional documentation to Poco::Net::HTTPClientSession
  2013. - Poco::Net::HTTPClientSession::receiveResponse() closes the connection
  2014. if an exception is thrown while reading the response header.
  2015. This ensures that a new connection will be set up for the next request
  2016. if persistent connections are used.
  2017. - improved Poco::Net::MultipartDecoder performance by reading directly from streambuf
  2018. - improved performance of Poco::Base64Encoder, Poco::Base64Decoder,
  2019. Poco::HexBinaryEncoder and Poco::HexBinaryDecoder by working directly with the
  2020. given stream's streambuf.
  2021. - improved performance of MessageHeader::read() by reading directly from streambuf
  2022. instead of istream.
  2023. - it is now possible to specify additional MIME part header fields
  2024. for a MIME part through the Poco::Net::PartSource class.
  2025. - upgraded SQLite to release 3.7.4
  2026. - added experimental VxWorks support for VxWorks 5.5.1/Tornado 2.2 and
  2027. newer. Please see the VxWorks Platform Notes in the reference documentation
  2028. for more information. Currently, the VxWorks is untested; full support
  2029. will be available in release 1.4.2.
  2030. - fixed SF# 3165918: Poco::DynamicAny fails to convert from string to float
  2031. - fixed SF# 3165910: Poco::Net::MessageHeader does not accept HTTP conforming header
  2032. - made Poco::Task::cancel() virtual so that tasks can implement custom
  2033. cancellation behavior.
  2034. - added optional argument to Poco::Util::WinRegistryKey constructor
  2035. to specify additional flags (in addition to KEY_READ and KEY_WRITE)
  2036. for the samDesired argument of RegOpenKeyEx() or RegCreateKeyEx().
  2037. - improved Poco::BasicEvent::notify() performance by avoiding an unnecessary heap
  2038. allocation.
  2039. - added additional well-known port numbers to Poco::URI: rtsp, sip, sips, xmpp.
  2040. - added Poco::Net::MediaType::matchesRange()
  2041. - improved invalid socket handling: a Poco::Net::InvalidSocketException is
  2042. now thrown instead of an assertion when an operation is attempted on a closed or
  2043. otherwise uninitialized socket.
  2044. Release 1.4.0 (2010-12-14)
  2045. ==========================
  2046. - SSLManager: documentation fixes, code cleanup
  2047. - SSLManager: renamed PrivateKeyPassPhrase event to PrivateKeyPassphraseRequired
  2048. - added HTTPServerRequestImpl::socket() to get access to the underlying socket
  2049. - added Socket::secure() to find out whether a given socket supports SSL/TLS
  2050. - added SecureStreamSocket::havePeerCertificate()
  2051. - NetSSL: added support for turning off extended certificate validation (hostname matching)
  2052. - fixed SF# 2941228: ICMPClient::ping() issues on Mac OS X
  2053. - fixed SF# 2941231: ICMPEventArgs out of bounds array access
  2054. - added PageCompiler sample
  2055. - added missing newline at end of xmlparse.c
  2056. - Poco::Glob can now be used with an empty pattern which will match nothing (patch from Kim Graesman)
  2057. - added support for HTTP proxy authentication (Basic authentication only)
  2058. - fixed SF# 2958959: XMLWriter must encode CR, LF and TAB in attribute values as character entities.
  2059. - HTMLForm now supports PUT requests as well (see <http://pocoproject.org/forum/viewtopic.php?f=12&t=2163&p=3930#p3930>)
  2060. - fixed SF# #2970521: FileOutputStream and file permissions.
  2061. (also fixed in File class)
  2062. - removed an unused (and wrong) default parameter from EventImpl constructor for WIN32.
  2063. - added full support for session caching to NetSSL_OpenSSL
  2064. - fixed SF# 2984454: Poco::Util::Timer::scheduleAtFixedRate() works incorrectly
  2065. - fixed a bug in Poco::Util::Timer that could lead to high CPU load if
  2066. the system clock is moved forward.
  2067. - added system.nodeId to SystemConfiguration
  2068. - added a note to Poco::Util::ServerApplication documentation regarding
  2069. creation of threads
  2070. - added Poco::Net::IPAddress::broadcast() and Poco::Net::IPAddress::wildcard() to
  2071. create broadcast (255.255.255.255) and wildcard (0.0.0.0) addresses.
  2072. - fixed SF# 2916154: Poco::Net::IPAddress::isLoopback() only works for 127.0.0.1.
  2073. - added build configuration for iPhone Simulator
  2074. - GNU Make based build system provides new variables: POCO_HOST_BINDIR, POCO_HOST_BINPATH,
  2075. POCO_HOST_LIBDIR, POCO_HOST_LIBPATH and POCO_TARGET_* equivalents.
  2076. - Application::initialize() and Application::uninitialize() will now be called from within run().
  2077. This solves various issues with uninitialize() not being called, or being called inappropriately
  2078. from the Application destructor.
  2079. Please note that this change will break applications that use the Application class,
  2080. but only call init() and not run().
  2081. - added /startup option to specify startup mode for Windows services (automatic or manual)
  2082. - fixed SF# 2967354: SecureSocketImpl shutdown/close problem
  2083. - fixed SF# 3006340: LinearHashTable grows even if key already exists
  2084. - fixed a particularly nasty Windows error handling issue that manifested itself on WinCE:
  2085. WSAGetLastError() would be called after a std::string was created. The string creation could result
  2086. in a heap operation which called a Windows API to allocate memory. This would reset the
  2087. GetLastError() error code. Since WSAGetLastError() is just an alias for GetLastError(), the actual
  2088. error code from the socket operation would be lost.
  2089. - upgraded SQLite to 3.7.3
  2090. - added --header-prefix option to PageCompiler
  2091. - fixed SF# 3003875: SQLite data binding is broken
  2092. - fixed SF# 2993988: Issue with multiple calls to open()/close() on File*Stream
  2093. - fixed SF# 2990256: HTMLForm and file uploads
  2094. - fixed SF# 2969227: DateTimeParser bug
  2095. - fixed SF# 2966698: Socket connect with timeout issue
  2096. - fixed SF# 2981041: Bind NULL to a query (patch supplied)
  2097. - fixed SF# 2961419: UTF8Encoding::convert() doesn't work properly in DEBUG mode
  2098. - fixed SF# 2957068: Timeout value not picked up by proxy in HTTPSClientSession
  2099. - fixed NetSSL_OpenSSL test runner for Poco::Util::Application class changes
  2100. - Poco::AbstractEvent, Poco::AbstractCache and related classes now accept a Mutex class as additional template argument.
  2101. Poco::NullMutex can be used if no synchronization is desired.
  2102. - Added Poco::AbstractEvent::empty() to check whether an event has registered delegates.
  2103. - Poco::URI now correctly handles IPv6 addresses.
  2104. - Added Poco::Nullable class template.
  2105. - Added Poco::NullMutex, a no-op mutex to be used as template argument for template classes
  2106. taking a mutex policy argument.
  2107. - Poco::XML::XMLWriter: fixed a namespace handling issue that occured with startPrefixMapping() and endPrefixMapping()
  2108. - Poco::Net::Context now allows for loading certificates and private keys from Poco::Crypto::X509Certificate objects
  2109. and Poco::Crypto::RSAKey objects.
  2110. - Poco::Crypto::RSAKey no longer uses temporary files for stream operations. Memory buffers are used instead.
  2111. - fixed SF# 2957865: added Poco::UUID::tryParse()
  2112. - All Zip classes now use Poco::File[Input|Output]Stream instead of std::[i|o]fstream.
  2113. UTF-8 filenames will now be handled correctly on Windows.
  2114. - fixed SF# 2902029: zlib flush support (Z_SYNC_FLUSH)
  2115. - added Poco::TextBufferIterator class
  2116. - fixed SF# 2977249: Use epoll instead select under Linux
  2117. Socket::select() and Socket::poll() will use epoll under Linux if the Net library is compiled
  2118. with -DPOCO_HAVE_FD_EPOLL. This is the default for the Linux build configuration (but not for
  2119. the various build configurations targeting embedded Linux platforms).
  2120. - fixed SF# 2941664: Memory leak in DeflatingStream with zero-length streams (also fixed some other potential,
  2121. but unlikely, memory leaks)
  2122. - fixed SF# 2946457: added RejectCertificateHandler
  2123. - fixed SF# 2946621: Poco::Path bug with POCO_WIN32_UTF8
  2124. - fixed SF# 2929805: Environment::nodeId() does not work if no eth0 device exists
  2125. - Environment::nodeId() no longer throws if no hardware ethernet address can be determined.
  2126. It returns an all-zero address instead.
  2127. - Added additional classification functions to Poco::Unicode class; made classification functions inline.
  2128. - added Ascii class for ASCII character classification.
  2129. Methods of the Ascii class are now used instead of the
  2130. standard library functions (std::isspace(), etc.) due to
  2131. possible inconsistent results or assertions when the
  2132. standard library functions are used with character codes
  2133. outside the ASCII range.
  2134. - Poco::Net::MailMessage: fixed a bug in StringPartHandler that resulted in incorrect handling of non-ASCII data if
  2135. char is signed.
  2136. - Improved Poco::Net::SMTPClientSession compatibility with various mail servers when using AUTH_LOGIN authentication.
  2137. - Added CRAM-SHA1 support to Poco::Net::SMTPClientSession
  2138. - Poco::Net::SMTPClientSession now also supports login with AUTH PLAIN.
  2139. - Added Poco::Net::SecureSMTPClientSession class, supporting STARTTLS for secure SMTP connections.
  2140. - fixed an issue with SharedMemory on POSIX systems, where a shared memory region would be deleted
  2141. despite the server flag set to true (see http://pocoproject.org/forum/viewtopic.php?f=12&t=3494).
  2142. - PageCompiler: added a new page context directive, to allow passing custom context objects to the
  2143. request handler.
  2144. - fixed StreamSocketImpl::sendBytes() for non-blocking sockets
  2145. - added Poco::Net::DialogSocket::receiveRawBytes(), which should be used instead of receiveBytes() due to internal
  2146. buffering by DialogSocket.
  2147. - DOMParser: FEATURE_WHITESPACE has been renamed to FEATURE_FILTER_WHITESPACE (which now matches the underlying URI)
  2148. and is now handled correctly (previously we did the exact reverse thing)
  2149. - added Poco::Util::AbstractConfiguration::remove() to remove a configuration property; added removeRaw() implementations
  2150. to all implementations (contributions by Daniel Hobi and Alexey Shults).
  2151. - fixed NetSSL_OpenSSL compilation error on Windows with OpenSSL 1.0
  2152. - Added optional FIPS mode support to NetSSL_OpenSSL (contributed by Lior Okman).
  2153. If OpenSSL has been configured and built with FIPS support, then FIPS support can
  2154. be enabled by calling Poco::Crypto::OpenSSLInitializer::enableFIPSMode(true); or
  2155. by setting the fips property in the OpenSSL configuration to true (see Poco::Net::SSLManager
  2156. for details).
  2157. - fixed SF# 3031530: Ping and possible no timeout
  2158. - added Poco::Net::SocketReactor::onBusy(), called whenever at least one notification will
  2159. be dispatched.
  2160. - fixed SF# 3034863: Compiler warning in net/IPAddress.h with poco 1.3.2
  2161. - added support for CRAM-SHA1 authentication to SMTPClientSession
  2162. - Poco::format(): arguments can now be addressed by their index, e.g. %[2]d
  2163. - Poco::Util::Timer::cancel() now accepts an optional boolean argument.
  2164. If true is passed, cancel() waits until the task queue has been purged.
  2165. Otherwise, it returns immediately and works asynchronously, as before.
  2166. - Poco::Net::HTTPServerResponse::redirect() now accepts an optional additional
  2167. argument to specify the HTTP status code for the redirection.
  2168. - fixed a warning (BinaryReader.cpp) and error (ThreadLocal.cpp) in Foundation when compiling with Visual Studio 2010
  2169. - fixed a wrong exception in Poco::Net::POP3ClientSession
  2170. - Poco::Net::FTPClientSession and Poco::Net::SMTPClientSession now set the error code in exceptions they throw
  2171. - fixed a potential race condition with terminating a Windows service based on Poco::Util::ServerApplication
  2172. - fixed a bug in global build configuration file: explicitly setting POCO_CONFIG did not work on Solaris platforms,
  2173. as it was always overridden by the automatically determined configuration.
  2174. - Added support for MinGW cross builds on Linux.
  2175. - Changed location of statically linked build products in the gmake-based build system.
  2176. Statically linked executables are now in bin/$(OSNAME)/$(OSARCH)/static and no longer
  2177. have the _s suffix
  2178. - The POCO_VERSION macro now is in its own header file, "Poco/Version.h". It is no longer
  2179. available through "Poco/Foundation.h".
  2180. - added Poco::Net::HTTPCookie::escape() and Poco::Net::HTTPCookie::unescape().
  2181. - fixed SF# 3021173: Thread (POSIX) returns uninitialised value for OS priority
  2182. - fixed SF# 3040870: ThreadPool has no function to get assigned name
  2183. - fixed SF# 3044303: Can't use own config file on Solaris & OSARCH_64BITS ignored
  2184. - fixed SF# 2943896: AsyncChannel::log blocks
  2185. - fixed a bug in Poco::Util::WinRegistryKey::getInt():
  2186. The size variable passed to RegQueryValueExW() should be initialized to the size
  2187. of the output buffer.
  2188. - Added rudimentary support for compiling with Clang 2.0 (Xcode 4) on Mac OS X.
  2189. - New build configurations for Mac OS X: Darwin32 and Darwin64 for explicit
  2190. 32-bit and 64-bit builds. Note that the default Darwin build configuration
  2191. will build 64-bit on Snow Leopard and 32-bit on Leopard, but will always place
  2192. build products in Darwin/i386. The new Darwin32 and Darwin64 configurations
  2193. will use the correct directories.
  2194. - fixed SF# 3051598: Bug in URL encoding
  2195. - Poco::ThreadPool::stopAll() (and thus also the destructor) will now wait for each
  2196. pooled thread to terminate before returning. This fixes an issue with creating
  2197. and orderly shutting down a thread pool in a plugin. Previously, a pooled thread
  2198. in a thread pool created by a dynamically loaded library might still be running
  2199. when the plugin's shared library was unloaded, resulting in Bad Things happening.
  2200. This can now no longer happen. As a downside, a pooled thread that fails to
  2201. finish will block stopAll() and the destructor forever.
  2202. - NetSSL_OpenSSL: for a SecureStreamSocket, available() now returns the number of bytes that
  2203. are pending in the SSL buffer (SSL_pending()), not the actual socket buffer.
  2204. - Added Poco::Net::HTTPClientSession::secure() to check for a secure connection.
  2205. - Poco::Net::HTTPRequest::setHost() now does not include the port number in the Host header
  2206. if it's either 80 or 443.
  2207. - log messages can now optionally include source file path and line number
  2208. - Poco::PatternFormatter can format source file path and line number (%U, %u)
  2209. - logging macros (poco_information(), etc.) now use __LINE__ and __FILE__
  2210. - new logging macros that incorporate Poco::format(): poco_information_f1(logger, format, arg) with up to 4 arguments
  2211. - added Poco::Net::HTTPSession::attachSessionData() and Poco::Net::HTTPSession::sessionData()
  2212. to attach arbitrary data to a HTTP session.
  2213. - added additional constructors to zlib stream classes that allow passing
  2214. a windowBits parameter to the underlying zlib library.
  2215. - fixed a potential error handling issue in Poco::Net::SecureSocketImpl.
  2216. - fixed SF# 3110272: RSACipherImpl bug.
  2217. - fixed SF# 3081677: ConfigurationView's getRaw not retrieving xml attributes.
  2218. - added basic support for Canonical XML and better pretty-printing support to Poco::XML::XMLWriter.
  2219. - Poco::Util::AbstractConfiguration now supports events fired when changing or
  2220. removing properties.
  2221. - XML: added support for finding DOM nodes by XPath-like
  2222. expressions. Only a very minimal subset of XPath is supported.
  2223. See Poco::XML::Element::getNodeByPath(), Poco::XML::Element::getNodeByPathNS()
  2224. and the same methods in Poco::XML::Document.
  2225. - Poco::Timer: If the callback takes longer to execute than the
  2226. timer interval, the callback function will not be called until the next
  2227. proper interval. The number of skipped invocations since the last
  2228. invocation will be recorded and can be obtained by the callback
  2229. by calling skipped().
  2230. - Poco::BinaryReader and Poco::BinaryWriter now support reading and
  2231. writing std::vectors of the supported basic types. Also, strings
  2232. can now be written in a different encoding (a Poco::TextEncoding
  2233. can be optionally passed to the constructor).
  2234. - Poco::UUID::nil() and Poco::UUID::isNil() have been renamed to
  2235. Poco::UUID::null() and Poco::UUID::isNull(), respectively, to avoid
  2236. issues with Objective-C++ projects on Mac OS X and iOS where nil is
  2237. a system-provided macro.
  2238. - Crypto bugfixes: RSACipherImpl now pads every block of data, not just the
  2239. last (or last two).
  2240. - Improved Crypto testsuite by adding new tests
  2241. - Added new Visual Studio project configurations: debug_static_mt and release_static_mt
  2242. (linking with static runtime libraries). The existing configurations debug_static
  2243. and release_static have been renamed to debug_static_md and release_static_md, respectively.
  2244. The suffixes of the static libraries have also changed. The static_md configurations
  2245. now build libraries with suffixes md[d], while the libraries built by the static_mt
  2246. configurations have mt[d] suffixes.
  2247. - Added Visual Studio project files for 64-bit builds.
  2248. - Added Visual Studio 2010 project files.
  2249. - Removed the use of local static objects in various methods due to
  2250. their construction not being threadsafe (and thus leading to
  2251. potential race conditions) on Windows/Visual C++.
  2252. - Fixed some warning on 64-bit Windows builds.
  2253. - The name of the Data connector libraries have changed. They are now
  2254. named PocoDataMySQL, PocoDataODBC and PocoDataSQLite.
  2255. - fixed SF# 3125498: Linux NetworkInterface::list() doesn't return IPv6 IPs
  2256. - fixed SF# 3125457: IPv6 IPAddress tests are wrong
  2257. - Added initialization functions for the NetSSL_OpenSSL and Crypto libraries.
  2258. These should be called instead of relying on automatic initialization,
  2259. implemented with static initializer objects, as this won't work with
  2260. statically linked executables (where the linker won't include the
  2261. static initializer object).
  2262. The functions are Poco::Crypto::initializeCrypto(), Poco::Crypto::uninitializeCrypto(),
  2263. Poco::Net::initializeSSL() and Poco::Net::uninitializeSSL().
  2264. Applications using Crypto and/or NetSSL should call these methods appropriately at
  2265. program startup and shutdown.
  2266. Note: In release 1.3.6, similar functions have been added to the Net library.
  2267. Release 1.3.6p2 (2010-01-15)
  2268. ============================
  2269. - fixed an issue in the Windows implementation Poco::RWLock, where
  2270. tryReadLock() sometimes would return false even if no writers
  2271. were using the lock (fix contributed by Bjrn Carlsson)
  2272. - added Poco::Environment::libraryVersion().
  2273. - fixed SF# 2919461: Context ignores parameter cypherList
  2274. - removed an unused enum from RSACipherImpl.cpp (Crypto)
  2275. - integrated a new expat patch for CVE-2009-3560.
  2276. - fixed SF# 2926458: SSL Context Problem. The Poco::Net::Context
  2277. class now makes sure that OpenSSL is properly initialized.
  2278. - updated iPhone build configuration (contributed by Martin York)
  2279. - fixed SF# 1815124 (reopened): XML Compile failed on VS7.1 with
  2280. XML_UNICODE_WCHAR_T
  2281. - fixed SF# 2932647: FTPClientSession::getWorkingDirectory() returns a bad result
  2282. Release 1.3.6p1 (2009-12-21)
  2283. ============================
  2284. - added support for using external zlib, pcre, expat and sqlite3 instead of
  2285. bundled ones (-DPOCO_UNBUNDLED, configure --unbundled)
  2286. - fixed SF# 2911407: Add sh4 support
  2287. - fixed SF# 2912746: RSAKey::EXP_LARGE doesn't work
  2288. - fixed SF# 2904119: abstractstrategy uses std::set but do not includes it
  2289. - fixed SF# 2909946: localtime NULL pointer
  2290. - fixed SF# 2914986: potential expat DoS security issues (CVE-2009-3560 and CVE-2009-3720)
  2291. - fixed SF# 2916305: SSL Manager crashes
  2292. - fixed SF# 2903676: Tuple TypeHander does not handle composites.
  2293. Release 1.3.6 (2009-11-24)
  2294. ==========================
  2295. - added Environment::processorCount()
  2296. - added POCO_VERSION macro to Poco/Foundation.h
  2297. - fixed SF# 2807527: Poco::Timer bug for long startInterval/periodic interval
  2298. - fixed a bug similar to SF# 2807527 in Poco::Util::Timer.
  2299. - fixed SF# 2795395: Constructor doesn't treat the params "key" and "iv"
  2300. - fixed SF# 2804457: DateTime::checkLimit looks wrong
  2301. - fixed SF# 2804546: DateTimeParser requires explicit RFC1123 format
  2302. - added ReleaseArrayPolicy to Poco::SharedPtr
  2303. - upgraded to SQLite 3.6.20
  2304. - fixed SF# 2782709: Missing semicolons in "Logger.h" convenience
  2305. - fixed SF# 2526407: DefaultStrategy.h ++it instead of it++ in a loop
  2306. - fixed SF# 2502235: Poco STLPort patch
  2307. - fixed SF# 2186643: Data::Statement::reset() not implemented in 1.3.3
  2308. - fixed SF# 2164227: Allow File opened read only by FileInputSteam to be writable
  2309. - fixed SF# 2791934: use of char_traits::copy in BufferedStreamBuf::underflow
  2310. - fixed SF# 2807750: Support additional SQL types in SQLite
  2311. - fixed documentation bugs in Timed/PriorityNotificationQueue
  2312. - fixed SF# 2828401: Deadlock in SocketReactor/NotificationCenter (also fixes patch# 1956490)
  2313. NotificationCenter now uses a std::vector internally instead of a std::list, and the mutex is
  2314. no longer held while notifications are sent to observers.
  2315. - fixed SF# 2835206: File_WIN32 not checking aganist INVALID_HANDLE_VALUE
  2316. - fixed SF# 2841812: Posix ThreadImpl::sleepImpl throws exceptions on EINTR
  2317. - fixed SF# 2839579: simple DoS for SSL TCPServer, HTTPS server
  2318. No SSL handshake is performed during accept() - the handshake is delayed until
  2319. sendBytes(), receiveBytes() or completeHandshake() is called for the first time.
  2320. This also allows for better handshake and certificate validation when using
  2321. nonblocking connections.
  2322. - fixed SF# 2836049: Possible handle leak in FileStream
  2323. If sync() fails, close() now simply set's the stream's bad bit.
  2324. In any case, close() closes the file handle/descriptor.
  2325. - fixed SF# 2814451: NetSSL: receiveBytes crashes if socket is closed
  2326. - added a workaround for Vista service network initialization issue
  2327. (an Windows service using the Net library running under Vista will
  2328. crash in the call to WSAStartup() done in NetworkInitializer).
  2329. Workaround is to call WSAStartup() in the application's main().
  2330. Automatic call to WSAStartup() in the Net library can now be disabled
  2331. by compiling Net with -DPOCO_NET_NO_AUTOMATIC_WSASTARTUP. Also
  2332. the new Poco::Net::initializeNetwork() and Poco::Net::uninitializeNetwork()
  2333. functions can be used to call WSAStartup() and WSACleanup(), respectively,
  2334. in a platform-independent way (on platforms other than Windows, these
  2335. functions will simply do nothing).
  2336. - added VCexpress build script support (contributed by Jolyon Wright)
  2337. - fixed SF# 2851052: Poco::DirectoryIterator copy constructor is broken
  2338. - fixed SF# 2851197: IPAddress ctor throw keyword missing
  2339. - added Poco::ProtocolException
  2340. - PageCompiler improvements: new tags, support for buffered output, etc.
  2341. - better error reporting in Data MySQL connector (patch #2881270 by Jan "HanzZ" Kaluza)
  2342. - fixed SF# 1892462: FTPClient:Choose explicitely between EPSV and PASV
  2343. - fixed SF# 2806365: Option for PageCompiler to write output to different dir
  2344. - fixed a documentation bug (wrong sample code) in Process::launch() documentation
  2345. - added --header-output-dir option to PageCompiler
  2346. - fixed SF# 2849144: Zip::Decompress notifications error
  2347. - SAXParser has a new feature: "http://www.appinf.com/features/enable-partial-reads".
  2348. See ParserEngine::setEnablePartialReads() for a description of what this does.
  2349. - fixed SF# 2876179: MySQL Signed/Unsigned value bug
  2350. - fixed SF# 2877970: possible bug in timer task
  2351. - fixed SF# 2874104: wrong parsing empty http headers
  2352. - fixed SF# 2860694: Incorrect return code from SecureStreamSocketImpl::sendBytes
  2353. - fixed SF# 2849750: Possible bug with XMLWriter?
  2354. - added MailMessage::encodeWord() to support RFC 2047 word encoded
  2355. mail header fields when sending out mail containing non-ASCII
  2356. characters.
  2357. - fixed SF# 2890975: SMTPClientSession bug with 7BIT encoding
  2358. - fixed an issue with retrieving the value of socket options on Windows 7.
  2359. Before obtaining the value of a socket, we now initialize the variable receiving the
  2360. socket option value to zero.
  2361. - fixed SF# 2836141: Documentation errors
  2362. - fixed SF# 2864232: Socket::select() does not detect closed sockets on windows
  2363. - fixed SF# 2812143: Socket::select() should check socket descriptors...
  2364. - fixed SF# 2801750: NetworkInterface <iface-Obj>forName returns wrong subnetMask
  2365. - fixed SF# 2816315: Problem with POSIX Thread::sleepImpl
  2366. - fixed SF# 2795646: IPv6 address parsing bug
  2367. - fixed #0000092: ServerApplication::waitForTerminationRequest(), SIGINT and GDB.
  2368. Poco::Util::ServerApplication::waitForTerminationRequest() no longer registers a
  2369. signal handler for SIGINT if the environment variable POCO_ENABLE_DEBUGGER
  2370. is defined.
  2371. - fixed SF# 2896070: Poco::Net::Context with non-ASCII paths
  2372. - added Unicode Surrogate support to Poco::UTF16Encoding.
  2373. See Poco::TextEncoding::queryConvert() and Poco::TextEncoding::sequenceLength()
  2374. for how this is implemented. Contributed by Philippe Cuvillier.
  2375. - fixed SF# 2897650: [branch 1.3.6] Net.SocketAddress won't compile for CYGWIN
  2376. - fixed SF# 2896161: Building on Windows fails when basedir has space in it
  2377. - fixed SF# 2864380: Memory leak when using secure sockets
  2378. - NetSSL_OpenSSL: the SSL/TLS session cache is now disabled by default and
  2379. can be enabled per Context using Poco::Net::Context::enableSessionCache().
  2380. - fixed SF# 2899039: Wrong DST handling in LocalDateTime
  2381. - added RWLock::ScopedReadLock and RWLock::ScopedWriteLock (contributed by Marc Chevrier)
  2382. - added Thread::TID type, as well as Thread::tid() and Thread::currentTid() to obtain the native
  2383. thread handle/ID
  2384. - added Zip file comment support
  2385. - On Windows, Poco::SharedLibrary::load() now uses LoadLibraryEx instead of LoadLibrary
  2386. and uses the LOAD_WITH_ALTERED_SEARCH_PATH if an absolute path is specified. This will
  2387. add the directory containing the library to the search path for DLLs that the
  2388. loaded library depends upon.
  2389. - Mac OS X build settings now match those used by default Xcode projects, making linking the
  2390. POCO libs to Xcode projects easier
  2391. - Replaced use of std::valarray in Poco::Net::ICMPEventArgs with std::vector due to issues with
  2392. std::valarray together with STDCXX debug mode on OS X
  2393. Release 1.3.5 (2009-05-11)
  2394. ==========================
  2395. - fixed SF# 2779410: Poco::Data::ODBC::HandleException impovement
  2396. - fixed wrong exception text for Poco::UnhandledException
  2397. - Fixed a problem with SSL shutdown that causes clients (web browsers)
  2398. to hang when the server attempts to perform a clean SSL shutdown. We now call
  2399. SSL_shutdown() once, even if the shutdown is not complete after the first call.
  2400. - added Poco::Crypto::X509Certificate::save()
  2401. - fixed a bug in Poco::Zip::Decompress that results in wrong paths for extracted files
  2402. - fixed a bug in Poco::Zip::ZipManipulator where the Zip file was opened in text format
  2403. on Windows.
  2404. - added Poco::Crypto::X509Certificate::issuedBy() to verify certificate chain.
  2405. - fixed 0000089: Thread::sleep() on Linux is extremely inaccurate
  2406. - added methods to extract the contents of specific fields from the
  2407. subject and issuer distinguished names of a certificate.
  2408. Release 1.3.4 (2009-04-21)
  2409. ==========================
  2410. - fixed SF# 2611804: PropertyFileConfiguration continuation lines
  2411. - fixed SF# 2529788: ServerApplication::beDaemon() broken
  2412. - fixed SF# 2445467: Bug in Thread_WIN32.cpp
  2413. - Improved performance of HTTP Server by removing some
  2414. string copy operations
  2415. - fixed SF# 2310735: HTTPServer: Keep-Alive only works with send()
  2416. - fixed appinf.com IP address in Net testsuite
  2417. - fixed RFC-00188: NumberFormatter and float/double numbers
  2418. - added --pidfile option to ServerApplication on Unix
  2419. - fixed SF# 2499504: Bug in Win32_Thread when using from dll (fixed also for POSIX threads)
  2420. - fixed SF# 2465794: HTTPServerRequestImpl memory leak
  2421. - fixed SF# 2583934: Zip: No Unix permissions set
  2422. - the NetSSL_OpenSSL library has been heavily refactored
  2423. - added NumberFormatter::append*() and DateTimeFormatter::append() functions
  2424. - use NumberFormatter::append() and DateTimeFormatter::append() instead of format() where
  2425. it makes sense to gain some performance
  2426. - added system.dateTime and system.pid to Poco::Util::SystemConfiguration
  2427. - added %F format specifier (fractional seconds/microseconds) to DateTimeFormatter,
  2428. DateTimeParser and PatternFormatter.
  2429. - fixed SF# 2630476: Thread_POSIX::setStackSize() failure with g++ 4.3
  2430. - fixed SF# 2679279: Handling of -- option broken
  2431. - added compile options to reduce memory footprint of statically linked applications
  2432. by excluding various classes from automatically being linked.
  2433. See the POCO_NO_* macros in Poco/Config.h.
  2434. - fixed SF# 2644940: on Windows the COMPUTER-NAME and the HOSTNAME can be different
  2435. - added DNS::hostName() function
  2436. - added build configuration for iPhone (using Apple's SDK)
  2437. - basic support for AIX 5.x/xlC 8
  2438. - fixed a bug resulting in a badly formatted exception message with IOException
  2439. thrown due to a socket-related error
  2440. - fixed SF# 2644718: NetworkInterface name conflict in MinGW
  2441. - added a missing #include to CryptoTransform.h
  2442. - fixed SF# 2635377: HTTPServer::HTTPServer should take AutoPtr<HTTPServerParams>
  2443. - replaced plain pointers with smart pointers in some interfaces
  2444. - upgraded to sqlite 3.6.13
  2445. - improved Data::SQLite error reporting
  2446. - Poco::Glob now works with UTF-8 encoded strings and supports case-insensitive comparison.
  2447. This also fixes SF# 1944831: Glob::glob on windows should be case insensitve
  2448. - added Twitter client sample to Net library
  2449. - Fixed SF# 2513643: Seg fault in Poco::UTF8::toLower on 64-bit Linux
  2450. - Poco::Data::SessionPool: the janitor can be disabled by specifying a zero idle time.
  2451. - added Poco::Data::SessionPool::customizeSession()
  2452. - added support for different SQLite transaction modes (DEFERRED, IMMEDIATE, EXCLUSIVE)
  2453. - fixed a few wrong #if POCO_HAVE_IPv6 in the Net library
  2454. - added support for creating an initialized, but unconnected StreamSocket.
  2455. - added File::isDevice()
  2456. - added family() member function to SocketAddress,
  2457. - Data::SQLite: added support for automatic retries if the database is locked
  2458. - XMLConfiguration is now writable
  2459. - fixed an IPv6 implementation for Windows bug in HostEntry
  2460. - Timer class improvement: interval between callback is no longer influenced by the
  2461. time needed to execute the callback.
  2462. - added PriorityNotificationQueue and TimedNotificationQueue classes to Foundation.
  2463. These are variants of the NotificationQueue class that support priority and
  2464. timestamp-tagged notifications.
  2465. - added Poco::Util::Timer class. This implements a timer that can schedule different
  2466. tasks at different times, using only one thread.
  2467. - the signatures of Poco::NotificationQueue and Poco::NotificationCenter member functions
  2468. have been changed to accept a Poco::Notification::Ptr instead of Poco::Notification*
  2469. to improve exception safety. This change should be transparent and fully backwards
  2470. compatible. The signature of the methods returning a Poco::Notification* have not been
  2471. changed for backwards compatibility. It is recommended, that any Notification* obtained
  2472. should be immediately assigned to a Notification::Ptr.
  2473. - SQLite::SessionImpl::isTransaction() now uses sqlite3_get_autocommit() to find out
  2474. about the transaction state.
  2475. - refactored Crypto library to make it independent from NetSSL_OpenSSL.
  2476. - added support for RSA-MD5 digital signatures to Crypto library.
  2477. - removed SSLInitializer from NetSSL library (now moved to Crypto library)
  2478. - added build configs for static libraries to Crypto library
  2479. - OpenSSL now depends on Crypto library (which makes more sense than
  2480. vice versa, as it was before). Poco::Net::X509Certificate is now
  2481. a subclass of Poco::Crypto::X509Certificate (adding the verify()
  2482. member function) and the Poco::Net::SSLInitializer class was
  2483. moved to Poco::Crypto::OpenSSLInitializer.
  2484. - added build configs for static libraries to Zip
  2485. - added batch mode to CppUnit::WinTestRunner.
  2486. WinTestRunnerApp supports a batch mode, which runs the
  2487. test using the standard text-based TestRunner from CppUnit.
  2488. To enable batch mode, start the application with the "/b"
  2489. or "/B" command line argument. Optionally, a path to a file
  2490. where the test output will be written to may be given:
  2491. "/b:<path>" or "/B:<path>".
  2492. When run in batch mode, the exit code of the application
  2493. will denote test success (0) or failure (1).
  2494. - testsuites now also work for static builds on Windows
  2495. - The IPv6 support for Windows now basically works (Net library compiled with POCO_HAVE_IPv6)
  2496. - fixed a potential error when shutting down openssl in a statically linked application
  2497. - added static build configs to Data library
  2498. - added Poco::AtomicCounter class, which uses OS-specific APIs for atomic (thread-safe)
  2499. manipulation of counter values.
  2500. - Poco::RefCountedObject and Poco::SharedPtr now use Poco::AtomicCounter for
  2501. reference counting
  2502. - fixed SF# 2765569: LoadConfiguration failing from current directory
  2503. Release 1.3.3p1 (2008-10-09)
  2504. ============================
  2505. - Fixed SF# 2153031: 1.3.3 Crypto won't compile on 64-bit Linux
  2506. - Fixed a warning in MySQL connector
  2507. - Updated README
  2508. - The global Makefile in the Zip archive is no longer broken
  2509. Release 1.3.3 (2008-10-07)
  2510. ==========================
  2511. - Threads now have optional user-settable stack size (if the OS supports that feature)
  2512. - Events now support simplified delegate syntax based on delegate function template.
  2513. See Poco::AbstractEvent documentation for new syntax.
  2514. - Cache supports new access expire strategy.
  2515. - Upgraded to SQLite 3.6.2
  2516. - Upgraded to PCRE 7.8
  2517. - added HttpOnly support to Poco::Net::HTTPCookie
  2518. - NetworkInterface now has displayName() member (useful only on Windows)
  2519. - Poco::Util::WinRegistryKey now has a read-only mode
  2520. - Poco::Util::WinRegistryKey::deleteKey() can now recursively delete registry keys
  2521. - Poco::File::created() now returns 0 if the creation date/time is not known, as
  2522. it's the case on most Unix platforms (including Linux).
  2523. On FreeBSD and Mac OS X, it returns the real creation time.
  2524. - Time interval based log file rotation (Poco::FileChannel) now works
  2525. correctly. Since there's no reliable and portable way to find out the creation
  2526. date of a file (Windows has the tunneling "feature", most Unixes don't provide
  2527. the creation date), the creation/rotation date of the log file is written into
  2528. the log file as the first line.
  2529. - added Environment::nodeId() for obtaining the Ethernet address of the system
  2530. (this is now also used by UUIDGenerator - the corresponding code from UUIDGenerator
  2531. was moved into Environment)
  2532. - added a release policy argument to SharedPtr template
  2533. - Socket::select() will no longer throw an InvalidArgumentException
  2534. on Windows when called with no sockets at all. If all three socket
  2535. sets are empty, Socket::select() will return 0 immediately.
  2536. - SocketReactor::run() now catches exceptions and reports them via
  2537. the ErrorHandler.
  2538. - SocketReactor has a new IdleNotification, which will be posted when
  2539. the SocketReactor has no sockets to handle.
  2540. - added referenceCount() method to Poco::SharedPtr.
  2541. - POCO now builds with GCC 4.3 (but there are some stupid warnings:
  2542. "suggest parentheses around && within ||".
  2543. - Solution and project files for Visual Studio 2008 are included
  2544. - The Zip library is now officially part of the standard POCO release.
  2545. - The Crypto library (based on OpenSSL) has been added. The original code
  2546. was kindly contributed by Ferdinand Beyer.
  2547. - A Data Connector to MySQL, contributed by Sergey Kholodilov, is now part
  2548. of the POCO release.
  2549. - fixed SF# 1859738: AsyncChannel stall
  2550. - fixed SF# 1815124: XML Compile failed on VS7.1 with XML_UNICODE_WCHAR_T
  2551. - fixed SF# 1867340: Net and NetSSL additional dependency not set - ws2_32.lib
  2552. - fixed SF# 1871946: no exception thrown on error
  2553. - fixed SF# 1881113: LinearHashTable does not conform to stl iterators
  2554. - fixed SF# 1899808: HTMLForm.load() should call clear() first
  2555. - fixed SF# 2030074: Cookie problem with .NET server
  2556. - fixed SF# 2009707: small bug in Net/ICMPPacketImpl.cpp
  2557. - fixed SF# 1988579: Intel Warning: invalid multibyte character sequence
  2558. - fixed SF# 2007486: Please clarify license for Data/samples/*
  2559. - fixed SF# 1985180: Poco::Net::DNS multithreading issue
  2560. - fixed SF# 1968106: DigestOutputStream losing data
  2561. - fixed SF# 1980478: FileChannel loses messages with "archive"="timestamp"
  2562. - fixed SF# 1906481: mingw build WC_NO_BEST_FIT_CHARS is not defined
  2563. - fixed SF# 1916763: Bug in Activity?
  2564. - fixed SF# 1956300: HTTPServerConnection hanging
  2565. - fixed SF# 1963214: Typo in documentation for NumberParser::parseFloat
  2566. - fixed SF# 1981865: Cygwin Makefile lacks ThreadTarget.cpp
  2567. - fixed SF# 1981130: pointless comparison of unsigned integer with zero
  2568. - fixed SF# 1943728: POCO_APP_MAIN namespace issue
  2569. - fixed SF# 1981139: initial value of reference to non-const must be an lvalue
  2570. - fixed SF# 1995073: setupRegistry is broken if POCO_WIN32_UTF8 enabled
  2571. - fixed SF# 1981125: std::swap_ranges overloading resolution failed
  2572. - fixed SF# 2019857: Memory leak in Data::ODBC Extractor
  2573. - fixed SF# 1916761: Bug in Stopwatch?
  2574. - fixed SF# 1951443: NetworkInterface::list BSD/QNX no netmask and broadcast addr
  2575. - fixed SF# 1935310: Unhandled characters in Windows1252Encoding
  2576. - fixed SF# 1948361: a little bug for win32
  2577. - fixed SF# 1896482: tryReadLock intermittent error
  2578. - workaround for SF# 1959059: Poco::SignalHandler deadlock
  2579. the SignalHandler can now be disabled globally by adding a
  2580. #define POCO_NO_SIGNAL_HANDLER to Poco/Config.h
  2581. - fixed SF# 2012050: Configuration key created on read access
  2582. - fixed SF# 1895483: PCRE - possible buffer overflow
  2583. - fixed SF# 2062835: Logfile _creationDate is wrong
  2584. - fixed SF# 2118943: out_of_bound access in Poco::Data::BLOB:rawContent
  2585. - fixed SF# 2121732: Prevent InvalidArgumentException in SocketReactor
  2586. - fixed SF# 1891132: Poco::Data::StatementImpl::executeWithLimit is not correct
  2587. - fixed SF# 1951604: POCO refuses to compile with g++ 4.3.0
  2588. - fixed SF# 1954327: CYGWIN's pthread does not define PTHREAD_STACK_MIN
  2589. - fixed SF# 2124636: Discrepancy between FileWIN32(U)::handleLastError
  2590. - fixed SF# 1558300: MinGW/MSYS Builds
  2591. - fixed SF# 2123266: Memory leak under QNX6 with dinkum library
  2592. - fixed SF# 2140411: ScopedUnlock documentation bug
  2593. - fixed SF# 2036460: UUID regression tests are failing on Linux with g++ 4.3.1
  2594. - fixed SF# 2150438: Tuple TypeHandler position increment size is wrong
  2595. Release 1.3.2 (2008-02-04)
  2596. ==========================
  2597. Foundation, XML, Net, Util:
  2598. - added POCO_NO_SHAREDMEMORY to Config.h
  2599. - POCO_NO_WSTRING now really disables all wide string related calls
  2600. - added template specialization for string hashfunction (performance)
  2601. - XML parser performance improvements (SAX parser is now up to 40 % faster
  2602. - added parseMemoryNP() to XMLReader and friends
  2603. - URIStreamOpener improvement: redirect logic is now in URIStreamOpener.
  2604. this enables support for redirects from http to https.
  2605. - added support for temporary redirects and useproxy return code
  2606. - added getBlocking() to Socket
  2607. - added File::isHidden()
  2608. - better WIN64 support (AMD64 and IA64 platforms are recognized)
  2609. - added support for timed lock operations to [Fast]Mutex
  2610. - SharedLibrary: dlopen() is called with RTLD_GLOBAL instead of RTLD_LOCAL
  2611. (see http://gcc.gnu.org/faq.html#dso)
  2612. - Poco::Timer threads can now run with a specified priority
  2613. - added testcase for SF# 1774351
  2614. - fixed SF# 1784772: Message::swap omits _tid mem
  2615. - fixed SF# 1790894: IPAddress(addr,family) doesn't fail on invalid address
  2616. - fixed SF# 1804395: Constructor argument name wrong
  2617. - fixed SF# 1806807: XMLWriter::characters should ignore empty strings
  2618. - fixed SF# 1806994: property application.runAsService set too late
  2619. - fixed SF# 1828908: HTMLForm does not encode '+'
  2620. - fixed SF# 1831871: Windows configuration file line endings not correct.
  2621. - fixed SF# 1845545: TCP server hangs on shutdown
  2622. - fixed SF# 1846734: Option::validator() does not behave according to doc
  2623. - fixed SF# 1856567: Assertion in DateTimeParser::tryParse()
  2624. - fixed SF# 1864832: HTTP server sendFile() uses incorrect date
  2625. - HTTPServerResponseImpl now always sets the Date header automatically
  2626. in the constructor.
  2627. - fixed SF# 1787667: DateTimeFormatter and time related classes
  2628. (also SF# 1800031: The wrong behavior of time related classes)
  2629. - fixed SF# 1829700: TaskManager::_taskList contains tasks that never started
  2630. - fixed SF# 1834127: Anonymous enums in Tuple.h result in invalid C++
  2631. - fixed SF# 1834130: RunnableAdapter::operator= not returning a value
  2632. - fixed SF# 1873924: Add exception code to NetException
  2633. - fixed SF# 1873929: SMTPClientSession support for name in sender field
  2634. - logging performance improvements (PatternFormatter)
  2635. - fixed SF# 1883871: TypeList operator < fails for tuples with duplicate values
  2636. - CYGWIN build works again (most things work but Foundation testsuite still fails)
  2637. - new build configuration for Digi Embedded Linux (ARM9, uclibc)
  2638. - new build configuration for PowerPC Linux
  2639. Data:
  2640. - fixed SF# 1724388: ODBC Diagnostics
  2641. - fixed SF# 1804797: ODBC Statement multiple execution fails
  2642. - fixed SF# 1803435: SessionPool onJanitorTimer called too often?
  2643. - fixed SF# 1851997: Undefined Behavior in ODBC::Preparation
  2644. - updated SQlite to 3.5.5
  2645. Release 1.3.1 (2007-08-08)
  2646. ==========================
  2647. Foundation, XML, Net, Util:
  2648. - DynamicAny fixes for char conversions
  2649. - fixed SF# 1733362: Strange timeout handling in SocketImpl::poll and Socket::select
  2650. - fixed SF patch# 1728912: crash in POCO on Solaris
  2651. - fixed SF# 1732138: Bug in WinRegistryConfiguration::getString
  2652. - fixed SF# 1730790: Reference counting breaks NetworkInterface::list()
  2653. - fixed SF# 1720733: Poco::SignalHandler bug
  2654. - fixed SF# 1718724: Poco::StreamCopier::copyStream loops forever
  2655. - fixed SF# 1718437: HashMap bug
  2656. - changed LinearHashTable iterator implementation. less templates -> good thing.
  2657. - fixed SF# 1733964: DynamicAny compile error
  2658. - UUIDGenerator: fixed infinite loop with non ethernet interfaces
  2659. - updated expat to 2.0.1
  2660. - fixed SF# 1730566: HTTP server throws exception
  2661. - Glob supports symbolic links (additional flag to control behavior)
  2662. - fixed a problem with non blocking connect in NetSSL_OpenSSL
  2663. (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)
  2664. - fixed a problem with SSL renegotiation in NetSSL_OpenSSL (thanks to Sanjay Chouksey for the fix)
  2665. - fixed SF# 1714753: NetSSL_OpenSSL: HTTPS connections fail with wildcard certs
  2666. - HTTPClientSession: set Host header only if it's not already set (proposed by EHL)
  2667. - NetworkInterface (Windows): Loopback interface now has correct netmask;
  2668. interfaces that do not have an IP address assigned are no longer reported.
  2669. - Fixes for VC++ W4 warnings from EHL
  2670. - SharedMemory: first constructor has an additional "server" parameter
  2671. Setting to true does not unlink the shared memory region when the SharedMemory object is destroyed. (Alessandro Oliveira Ungaro)
  2672. - fixed SF# 1768231: MemoryPool constructor
  2673. Data:
  2674. - fixed SF# 1739989: Data::RecordSet::operator = () (in 1.3 branch)
  2675. - fixed SF# 1747525: SQLite, Transactions and Session Pooling (in 1.3 branch)
  2676. - upgraded to SQLite 3.4.1
  2677. Release 1.3.0 (2007-05-07)
  2678. ==========================
  2679. - added HashMap, HashSet classes
  2680. - the HashFunction class template has been changed in an incompatible
  2681. way. The member function formerly named hash() is now the function
  2682. call operator. If you have defined your own HashFunction classes,
  2683. you have to update your code. Sorry for the inconvenience.
  2684. - added Poco::Tuple
  2685. - added AbstractCache::getAllKeys(), improved performance of the get operation
  2686. - fixed AbstractCache::size() to do cache replacement before returning the size
  2687. - added additional match() method to RegularExpression and documented the fact that the simple
  2688. match() method internally sets RE_ANCHORED and RE_NOTEMPTY.
  2689. - added ExpirationDecorator template. Decorates data types so that they can be used with UniqueExpireCaches
  2690. - added operator ! to AutoPtr and SharedPtr
  2691. - Buffer uses std::size_t instead of int
  2692. - Exception::what() now returns exception name instead of message
  2693. - added poco_ndc_dbg() macro (same as poco_ndc(), but only enabled in debug builds)
  2694. - added Environment::get(name, defaultValue);
  2695. - Foundation.h now includes Config.h at the very beginning.
  2696. - added replace() and replaceInPlace() to Poco/String.h
  2697. - added AutoPtr::assign() and SharedPtr::assign()
  2698. - added operator () to AbstractEvent
  2699. - gcc Makefiles now strip release builds
  2700. - Void now has a == and != operator
  2701. - Base64Encoder and HexBinaryEncoder now support an unlimited line length
  2702. (no newlines written), by specifying a line length of 0
  2703. - NumberParser now has stricter syntax requirements: garbage following a number leads to a SyntaxException
  2704. (Thanks to [email protected] for the suggestion)
  2705. - fixed SF# 1676830: Don't use -rpath in libraries
  2706. - fixed SF# 1670279: AbstractConfiguration::unckeckedExpand crash
  2707. - fixed a warning in Hashtable
  2708. - HTTPClientSession now uses a keepAliveTimeout for better persistent connection handling
  2709. - added DateTime::makeUTC() and DateTime::makeLocal()
  2710. - added another constructor to LocalDateTime
  2711. - POCO_WIN32_UTF8 is ignored on non-Windows platforms
  2712. - fixed a timeout bug (with NetSSL) in HTTPSession
  2713. - AsyncChannel is automatically opened with first log()
  2714. - minor fix to NotificationQueue sample (reported by Laszlo Keresztfalvi)
  2715. - added File::canExecute() and File::setExecutable()
  2716. - added SharedMemory class to Foundation
  2717. - added FileStream, FileInputStream, FileOutputStream to Foundation
  2718. - added NodeAppender class to XML for faster DOM tree creation
  2719. - HTTPServerRequest and HTTPServerResponse are now abstract base classes,
  2720. actual functionality has moved into HTTPServerRequestImpl and
  2721. HTTPServerResponseImpl. This allows us to plug other HTTP servers
  2722. into POCO.
  2723. - added DynamicAny class to Foundation
  2724. - replaced std::fstream with Poco::FileStream across POCO.
  2725. - added Poco::Checksum class to Foundation.
  2726. - fixed SF# 1700811: conflict in threadpool
  2727. - bugfix: File::moveTo() does not work if the target is a directory
  2728. - File::copyTo() and File::moveTo() now copy/move directories recursively
  2729. - refactored NetworkInterface (now using pimpl idiom);
  2730. added broadcast address and netmask support
  2731. - fixed SF# 1688982: POP3ClientSession fails when retrieving mails with attachment
  2732. - fixed SF# 1655104: Enhance Poco::TextEncoding functionality
  2733. - added Poco::Condition class, implementing a POSIX-style condition variable
  2734. - fixed a bug in File::create() for Windows
  2735. - added poco_static_assert (imported from boost)
  2736. - added Thread::join(timeout) and Thread::tryJoin()
  2737. - ClassLoader support for named manifests (see ClassLibrary.h - POCO_EXPORT_NAMED_MANIFEST)
  2738. - POCO_WIN32_UTF8: UNICODE #define is no longer required (and no longer
  2739. automatically defined in POCO_WIN32_UTF8 is defined)
  2740. - PCRE: upgraded to PCRE version 7.1
  2741. - fixed SF# 1682162: Suggestion on thread priority
  2742. - fixed SF# 1613460: MSVC/STLPort warnings
  2743. - fixed SF# 1709358: Format double percent std::String bug
  2744. - added WindowsConsoleChannel class to Foundation
  2745. - added AutoPtr::unsafeCast<>() and SharedPtr::unsafeCast<>()
  2746. - fixed SF# 1708552: Failed to build on arm and powerpc
  2747. - fixed SF$ 1708529: Failed to build using GCC 4.3: missing #includes
  2748. - fixed SF# 1710053: LogStream proposal
  2749. - fixed a bug involving empty root directories in Windows DirectoryIterator implementation
  2750. (see http://www.appinf.com/poco/wiki/tiki-view_forum_thread.php?comments_parentId=343&forumId=6)
  2751. - robustness improvements to ActiveMethod - removed the opportunity for memory leaks in
  2752. case something goes while invoking the method
  2753. - made C library usage more C++-like - use C++ headers (e.g. <cstring>) instead of
  2754. C ones (<string.h>). Also, use C library functions in std namespace.
  2755. - added Unicode and UTF8String for improved Unicode support.
  2756. The Unicode class can be used to obtain the Unicode properties of a character.
  2757. The UTF8 class provides case insensitive comparison and case conversion
  2758. for UTF-8 encoded strings.
  2759. - added UnWindows.h header file, replaced all #include <windows.h> with #include "Poco/UnWindows.h".
  2760. See the Poco/UnWindows.h header file for a rationale and explanations.
  2761. - fixed SF# 1713820: StreamSocketImpl::sendBytes sends too many bytes
  2762. - File::copyTo(): on Windows, the copy now always has the read-only flag reset, to be consistent
  2763. with other platforms.
  2764. - With Microsoft Visual C++, the necessary POCO libraries are now implicitly linked when
  2765. the corresponding header files are included (#pragma comment(lib, "PocoXYZ.lib") is used).
  2766. To disable this, compile POCO with the preprocessor symbol POCO_NO_AUTOMATIC_LIBS #define'd
  2767. (see Poco/Foundation.h and Poco/Config.h).
  2768. - The Visual Studio project files for the POCO libraries now include configurations
  2769. for building static libraries.
  2770. Release 1.2.9 (2007-02-26)
  2771. ==========================
  2772. - fixed a formatting problem in Util::HelpFormatter
  2773. - HTTPClientSession::sendRequest() now attempts to send the complete request in one network packet.
  2774. - improved network performance of ChunkedOutputStream: chunk size and chunk data
  2775. are sent in one network packet if possible
  2776. - fixed SF# 1655035: Wrong expires field calculation in HTTPCookie
  2777. (thanks to Sergey N. Yatskevich for this and other fixes)
  2778. - fixed SF# 1655049: Fix discrepancy of a code to the description
  2779. - fixed SF# 1655170: Poco::Timezone::standardName() problem on WIN32
  2780. - fixed SF# 1629095: POCO_WIN32_UTF8 problem
  2781. There is a new function Path::transcode() that can be used to convert a path (or any other string)
  2782. from UTF-8 to the current Windows code page. This string can the be passed as a filename
  2783. to an fstream or fopen(). This function only does the conversion on Windows,
  2784. and only, if POCO_WIN32_UTF8 is defined. Otherwise, it simply returns the unmodified argument.
  2785. - fixed SF# 1659607: Probably a bug in Poco::Net::DialogSocket
  2786. - HTTPServer network performance improvement: responses that fit into a single network packet
  2787. sent with HTTPServerResponse::sendFile() or the new HTTPServerResponse::sendBuffer() are
  2788. sent in only one packet.
  2789. - added HTTPServerResponse::sendBuffer()
  2790. - HTTPServer now sends a Bad Request response if it fails to parse the HTTP request header.
  2791. - HTTPServer now sends an Internal Server Error response if the request handler throws an
  2792. exception prior to sending a response.- enabled TCP_NODELAY per default on TCPServer/HTTPServer
  2793. - fixed a bug in HTTP persistent connection handling
  2794. (server does not send Connection: close when it reaches connection maximum)
  2795. - HTMLForm - POST submission of URL encoded form no longer uses chunked transfer encoding
  2796. (thus improving interoperability with certain web servers)
  2797. - integrated Environment.cpp from Main (missing get(var, default))
  2798. - added missing AutoPtr include to Util/Application
  2799. (and using Poco::AutoPtr is no longer necessary for POCO_APP_MAIN macro)
  2800. - fixed SF# 1635420: Per Regents of the University of Calfornia letter,
  2801. remove advertising from BSD licensed parts
  2802. - fixed SF# 1633133: MultipartWriter writes superluous CR-LF at beginning
  2803. Release 1.2.8 (2007-01-04)
  2804. ==========================
  2805. - fixed SF# 1613906: Util/Application.h and GCC 3.3
  2806. - fixed a byte order issue (failed test) in IPv6 address formatting
  2807. - fixed SF# 1626640: Poco::Net::SocketReactor bug
  2808. - fixed client side chunked transfer encoding handling
  2809. - fixed client side persistent connection handling
  2810. - fixed SF# 1623536: HTTP Server Chunked Transfer Encoding Bug
  2811. - improved HTTP server exception text
  2812. - fixed SF# 1616294: KeepAlive HTTPServerSession patch
  2813. - fixed SF# 1616296: Trivial Poco::TaskCustomNotification patch
  2814. - fixed SF# 1619282: PurgeStrategy bug fix
  2815. - fixed SF# 1620855: Format problem
  2816. there is a new format specifier %z for std::size_t, as well as a new
  2817. flag ? for %d, %i, %o, %x meaning any signed or unsigned integer
  2818. Release 1.2.7 (2006-12-07)
  2819. ==========================
  2820. - Poco::File: fixed root directory handling
  2821. - fixed UUIDGenerator documentation
  2822. - clarified Application::setUnixOptions() documentation
  2823. - fixes for issue [SOAPLite Transport 0000023]: SOAP Transport Listener should be able to use existing HTTPServer instance
  2824. - fixing mantis issues 13, 14, 15, 16, 17, 18, 19, 21
  2825. - fixed SF# 1597022: Signed/unsigned warning in StringTokenizer::operator[]
  2826. - fixed SF# 1598601: Message::op= leaks
  2827. - fixed SF# 1605960: PatternFormatter crashes on custom property
  2828. - fixed SF# 1605950: Memory leak in Logger sample code
  2829. - fixed SF# 1591635: Copy Paste Error in sample code
  2830. - fixed SF# 1591512: SMTPClientSession response stream
  2831. - fixed SF #1592776: LayeredConfiguration: getRaw should enumerate in reverse order
  2832. - SF Patch # 1599848 ] VS 2005 Util build fails
  2833. - Logger::dump() now uses std::size_t instead of int for buffer size
  2834. - LayeredConfiguration now supports a priority value for each configuration.
  2835. Also, it's possible to specify for each configuration added whether it
  2836. should be writeable.
  2837. - ServerApplication: cd to root directory only if running as a daemon
  2838. - added Message::swap()
  2839. - improvements to build system:
  2840. global Makefile has correct dependencies for samples
  2841. on Windows, samples build after libraries are ready
  2842. configure supports --no-wstring and --no-fpenvironment flags
  2843. build system supports POCO_FLAGS environment variable for compiler flags
  2844. - RemoteGen: fixed error handling for write protected files (SystemException)
  2845. fixing integral constant overflow messages with large cache expiration, m_ support for type serializers,
  2846. case-insensitive comparison added
  2847. Release 1.2.6 (2006-11-19)
  2848. ==========================
  2849. - added additional match() method to RegularExpression and documented the fact that the simple
  2850. match() method internally sets RE_ANCHORED and RE_NOTEMPTY.
  2851. - added ExpirationDecorator template. Decorates data types so that they can be used with UniqueExpireCaches
  2852. - added operator ! to AutoPtr and SharedPtr
  2853. - Buffer uses std::size_t instead of int
  2854. - added poco_ndc_dbg() macro (same as poco_ndc(), but only enabled in debug builds)
  2855. - Foundation.h now includes Config.h at the very beginning.
  2856. - added AutoPtr::assign() and SharedPtr::assign()
  2857. - added operator () to AbstractEvent
  2858. - gcc Makefiles now strip release builds
  2859. - documentation improvements
  2860. Release 1.2.5 (2006-10-23)
  2861. ==========================
  2862. - Improved LoggingConfigurator: channel creation and configuration is now a two-step process.
  2863. This means that the previous problems with PropertyFileConfiguration and IniFileConfiguration when referencing other channels are solved.
  2864. - improved options handling: better handling of (non) ambiguities.
  2865. If both an option named "help" and one named "helper" is specified, this no longer causes ambiguity errors.
  2866. - added check for duplicate option definition
  2867. - ThreadPool bugfix: fixed a crash that occurs on Linux multiprocessor machines
  2868. (caused by an thread unsafe string assignment corrupting the heap...)
  2869. (SF# 1575315)
  2870. - improved ThreadPool performance
  2871. - XML now compiles with -DXML_UNICODE_WCHAR_T (SF# 1575174)
  2872. - fixed SF# 1572757: HTML forms can have more than one key/value pair with the same name
  2873. - got rid of the dynamic casts in Events, Events/Cache: simpler/faster Delegate < operator,
  2874. prevents some rare dynamic casts error from occuring when using StrategyCollection with Caches
  2875. - improvements to Logger and LoggingConfigurator:
  2876. * added Logger::unsafeGet()
  2877. * added Logger::setProperty(loggerName, propertyName, value)
  2878. * LoggingConfigurator now correctly (re)configures existing Loggers
  2879. (prior to this change, if a Logger named "a.b.c" existed before
  2880. the LoggingConfigurator started its work, and the LoggingConfigurator
  2881. configured a Logger named "a.b", then "a.b.c" would not inherit
  2882. the new configuration).
  2883. - improvements to SplitterChannel and EventLogChannel configuration
  2884. - improved LoggingRegistry exception messages
  2885. - MessageHeader::read() is more liberal with malformed message headers.
  2886. This fixes problems with certain network cameras sending malformed HTTP headers.
  2887. Release 1.2.4 (2006-10-02)
  2888. ==========================
  2889. - some code beautifying and improvements to comments
  2890. - DOMParser now automatically sets FEATURE_NAMESPACE_PREFIXES
  2891. - fixed SF #1567051: DOMBuilder/DOMParser/NamespaceStrategy bug
  2892. - fixed SF #1567364: POCO_APP_MAIN
  2893. - added Document::getElementById() (two-argument) and getElementByIdNS()
  2894. - added another test for DOMParser
  2895. - added AutoPtr::isNull() (to be consistent with SharedPtr)
  2896. - this release again compiles on PA-RISC HP-UX systems with aCC
  2897. - added CMAKE support files contributed by Andrew J. P. Maclean
  2898. Release 1.2.3 (2006-09-14)
  2899. ==========================
  2900. - configure script now checks if (auto)selected configuration is supported
  2901. - fixed SF #1552904: NamedEvent bug?
  2902. - fixed SF #1552787: POCO not handling EINTR
  2903. - fixed SF #1552846: Random::~Random uses scalar delete
  2904. - fixed SF #1552987: TLSSlot should explicitly default-construct _value
  2905. - IPAddress no longer accepts an empty address string
  2906. - split up Observer.h into AbstractObserver.h and Observer.h
  2907. - added NObserver class template which supports an AutoPtr
  2908. argument for the notification callback
  2909. - changed EchoServer sample to use NObserver
  2910. - some Windows-specific files were missing in the tarballs
  2911. Release 1.2.2 (2006-09-01)
  2912. ==========================
  2913. - fixed SF # 1549973: NotificationCenter::hasObservers() returns wrong result
  2914. - fixed a memory leak in EchoServer sample
  2915. - fixed SocketReactor TimeoutNotification bug (SF #1549365, SocketNotifier::addObserver() incorrect behavior)
  2916. - fixed SF# 1549513: MultipartReader does not work with Unix-style linefeeds
  2917. - MailMessage and HTMLForm: processing of multipart messages will no longer fail if a PartHandler does not read all data from the part stream.
  2918. - added additional test case (Unix-style line ends) to MultipartReaderTest
  2919. Release 1.2.1 (2006-08-29)
  2920. ==========================
  2921. - fixed Config.h header (no more #undefs)
  2922. Release 1.2.0 (2006-08-29)
  2923. ==========================
  2924. - DateTime fixes: Julian Day is no longer stored internally.
  2925. Times (hours, minutes, seconds, ...) are now always taken from an utcValue (if available) and not from the Julian day.
  2926. The Julian day is only used for calculating year, month and day (except when the Julian day is the only thing we have)
  2927. This helps us get rid of rounding errors that the Julian Day arithmetic introduced.- on Windows, UUIDGenerator no longer uses Netbios, but GetAdaptersInfo instead
  2928. - The main Makefile now has correct dependencies
  2929. - updated poco-doc.pl with latest version by Caleb Epstein
  2930. - fixed SF #1542722: InflatingInputStream: buffer error
  2931. - improved Windows UTF-8 support
  2932. - added Logger::names()
  2933. - added configure script and make install target
  2934. - XMLWriter bugfix: pretty-print bug with characters() and rawCharacters()
  2935. - improvements to build system: support builds outside of source tree
  2936. - added header doc conversion tool contributed by Caleb Epstein
  2937. - fixed SF #1542618 (build/config/Linux patch)
  2938. - bugfix: BinaryReader/BinaryWriter BOM is now 16 bits, as documented
  2939. - fixed SF #1542247 (Compiler warning from OptionCallback)
  2940. - fixed SF #1542253 (ServerApplication::handleOption doesn't call Application::handleOption)
  2941. - added Application::stopOptionsProcessing()
  2942. - updated samples
  2943. - Util::Application command line handling now supports:
  2944. * argument validation (Option::validator(); see Validator, IntValidator, RegExpValidator)
  2945. * binding of argument values to config properties (Option::binding())
  2946. * callbacks for arguments (Option::callback())
  2947. * checking of required parameters
  2948. - changed header file locations:
  2949. Foundation headers are now in Poco (#include "Poco/Foundation.h")
  2950. XML headers are now in Poco/XML, Poco/SAX and Poco/DOM (#include "Poco/XML/XML.h")
  2951. Util headers are now in Poco/Util (#include "Poco/Util/Util.h")
  2952. etc.
  2953. Unfortunately, this change will break existing code. However, fixing the code is
  2954. a matter of a few global search/replace operations and can be done quickly.
  2955. On the plus side, POCO is now a much better citizen when used with other
  2956. libraries.
  2957. - changed namespaces:
  2958. Foundation is now Poco
  2959. XML is now Poco::XML
  2960. Util is now Poco::Util
  2961. Net is now Poco::Net
  2962. - removed namespace macros
  2963. - fixed some warnings reported by gcc -Wall -Wextra
  2964. - fixed AutoPtr and LayeredConfiguration documentation
  2965. - improved StreamSocket::receiveBytes() doc
  2966. - added Pipe and PipeStream classes
  2967. - added support for I/O redirection (pipes) to Process::launch()
  2968. - added LogStream class (ostream interface to Logger)
  2969. - improved Makefiles (no more double-building if clean all is specified)
  2970. - added CppUnit and DateTime testsuite contributions by Andrew Marlow
  2971. - improved Cygwin and minimal MinGW support
  2972. - FileChannel: gzip compression if archived files now runs in a background thread (SF #1537481)
  2973. - POCO now compiles with large (64-bit) file support on Linux (SF #1536634)
  2974. - added format() function, which provides typesafe sprintf-like functionality (SF #1327621)
  2975. - added File::isLink()
  2976. - bugfix: dangling symbolic links in a directory no longer cause recursive remove to fail with file not found error
  2977. - added Void class (useful as argument to ActiveMethod)
  2978. - ActiveResult now supports exceptions
  2979. - bugfix: Timezone::utcOffset() and Timezone::dst() returned wrong values on Unix platforms (SF #1535428)
  2980. - added ActiveDispatcher class
  2981. - added ActiveStarter class, which is a policy used by ActiveMethod for starting methods
  2982. - ActiveRunnable moved to its own header file
  2983. - ThreadPool: added startWithPriority(), which allows for running threads with a different priority
  2984. - added error handling to dir sample
  2985. - added additional test case to HTTPServer test suite- HTMLForm: should now work with request methods other than POST and GET (all non-POST requests are treated the same as GET)
  2986. - clarified HTMLForm documentation
  2987. - HTMLForm bugfix: uploaded files no longer end up in value; PartHandler is called instead
  2988. - NameValueCollection: added get(name, defaultValue)
  2989. - added HTTPFormServer sample
  2990. - added Foundation::HashTable and SimpleHashTable
  2991. - added Net::HTTPSessionFactory
  2992. - improvements to AutoPtr and SharedPtr
  2993. - improvements to namespaces handling in XMLWriter
  2994. - Foundation Cache: fixed add implementation to match the docu: a 2nd add will now simply overwrite existing entries
  2995. - added DateTime::isValid()
  2996. - added Exception::rethrow() (virtual, must be overridden by all subclasses)
  2997. - Timer can now use a user-supplied ThreadPool
  2998. - added rethrow() to exception classes
  2999. - Net: made some constructors explicit
  3000. - Net: added SocketAddress constructor to HTTPClientSession
  3001. - Net: added HTTPSession::networkException() to check for exceptions swallowed by stream classes
  3002. - Net: added single string argument constructor to SocketAddress.
  3003. - Net: improved HTTPClientSession error handling (no more "Invalid HTTP version string" exceptions when the server prematurely closes the connection due to too much load)
  3004. - Net: improved HTTPSession error handling. Exceptions while sending and receiving data are stored for later retrieval and no longer get lost since streambufs swallow them.
  3005. - Net: added HTTPLoadTest sample
  3006. - fixed a bug when opening logfiles on Unix platforms causing an existing logfile to be truncated
  3007. - bugfix: log file purge intervals given in months did not work, due to a stupid typo
  3008. - added RawSocket and ICMP classes
  3009. - UUID: fixed a doc formatting bug
  3010. - NetworkInterface::list() now includes loopback interface on Windows (SF #1460309)
  3011. - made Exception::message() and Exception::nested() inline
  3012. - added Net::UnsupportedRedirectException
  3013. - HTTPStreamFactory throws an UnsupportedRedirectException if it encounters a redirect to https
  3014. - HTTP: fixed bad 100 Continue handling in client and server code
  3015. - added CONTRIBUTORS file
  3016. Release 1.1.2 (2006-07-07)
  3017. ==========================
  3018. - Changed license to Boost license
  3019. - DBlite and NetSSL have been removed from the Boost-licensed release.
  3020. Please contact Applied Informatics ([email protected]) if you're interested in them.
  3021. Release 1.1.1 (2006-04-03)
  3022. ==========================
  3023. - NetSSL_OpenSSL now supports separate certificate verification
  3024. settings for client and server.
  3025. - fixed SF #1460309 (enumerating network interfaces failed on 64bit Linux)
  3026. - TCPServer no longer crashes if accept() fails
  3027. Release 1.1.0 (2006-03-23)
  3028. ==========================
  3029. - events no longer require awkward += new syntax
  3030. - source code and documentation cleanups
  3031. - basic support for new compilers and platforms
  3032. Release 1.1b2 (2006-03-04)
  3033. ==========================
  3034. - made NetSSL threadsafe (added locking callbacks for OpenSSL)
  3035. - improved OpenSSL initialization (random generator seeding)
  3036. - various changes to improve compatibility with various platforms
  3037. Release 1.1b1 (2006-03-03)
  3038. ==========================
  3039. - New Events package in Foundation. The package supports C#-style event handling
  3040. - New Cache package in Foundation: a templates-based caching framework
  3041. - added Any class to Foundation
  3042. - added DBLite library
  3043. - fixed a memory leak with layered configurations in the application
  3044. - made POCO_DLL the default (unless POCO_STATIC is #defined)
  3045. It is no longer necessary to specify POCO_DLL in projects that use Poco
  3046. (SourceForge Patch #1408231 and Feature Request #1407575).
  3047. - added Buffer template class to Foundation
  3048. - added the UnicodeConverter utility class. This is mainly used for Windows Unicode support and probably of little use for anything else.
  3049. - added Path::resolve()
  3050. - added Windows Unicode support. This calls the Unicode variant of the Windows API functions.
  3051. For this to work, all strings must be UTF-8 encoded and POCO_WIN32_UTF8 must be defined in all compilation units.
  3052. - added StreamCopier::copyToString()
  3053. - added URIStreamOpener::unregisterStreamFactory() and new variants of URIStreamOpener::open() that also work with filesystem paths.
  3054. This fixes SourceForge Bug #1409064 and Feature Request #1409062.
  3055. - added NodeIterator::currentNodeNP() to XML library
  3056. - added some sanity checks to UTF8Encoding::convert()
  3057. - added NetSSL - SSL support for Net library, based on OpenSSL
  3058. - console output of processes launched with Process::launch() is now visible
  3059. Release 1.0.0 (2006-01-19)
  3060. ==========================
  3061. - removed unnecessary console output from ProcessTest
  3062. - documentation fixes
  3063. Release 1.0b2 (2006-01-16)
  3064. ==========================
  3065. - added ProcessHandle class
  3066. - Process::launch() now returns a ProcessHandle instead of a process ID.
  3067. This fixes a potential problem on Windows with Process::wait() when
  3068. the process terminates before wait() is called.
  3069. - added SplitterChannel::close()
  3070. - added Logger::destroy()
  3071. - added POP3ClientSession::deleteMessage()
  3072. - added test for Process::launch()
  3073. - documentation fixes
  3074. Release 1.0b1 (2006-01-09)
  3075. ==========================
  3076. - improved recognition of Windows paths in Path::parseGuess()
  3077. - added setCurrentLineNumber()/getCurrentLineNumber() to CountingStreamBuf
  3078. - improvememts to StreamTokenizer and Token; fixed documentation
  3079. - added a workaround for some strange istream behaviour with VS 2005 and FTPClientSessionTest
  3080. - improved exception/error reporting in cppunit
  3081. - added POP3ClientSession
  3082. - added Process::launch() and Process::wait()
  3083. - added Mail sample
  3084. - added MailStream and SMTPClientSession classes
  3085. - renamed some methods in DialogSocket to make them more general
  3086. - NullPartHandler has moved out of HTMLForm.cpp into a separate file
  3087. - Base64Encoder now always writes \r\n line ends
  3088. - MessageHeader::quote has an optional addition arg controlling the treatment of whitespace
  3089. - bugfix: MultipartReader had a problem with empty lines (\r\n sequences) in a part
  3090. - added MailMessage and MailRecipient classes
  3091. - added text encoding support for Windows-1252 codepage
  3092. Release 1.0a1 (2006-01-03) [internal]
  3093. =====================================
  3094. - mediaType is used consistently to refer to a MIME media type (some occurences of contentType and mimeType have been replaced)
  3095. - moved MediaType::quote() to MessageHeader and made it public
  3096. - added MultipartWriter::stream()
  3097. - Renamed AttachmentSource to PartSource and AttachmentHandler to PartHandler
  3098. - SIGPIPE is always blocked in main thread on Unix systems
  3099. - added EchoServer sample
  3100. - fixed a bug in SocketImpl::setBlocking() - did exactly the opposite (value to ioctl was wrong)
  3101. - fixed a memory leak in NotificationQueue sample
  3102. - added comparison operators to Socket so that Sockets can be used as keys in maps
  3103. - added Socket::setBlocking()
  3104. - added StreamSocket::connectNB() (non-blocking connect)
  3105. - added Observer::accepts()
  3106. - added SocketReactor, SocketConnector and SocketAcceptor classes to support event-based socket programming
  3107. - NamespacePrefixesStrategy now uses expat's XML_SetReturnNSTriplet().
  3108. The previously used separate namespace handling code has been removed.
  3109. This improves performance if NamespacePrefixesStrategy is used (both the n
  3110. amespaces and namespace-prefixes SAX2 features are used)
  3111. - upgraded expat to 2.0 pre-release (2005-12-27) snapshot
  3112. - added TeeInputStream and TeeOutputStream classes
  3113. - added download sample for URIStreamOpener
  3114. - renamed registerOpener() to registerFactory() in HTTPStreamFactory and FTPStreamFactory
  3115. - added LineEndingConverter streams
  3116. - added FTPClientSession
  3117. - code and documentation clean-up
  3118. - added DialogSocket class
  3119. - reorganized HTTP test suites
  3120. - added FTPClientSession and FTPStreamFactory
  3121. - added DialogSocket class
  3122. Release 0.96.1 (2005-12-28)
  3123. ===========================
  3124. - fixed a memory leak caused by a bug in Microsoft's stream implementation (see the comment in Foundation/StreamUtil.h for an explanation)
  3125. - added samples for Net library
  3126. - added uptime() and startTime() to Util::Application
  3127. - added DateTimeFormatter::format() for Timespan
  3128. - added ErrorHandler class and better exception handling for threads
  3129. - added poco_debugger() and poco_debugger_msg() macros
  3130. - added project and solution files for Visual Studio 2005 (due to some bugs/leaks in Microsofts standard library - see
  3131. http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=e08bd793-3fef-40ff-adda-ed313e0eafcc
  3132. we do not recommend using this for production purposes)
  3133. - fixed two problems with out-of-range string iterator in Path (the testsuite triggered an assertion in VC++ 8.0)
  3134. - fixed mac line endings in a few files
  3135. - added a workaround to the class loader that fixes strange behavior with VC++ 8.0. There seems to be a problem with typeid() not returning a valid typeinfo under certain circumstances.
  3136. - added buffer allocator argument to buffered stream buffer templates
  3137. - added buffer pools to HTTP to reduce memory fragmentation and to improve performance
  3138. - added Net to Windows build.cmd script
  3139. - added swap() to various classes that already support assignment
  3140. - added a null pointer check in DOMWriter::writeNode()
  3141. - fixed documentation in BinaryWriter.h and BinaryReader.h
  3142. - added explicit support for network byte order to BinaryReader and BinaryWriter
  3143. - added basic support for FreeBSD (needs more testing)
  3144. - BinaryReader: renamed readRawData() to readRaw() to be consistent with BinaryWriter::writeRaw()
  3145. - added support for uppercase output to HexBinaryEncoder.
  3146. - added MediaType class
  3147. - added QuotedPrintableEncoder and QuotedPrintableDecoder classes
  3148. - renamed ObjectFactory to Instantiator. This should prevent the confusion caused by DynamicFactory and ObjectFactory. Sorry for the inconvenience if you are already using this.
  3149. - AttachmentSource::filename() now returns const string&
  3150. - added StringAttachmentSource
  3151. - replaced old-style C casts with C++ casts in NetworkInterface.cpp
  3152. - MutexImpl (WIN32): replaced InitializeCriticalSection with InitializeCriticalSectionAndSpinCount, which should increase performance on multiprocessor or multicore systems when many locks are used.
  3153. - fixed a problem with STLport 5.0 when compiling StreamTokenizer
  3154. - HTTPStreamOpener now also works with no-path URIs (like http://www.appinf.com)
  3155. - fixed wrong delete usage (plain delete instead of delete [] was used in a few cases)
  3156. - fixed a handle leak in WinTestRunner
  3157. Release 0.95.4 (2005-11-07)
  3158. ===========================
  3159. - fixed #1348006 and #1348005
  3160. Release 0.95.3 (2005-10-28) [internal]
  3161. ======================================
  3162. - updated build scripts (patch #1339015)
  3163. - added support for AMD64 platforms (patch #1339015)
  3164. - MultipartWriter creates its own boundary if an empty string is passed in as boundary
  3165. - made MultipartWriter::createBoundary() public
  3166. - fixed wrong documentation for DateTimeFormat::HTTP_FORMAT
  3167. - added support for HTTP Basic authentication
  3168. - added support for HTTP Cookies
  3169. - added support for HTML forms
  3170. Release 0.95.2 (2005-10-22) [internal]
  3171. ======================================
  3172. - fixed a potential problems with streams when close in destructor fails (added try..catch block around close in destructors)
  3173. - added HTTPServer & friends
  3174. - added hasIdleThreads() method to NotificationQueue
  3175. - added TCPServer and friend
  3176. - added support for HTTP proxies to HTTPClientSession and HTTPStreamOpener
  3177. - fixed documentation bugs (Mutex.h, ClassLoader.h)
  3178. Relesae 0.95.1 (2005-10-15) [internal]
  3179. ======================================
  3180. - Tasks can now throw custom notifications (contributed by Alex Fabijanic)
  3181. - renamed URIFileStreamFactory to FileStreamFactory
  3182. - added a few methods to URI (setPathEtc(), getPathEtc(), getPathAndQuery())
  3183. - added new exception classes
  3184. - fixed some documentation
  3185. - added basic checks when reading a MessageHeader from a stream
  3186. - added HTTP classes (testsuite still incomplete)
  3187. - added MessageHeader, NameValueCollection, MultipartReader and MultipartWriter classes
  3188. - added Timespan::useconds()
  3189. - added ClassLoader::isLibraryLoaded()
  3190. - Socket classes use Timespan::useconds() to fill struct timeval
  3191. - added DatagramSocket, MulticastSocket and NetworkInterface classes
  3192. - added socket classes and related basic stuff
  3193. - added additonal constructor/assign to Timespan- added BasicBufferedBidirectionalStreamBuf
  3194. - fixed a potential MT issue in Base64Decoder
  3195. - code beautifying in [Un]BufferedStreamBuf
  3196. - more improvements to ClassLoader
  3197. - code cleanup and naming convention fixes (changed all *Imp classes to *Impl for consistency)
  3198. Release 0.94.1 (2005-09-30) [internal]
  3199. ======================================
  3200. - added MetaSingleton (based on a contribution by Alex Fabijanic)
  3201. - added ClassLoader::create()
  3202. - added ClassLoader::instance()
  3203. - code clean-ups in FileChannel and related classes
  3204. - added SimpleFileChannel
  3205. - RotateAtTimeStrategy:
  3206. ::getNextRollover() rewritten (buggy)
  3207. - DateTime
  3208. microseconds assert corrected
  3209. asserts in computeGregorian() (except for year - see comment in computeGregorian())
  3210. milliseconds calculation modified in computeGregorian()
  3211. microseconds assigned in computeGregorian()
  3212. normalize() and checkLimit() private functions to correct cases of overflow for milli/microseconds
  3213. - LocalDateTime: added timestamp() method
  3214. - FileChannel:
  3215. added "times" property (used to determine whether to use UTC or local time with RotateAtTimeStrategy)
  3216. ::setProperty() modified (whenever "times" property is set, methods setRotation and setArchive are
  3217. reinvoked to reflect the change)
  3218. - FileChannel: added support for archived file compression and archived file purging
  3219. - FileChannel tests modified
  3220. - FileChannel: put LogFile, RotateStrategy and ArchiveStrategy into their own files
  3221. - Message: added thread id field
  3222. - PatternFormatter: added %I specifier for thread id
  3223. - ThreadPool: PooledThread can be assigned a name
  3224. - TaskManager: task name is reflected in thread name
  3225. - fixed LocalDateTime::operator - (const Timespan&) [#0000004]
  3226. - upon startup all loggers' channels are set to a console channel
  3227. - improved search for application configuration files (see loadConfiguration()).
  3228. - added Glob class (fixes #1249700)
  3229. - upgraded to zlib 1.2.3 (fixes #1261712)
  3230. - added Logger::dump()
  3231. - fixed a wrong condition in Logger::log(const Message&)
  3232. - Path::find() now also works with relative paths in addition to plain file names
  3233. - added Path(const Path&, const Path&) constructor
  3234. - added SharedPtr template
  3235. - added Path::tryParse()
  3236. - SAXParser::parse()/EntityResolverImpl now works for both URIs and local filesystem paths (fixes #1254812)
  3237. Release 0.93.1 (2005-08-01)
  3238. ===========================
  3239. This release contains various new features, improvements and bugfixes:
  3240. - bugfix: UUIDGenerator throws an exception if no connected ethernet adapter can
  3241. be found (and thus no MAC address can be obtained)
  3242. - added UUIDGenerator::createOne() method
  3243. - added error handling to UUID sample application
  3244. - added relational (==, !=, <, <=, >, >=) and arithmetic operators (+, -, +=, -=) to DateTime
  3245. - added LocalDateTime class
  3246. - added support for LocalDateTime to DateTimeParser and DateTimeFormatter
  3247. - added enqueueUrgentNotification() to NotificationQueue
  3248. - added support for timezone specifiers (%z, %Z) to PatternFormatter
  3249. - added [] operator and count() to StringTokenizer
  3250. - added elapsed() and isElapsed() to Timestamp
  3251. - added tzd() to Timezone
  3252. - added WinRegistryKey and WinService classes (Windows only)
  3253. - added index operator and count() to StringTokenizer
  3254. - added day/time-based log rotation (thanks to Alex Fabijanic), minor improvements to DateTimeParser
  3255. - support for Mac OS X 10.4/gcc 4.0.0
  3256. - added NamedMutex and NamedEvent
  3257. - added Process::kill()
  3258. - added NoPermissionException
  3259. - added Task and TaskManager classes
  3260. - added ServerApplication class
  3261. - bugfix: EventLogChannel - _logFile was not properly initialized in one constructor
  3262. - bugfix: File::createDirectories did not work for hierarchies deeper than three
  3263. - added Util::FilesystemConfiguration
  3264. - documented logging policy: log() must open channel if it hasn't been opened yet
  3265. - FileChannel::log() opens channel if necessary
  3266. - the application reference passed to initialize() and reinitialize() is no longer const
  3267. - improved application logging initialization
  3268. - fixed a problem with configuration view and property placeholders
  3269. - fixed Util build configuration for Visual Studio
  3270. - improved application samples
  3271. - fixed documentation for Semaphore class
  3272. Release 0.92.1 (2005-05-09)
  3273. ===========================
  3274. This release introduces the Util library that provides support for
  3275. configuration file parsing (different file formats), command line
  3276. argument processing, logging configuration and a framework for
  3277. command line/server applications.
  3278. There have also been various changes to the Foundation library:
  3279. - a new RefCountedObject class that acts as a base class for
  3280. various classes that use reference counting
  3281. - some missing members have been added to the AutoPtr template
  3282. - various improvements and bugfixes to the Logging framework, as well as
  3283. new LoggingFactory and LoggingRegistry classses, and a NullChannel class
  3284. - the SignalHandler class (Unix platforms only)
  3285. - ObjectFactory and DynamicFactory template classes
  3286. - the Path::find method for searching a file in a list of directories
  3287. - various new Exception classes
  3288. Release 0.91.4 (2005-04-11)
  3289. ===========================
  3290. This is mainly a maintenance release that adds support for QNX Neutrino
  3291. and OpenVMS. There are also minor bugfixes and improvements.
  3292. The Unix build system has been modified to work on QNX Neutrino.
  3293. The OpenVMS build system has been fixed and works now.
  3294. Some missing #include's have been added for QNX Neutrino.
  3295. Foundation/String.h: icompare now supports comparison with const char*;
  3296. the classic C version of isspace() has been used in a few places instead of the
  3297. C++ <locale> version, this has been fixed.
  3298. Foundation/Exception.h: IllegalStateException added.
  3299. Release 0.91.3 (2005-03-19)
  3300. ===========================
  3301. This is a maintenance release that adds support for Solaris/Sun Forte C++.
  3302. No new features have been added.
  3303. An implementation of FPEnvironment for Solaris has been included.
  3304. All stream classes have been modified to work around an initialization
  3305. problem that surfaced with Sun's C++ compiler when using STLport.
  3306. Source-code compatibility with the previous release is not affected. Various
  3307. minor changes, mostly adding missing #include's for Solaris.
  3308. Release 0.91.2 (2005-02-27)
  3309. ===========================
  3310. Minor improvements to the Unix build system. No actual changes in the
  3311. libraries.
  3312. Release 0.91.1 (2005-02-21)
  3313. ===========================
  3314. This is the first public release of the C++ Portable Components.
  3315. The release does not contain all features planned for the later 1.0 release
  3316. (the NET library is missing, for example), but is already quite usable.
  3317. Please refer to the README file for more information and instructions for
  3318. building the libraries.