| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678 |
- This is the changelog file for the POCO C++ Libraries.
- Release 1.13.3 (2024-04-04)
- ===========================
- Summary of Changes:
- This is a bugfix release.
- Security Fixes:
- - GH #4496 Upgrade bundled libexpat to 2.6.2
- Features, Enhancements and Third Party Updates:
- - GH #4488 Add Poco::Util::Timer::idle() method to check if timer has any tasks scheduled
- - GH #3807 DNS.resolve() should not be sorted in HostEntry::removeDuplicates()
- - GH #4515 Upgrade bundled SQLite to 3.45.2
- - PR #4517 Optimize Net module for Android
- Bug Fixes and Improvements:
- - GH #4505 ODBC Unicode wrappers do not check for null length pointers
- - GH #4492 Poco::BasicMemoryStreamBuf is missing seekpos()
- - GH #4486 DateTimeFormat RFC1036 Sunday name is short (should be long)
- - GH #4468 Poco::URI: don't lowercase host part if it's a Unix domain socket
- - GH #4450 Error between Poco::ActiveRecord and Poco::Data::PostgreSQL
- - GH #4435 SecureStreamSocket is not thread-safe
- - GH #4415 SecureSocketImpl::reset shouldn't close socket
- - GH #3857 Thread_POSIX.cpp shouldn't convert thread IDs to long
- - GH #3725 secure socket receiveTimeout throwing after configured timeout * 2
- Release 1.13.2 (2024-02-19)
- ===========================
- Summary of Changes:
- This is a bugfix release.
- Breaking Changes:
- - GH #4378 [Data] Unconditionally includes of SQLParser.h
- Bug fixes and Improvements:
- - GH #4462 Disable SQL parsing by default
- Release 1.13.1 (2024-02-05)
- ===========================
- Summary of Changes:
- This is a bugfix release.
- Features and Enhancements:
- - GH #4367 `SQLite` `FTS5` (full text search)
- - GH #4335 Implement patches that Debian/Ubuntu applies when preparing deb packages
- - GH #4216 Replace C string literals (const char*) with C++ std::string literals for std::string parameters.
- - GH #3890 Get rid of SingletonHolder
- - GH #2450 Why does it take the ThreadPool 10+ seconds to shutdown when there is nothing running.
- - GH #2443 FileChannel doesn't flush to disk on unix until close
- - GH #4437 Add arm cross-compile config and CI
- - PR #4422 enh(File): Linux, macOS: microsecond precision for file times
- - PR #4390 enh(DateTimeParser): option to cleanup input string before parsing (#569)
- Bug Fixes and Improvements:
- - GH #4443 Upgrade libexpat to 2.6.0
- - GH #4425 Unit tests: optional testing of deprecated functionality
- - GH #4421 Multiple calls to initializeSSL/uninitializeSSL cause assert failure during certificate validation
- - GH #4411 NULL pointer: strategy when setting rotation never in FileChannel
- - GH #4404 qnx build error: 'prctl' was not declared in this scope
- - GH #4400 SocketReactor deadlock test intermittently hangs
- - GH #4398 Can not install CppUnit target
- - GH #4393 iOS ARM64 : Invalid access: Can not convert empty value.
- - GH #4392 Environment_WIN32U nodeIdImpl access violation in 1.13.0
- - GH #4375 UUID parser silently ignores too long strings
- - GH #4347 github check job on macOS: testEncryptDecryptGCM occasionally fails
- - GH #4313 Add macos sanitizer CI jobs
- - GH #4019 MSYS2/mingw cmake linking problem
- - GH #4018 cmake MSYS2 compile error for poco/net project
- - GH #3908 JWT token unitest fail with POCO_NO_SOO on vs 2019
- - GH #3650 MailMessage::read() chokes on "Content-disposition"
- - GH #3331 Apple Silicon ARM64 : Invalid access: Can not convert empty value.
- - GH #3213 NetSSL_Win\src\SecureSocketImpl.cpp CertFreeCertificateContext on nullptr
- - GH #661 Automatic Lib Init (NetworkInitializer) is not working on MinGW
- - PR #4427 enh(tests): Ability to enable/disable testing of deprecated functionality
- - PR #4381 fix(Crypto): Compile error if EVP_CIPHER_CTX_init not defined.
- Release 1.13.0 (2023-12-22)
- ===========================
- Highlights:
- - Support for MongoDB 5.1 and newer
- - C++17 is the lowest supported standard
- - Poco::Data SQLParser (experimental, optional at build and runtime)
- Breaking Changes:
- - GH #4305 Remove deprecated `toJSON` functions
- - GH #4304 NumericString conversions inconsistencies
- - GH #4235 Minimum standards: C++17 and C11
- - GH #4230 Poco::Data fixes and improvements
- - GH #3701 SocketReactor: Remove not useful handlers calls
- - GH #569 SyntaxException for DateTimeParser::parse not working
- Features and Enhancements
- - GH #4276 MongoDB default function deleted clang warning
- - GH #4261 Move autoCommit to AbstractSessionImpl
- - GH #4254 MessageHeader: provide original HTTP header values before RFC2047 decoding
- - GH #4249 Separate CI ODBC tests into separate job
- - GH #4217 Protect Reactor stop() and wakeUp() from reentrance
- - GH #4208 Add Unix socket support on windows
- - GH #4206 Improve Data::SessionPool thread safety
- - GH #4205 Data CI Improvements
- - GH #4198 Poco::Data fixes and improvements
- - GH #4183 Return Transaction execution status and error
- - GH #4181 Virtualize ServerApplication::handlePidFile()
- - GH #4160 Allow row count statements in Data::Recordset
- - GH #4148 SQL server stored procedures fail
- - GH #4146 ODBC max field size fails with int
- - GH #4129 make clean and distclean should not trigger dependencies creation
- - GH #4112 Redirect build stderr to a file
- - GH #4107 SQLChannel fixes and improvements
- - GH #4064 Add ProcessRunner and PIDFile
- - GH #4063 pthread_setname_np was not declared in this scope
- - GH #3951 Poco::Data::SessionPool: avoid sessions staying idle too long
- - GH #3833 DynamicStruct::toString() escaping
- - GH #3808 ICMPEventArgs Statistics bugs
- - GH #3740 buildwin.ps1 failed to build x64
- - GH #3713 SocketReactor improvements
- - GH #3710 Thread::trySleep() assertion
- - GH #3703 POSIX Thread::sleep() poor performance
- - GH #3702 SocketReactor: post ErrorNotification on exception
- - GH #3667 NumberFormatter: add Options enum for controlling prefix and lowercase
- - GH #2967 build Poco Net failed MinGW [TIMESTAMP_REQUEST enum vs macro]
- - GH #2770 Support for AF_UNIX on windows in recent windows builds.
- - GH #2707 Trying to Compile with emscripten: Target architecture was not detected as supported by Double-Conversion
- - GH #2578 HTTPClientSession not working with UNIX_LOCAL SocketAddress
- - GH #2403 File::exists() wrong result
- - GH #2331 Improve implementation of logging macros.
- - GH #2282 Add Path::self()
- - GH #1258 Poco::DateTimeParser::tryParse issue
- - GH #3845 Poco::XML::Node `insertAfter` API
- - GH #3659 Add thread name support
- - GH #2291 Visitor Pattern for Dynamic::Var
- - PR #4059 Update ICMPv4PacketImpl.h
- - PR #4021 Fix compile with `-DPOCO_NET_NO_IPv6`
- - PR #3885 Use map from key to count instead of multiset
- - PR #3864 Remove unnecessary dup. of std::string in NumberParser::tryParseFloat
- - PR #3802 ODBC: Fix DataFormatException getting Time value from SQL Server
- - PR #3797 HTTPServer Applications Slow to Terminate #3796
- - PR #3787 fix(Crypto) Update method to extract friendlyName from certificate
- - PR #3705 Fix/posix sleep
- - PR #3664 set thread name
- - PR #3657 Add lower case format for `NumberFormatter`
- - PR #4144 add visitor pattern implementation for Poco::Dynamic::Var
- - PR #3476 add separate accessors and mutators for connect, send and receive tim…
- Bug fixes and Improvements:
- - GH #4328 Environment::nodeId Should Throw SystemException When Node ID is 0
- - GH #4311 Canceled `Task` shouldn't start running
- - GH #4310 `ActiveThread` data race
- - GH #4309 `ArchiveStrategy` data race
- - GH #4308 `DirectoryWatcher` data race
- - GH #4307 `NotificationCenter` data race
- - GH #4274 Remove VS 140, 150 Projects
- - GH #4259 Progen uses wrong AdditionalOptions separator
- - GH #4252 SecureSocketImpl::currentSession() always return null
- - GH #4244 Poco::Data::PostgreSQL::SessionHandle::setAutoCommit(bool) should not call commit() or startTransaction()
- - GH #4241 Poco::FileInputStream broken in 1.12.5 and 1.11.8.
- - GH #4231 Poco::Data::PostgreSQL::SessionHandle::disconnect() leaks memory for failed connections
- - GH #4207 VS170 binary names mismatch on ARM
- - GH #4187 Sync 1.11.-1.12-devel(1.13)
- - GH #4109 Skip reset for null Binder
- - GH #4106 ODBC Binder does not retrieve proper type precision
- - GH #4093 PostgreSQL get sqlcode
- - GH #4028 Incompatibility with gcc 13.1
- - GH #3923 UDP Multicast : `leaveGroup()` method always throw an exception
- - GH #3835 DynamicStruct::toString not wrapping empty strings
- - GH #3823 Possibility of memory leak in Windows Environment nodeIdImpl?
- - GH #3812 Poco::Data::Session::reconnect throw Connection in use
- - GH #3704 TaskManager waits for all threads in the ThreadPool
- - GH #3557 HTTPSClientSession read infinite loop on IOS
- - GH #3484 Poco::MongoDB support for MongoDB 5.0?
- - GH #3331 Apple Silicon ARM64 : Invalid access: Can not convert empty value.
- - GH #3277 Use sendfile system call on Linux in HTTPServerResponseImpl::sendFile
- - GH #3165 Can't reuse Poco::Data::Statement with a new set of bindings
- - GH #2978 waitForTermination is unreliable on Linux.
- - GH #2976 SharedMemoryImpl x64 size error
- - GH #2965 Net fails to build with MinGW 9.20
- - GH #2634 Data race in Poco::Net::HTTPServerConnection::onServerStopped
- - GH #2366 Poco::Process::launch (UNIX) - possible memory leak when launching invalid command
- - GH #2332 Optimize multi-arg logger methods to only call format() if log level allows
- - PR #4353 Fix some issues found with clang-tidy
- - PR #4345 [email protected]
- - PR #4339 Fix RemoteSyslogChannel setProperty value check
- - PR #4333 enh(NumberFormatter): Introduce backward compatible options for formatHex functions
- - PR #4321 Github Action for Android NDK
- - PR #4319 Implementation of Path::self()
- - PR #4317 enh(ci): Add ENABLE_COMPILER_WARNINGS to cmake
- - PR #4306 3102 json lowercase hex
- - PR #4275 fix(NetSSL_Win): Error during handshake: failed to read data
- - PR #4270 SplitterChannel addChannel - Prevent Duplicate Channels
- - PR #4256 Implement MySQL::SessionHandle::startTransaction as submitting the SQL statement 'BEGIN'
- - PR #4223 Virtualize ServerApplication::handlePidFile()
- - PR #4211 Improve FifoEvent, ActiveMethod, ActiveResult
- - PR #4200 fixed infinite loops
- - PR #4199 fix(Poco::Data): fixes and improvements #4198
- - PR #4190 CMake: Use CMAKE_INSTALL_* variables from GNUInstallDirs
- - PR #4156 Allow passing raw fd's into ServerSocket
- - PR #4138 add missing check when activerecord is enabled
- - PR #4137 Fix platform when building for iPhoneSimulator
- - PR #4103 Fix openssl session resumption, FTPS certificate validation vs hostname
- - PR #4099 added new memeber SqlState to PostgreSQLException and made use of it.
- - PR #4068 AutoPtr: do 'duplicate' before 'release'
- - PR #4061 Adding API XML::AbstractContainerNode::insertAfterNP()
- - PR #4025 EVPPKey constructor for modulus/exponent
- - PR #4022 Make Binding and CopyBinding specializations final
- - PR #4020 MongoDB: add missing name accessor to get database name.
- - PR #4007 add sendfile method for streamsocket
- - PR #4004 Mongodb op msg database commands fix
- - PR #3989 Fix thread compilation issues on FreeBSD
- - PR #3976 fix(devel): add missing 1.11 releases commits
- - PR #3954 Complimentary to #3918 (std::*mutex wrapper)
- - PR #3946 Add GNU Hurd support
- - PR #3939 Solaris.build fix #3843 and #3643
- - PR #3932 Cross-compiling with ming32-w64 on Linux #3815
- - PR #3929 Fix multicast leave group
- - PR #3863 testDynamicStructEmptyString always failed
- - PR #3861 Do not incur insane stack limit in Foundation-ThreadPool test.
- - PR #3860 Fix Aix Build
- - PR #3842 hasMicrosecond is undefined
- - PR #3821 chore(Net): correct spelling, remove some unused codes fix(SocketProactor): missing adding sock to read pollset fix(DialogServer): _lastCommands data race
- - PR #3810 Custom rotate, archive and purge strategies for FileChannel
- - PR #3749 buildwin.ps1 script error building the x64 version of Poco
- - PR #3502 Add ODBC DirectExec public API
- - PR #3102 Made it possible to use lowercase hex numbers, also when encoding JSON
- - PR #3009 switching iPhoneSimulator arch to 64 bit
- Release 1.12.5p2 (2023-12-04)
- =============================
- - GH #4320: Integer overflow in Poco::UTF32Encoding
- Release 1.12.5p1 (2023-11-02)
- =============================
- - GH #4241: Poco::FileInputStream broken in 1.12.5 and 1.11.8
- Release 1.12.5 (2023-10-25)
- ===========================
- - GH #4219 Make POSIX event thread safe
- - GH #4215 Remove SocketReactor dependency on Poco::Thread for sleeping
- - GH #4197 ODBC::Binder UUID new/free mismatch
- - GH #4194 PollSet filters out some events
- - GH #4189 Use after free warnings
- - GH #4180 receiveResponse() may not return response body stream
- - GH #4177 Upgrade bundled pcre2 to 10.42
- - GH #4147 missing \r\n when setting trailer header in chunked response
- - GH #4134 Initialisation of _socketIndex in SSLManager (OpenSSL)
- - GH #3867 Add options to disable STDIO in child process
- - GH #3832 pthread_getname_np' was not declared in this scope
- - GH #3786 FileChannel::setRotation overflow
- - GH #2776 Shutdown TLS1.3 connection
- - GH #4176 PCRE2 10.40 version has security vulnerabilities(CVE-2022-41409), when is the plan to fix it third-party
- - GH #4150 Use Poco format instead of sprintf in Util
- - GH #4116 Logging should evaluate only if the logging level is active
- - GH #4071 PageCompiler: add referrerPolicy to page directive feature
- - GH #4057 ODBC: SQL Anywhere Support
- - GH #4031 Classes with virtual functions missing virtual destructors (compilation issues)
- - GH #4023 CPPParser: Losing data if parameter std::function<void(bool)> is used
- - GH #4014 wrong string offset in HTTPCredentials::isNTLMCredentials
- - GH #4005 On UNIX platform, Poco::Path::getExtension() returns name of the hidden file if no extension is present
- - GH #3986 Fix dead lock on Timer destructor
- - GH #3968 Poco::Net::SocketConnector constructor should take SocketAddress by const reference
- - GH #3935 The extractor in postgresql drops milliseconds
- - GH #3926 CppParser throws exception when return value is specified to be in global namespace
- - GH #3921 Deadlock in Timer when one sync and one async cancel requests are issued
- - GH #3918 Static FastMutex fails to lock when issued from another thread on linux
- - GH #3880 NetSSL_OpenSSL: Support session resumption with TLSv1.3
- - GH #3876 Replace sprintf with snprintf in Environment and NumberFormatter to avoid deprecation warnings
- - GH #3859 zlib headers not updated
- - GH #3806 HTTPClientSession::receiveResponse() gives NoMessage instead of Timeout exception for SSL connection on Windows when using OpenSSL 3.0.x
- - GH #3723 DateTimeFormatter creates invalid ISO8601 string
- - GH #3147 Reading from request stream hangs when "Transfer-Encoding: chunked" is used
- - GH #4218 Upgrade double-conversion to 3.3.0
- - PR #4210 Fix pthread_setname not declared
- - PR #4072 optimize checkUpperLimit and checkLowerLimit in VarHolder.h enhancement
- - PR #4050 rename arc -> poco_arc
- - PR #4038 Fixed Poco::format specifier for error code bug platform_specific
- - PR #4011 fix #4005 Poco::Path::getExtension()
- - PR #3999 Fix hang in destructor
- - PR #3992 Fix thread counter leak
- - PR #3987 Fix dead lock on Timer destructor
- - PR #3971 Fix error handling with OpenSSL 3.0 in SecureSocketImpl.cpp (fixes #3806)
- - PR #3943 Fix build for QNX platform_specific
- - PR #3942 Fix data race when create POSIX thread
- - PR #3912 Fixed compile error for OpenSSL 1.0 systems (#3739)
- - PR #3883 Added system_error header to SockerProactor for std::error_code
- - PR #3855 Fix epollfd validity checks when compiling with wepoll
- - PR #3809 improve Windows OpenSSL 3.0.x error handling #3806
- - PR #3769 Fixed converting/correcting pre-gregorian dates (#3723)
- Release 1.12.4 (2022-10-31)
- ===========================
- - GH #3849: Upgrade bundled libexpat to 2.5.0 [fixes CVE]
- - GH #3852: SocketReactor - 100 % CPU usage on single-core system
- Release 1.12.3 (2022-10-24)
- ===========================
- - GH #3682: Including Any.h causes Compiler error on Visual Studio
- - GH #3683: Poco::format receives empty Vector<Any>
- - GH #3692: v1.12.0 and v1.12.1 Poco::Any compile problem
- - GH #3723: DateTimeFormatter creates invalid ISO8601 string
- - GH #3737: Poco EventImpl for Win32 breaks INFINITE wait
- - GH #3744: bindImplLOB zero size (or NULL) HY104 "Invalid precision value"
- - GH #3748: Poco 1.12.2 - Building DataMySQL still fails (issue #3689)
- - GH #3753: Fix optional JSON support for MySQL
- - GH #3763: Poco::Util::Application VxWorks main is incorrect
- - GH #3769: Fixed converting/correcting pre-gregorian dates (#3723).
- - GH #3795: aix system NumberFormatter.cpp build error
- - GH #3805: Upgrade expat to 2.4.9
- - GH #3814: Security Vulnerability identified in POCO version 1.12.2
- - GH #3825: VS 2022 Net project missing ARM64 config
- - GH #3834: SocketImpl::available()
- - GH #3846: Upgrade bundled zlib to 1.2.13 [fixes CVE]
- - GH #3847: Upgrade bundled SQLite to 3.39.4
- Release 1.12.2 (2022-08-08)
- ===========================
- - GH #3460 fix(Platform): LoongArch support
- - GH #3688 Linking Crypto-testrunner fails
- - GH #3693 VS2022 compilation issues
- - GH #3698 SIGABRT in OSSL_PROVIDER_unload with static OpenSSL3
- - GH #3699 POSIX Event state need not be atomic
- - GH #3700 Release script must include build_vs170.cmd
- - GH #3708 wakeup fd is never read
- - GH #3711 lowercase winsock2 and iphlpapi to allow cross compile
- - GH #3716 Compiling with clang_cl_x64_x64 on Visual Studio 2022 failed
- - GH #3717 Only support extracting JSON fields when the SDK supports it
- - GH #3719 PocoNet Project File does not support Visual Studio 2022
- - GH #3720 Update max MSVC version information
- - GH #3721 fails to build with Visual Studio projects
- - GH #3722 Added missing Crypto Header to ProGen source
- - GH #3724 Crypto: Progen again to add new files and bring back ARM64 configuration
- - GH #3727 Add how to install using Conan section on README
- - GH #3733 Poco::format and C++20
- - GH #3734 g++ C++20 warnings
- Release 1.12.1 (2022-07-18)
- ===========================
- - GH #3677 PocoFoundationConfig.cmake should now check for PCRE2
- - GH #3686 SIGSEGV in OSSL_PROVIDER_unload with static OpenSSL3
- Release 1.12.0 (2022-07-08)
- ===========================
- - This release introduces Prometheus library
- - Upgraded bundled PCRE to PCRE2 10.40
- - Small object optimization for Any and Dynamic::Var (compile-time option, enabled by default)
- - All swap operations are noexcept now
- - PollSet::add() is mode-cumulative now
- - UDPServer now requires explicit starting
- - Move semantics for sockets and SocketAddress (compile-time option, disabled by default)
- - GH #709: Poco::Dynamic::Var memory leak
- - GH #1039 Race condition in AsyncChannel close/log
- - GH #1459 Fix Socket::select() epoll and poll implementations
- - GH #1687 SQLite Notifier has no table information
- - GH #1884 TCPServerDispatcher::run() issue
- - GH #2084 LogFile_STD (LogFileImpl) fails to recover from getting out of space
- - GH #2085 Crash due to race condition in TCPServerDispatcher
- - GH #2091 Integrate windows poll
- - GH #2222 Warning when compiling my that's use VarHolder
- - GH #2270 HTTPClientSession not supporting binding source address for proxy connect
- - GH #2271 HTTPClientSession source IP address
- - GH #2285 SQLite::Connector::open() crashes on db file with non existing directory
- - GH #2287 Poco::Data::Statement becomes unusable after exception
- - GH #2352 Allow setting the socket of SecureSocketImpl to no-blocking
- - GH #2386 As of C++11, std::swap is noexcept
- - GH #2401 Net::MailMessage::read hangs on missing final multipart boundary
- - GH #2457 Poco::Redis after executing "auth" command next command always return "OK"
- - GH #2465 Operating system specific thread ID is not available any more in Logger/Formatter
- - GH #2470 Can't use Poco::MongoDB::Cursor on aggregation cursor
- - GH #2511 Negative precision in NumberFormatter::format()
- - GH #2513 Poco::Net::SocketConnector unregistering
- - GH #2516 SHA3Engine hard to use with HMACEngine duplicate enhancement
- - GH #2521 MySQL Extractor null value extraction
- - GH #2538 Poco::Data::Session::connector() returns empty string for MySQL session
- - GH #2569 MySQL timestamp
- - GH #2576 Add std::chrono support to Timespan
- - GH #2590 Zip 64-bit extensions not set
- - GH #2614 NTPClient ignores second fractions enhancement
- - GH #2619 Decoding URI query parameters incompatible with Spring 5
- - GH #2638 Upgrade Windows SDK Used for Building Poco
- - GH #2688 Static code analyzer warnings
- - GH #2691 MinGW: fatal error: kernelspecs.h: No such file
- - GH #2706 [windows bug] pollset WSAPoll with non blocking socket will not report error
- - GH #2755 MySQL LONGTEXT
- - GH #2821 Poco::Buffer: full on creation
- - GH #2849 setPadding does nothing when OpenSSL 1.1.x is used
- - GH #2864 SessionImpl begin
- - GH #2940 Add vcpkg installation instructions
- - GH #2943 Avoid clang 10 -Wimplicit-int-float-conversion warning/error when converting int into float
- - GH #2959 Fix percent-encoded fragment modification in Poco::URI
- - GH #2980 Memory leaks in Poco::Any
- - GH #2986 Once exhausted, Poco::ObjectPool does not lend out returned objects
- - GH #3016 MongoDB::Array interface improvements
- - GH #3026 HTTPDigestCredentials added support for RFC7616 algorithms
- - GH #3039 Poco errors with _DEBUG and NDEBUG
- - GH #3052 Fix constness of URI::getPathSegments
- - GH #3088 Fix error in find_package example
- - GH #3056 Inconsistent behavior ConsoleChannel vs. WindowsConsoleChannel
- - GH #3062 Makefile: space(s) following target name will break build (during link)
- - GH #3073 libPocoCrypto.so: undefined reference to `pthread_atfork' when linking statically with OpenSSL 1.1
- - GH #3104 Publicly expose Poco::Message parameters
- - GH #3105 CMake: use GNUInstallDirs
- - GH #3175 SharedLibrary::isLoaded() not thread safe
- - GH #3195 MinGW also defines __GNUC__
- - GH #3240 Task::postNotification possible leak
- - GH #3241 Poco::Data::SessionPool change connection timeout
- - GH #3251 JSON Serializing NAN
- - GH #3253 Arbitrary indent of 2 applied to JSON string objects Var conversion
- - GH #3261 Upgrade to PCRE2 latest version
- - GH #3283 DatagramSocket does not allow IPV6_V6ONLY
- - GH #3296 Add move semantics to Net (sockets and addresses)
- - GH #3297 Poco Foundation Fails to Compile With POCO_ENABLE_SOO Defined
- - GH #3323 Extend format patterns %T and %I to support native threads
- - GH #3342 DB into() does not compile for more than 20 members in a tuple
- - GH #3357 Add socket proactor
- - GH #3359 Make PollSet::poll() interruptible
- - GH #3371 SocketReactor::getNotifier() does not use socket.impl()
- - GH #3372 FTPClientSession::activeDataConnection 1.11.0 cannot set specific data port
- - GH #3374 No access to padding in Cipher
- - GH #3375 PollSet::SocketModeMap poll(const Poco::Timespan& timeout) hasSignaledFDs issue slow down connections
- - GH #3378 PollSet function setMode 1.11.0 cause while(1) on windows
- - GH #3380 Windows SO_REUSEADDR is neither reliable nor safe
- - GH #3384 Always set thread names on POSIX platforms
- - GH #3385 IPAddress::tryParse does not work for "::"
- - GH #3396 Poco::Data::ODBC - dbEncoding property not used for insert/update
- - GH #3399 IPAddress::isLoopback() returns false for IPv4 mapped in IPv6
- - GH #3404 Net: make MessageHeader limits configurable
- - GH #3415 OpenSSL 3.0 support
- - GH #3417 Calling SocketReactor's run() method in a program's main thread yields a lot of null pointer exceptions
- - GH #3421 Cannot use HMACEngine with SHA2Engine
- - GH #3452 Syslog: Include Facility to Syslog Message
- - GH #3453 added facility to SyslogChannel
- - GH #3460 LoongArch support
- - GH #3481 JSON DataType support for MySQL
- - GH #3482 Visual Studio 2022 (v170) missing from buildwin.cmd
- - GH #3486 Windows on ARM64 support
- - GH #3516 Fix OpenSSL 3.0 deprecated warnings
- - GH #3529 Added LocalConfigurationView to only search inside the viewed scope
- - GH #3543 Visual Studio Warning C4244
- - GH #3558 Race condition in SSLManager
- - GH #3561 Add envelope to crypto
- - GH #3569 Readded named substring support for regexes
- - GH #3580 Rounds very large negative numbers to the incorrect values
- - GH #3592 Add 425 / HTTP_TOO_EARLY to HTTPResponse::HTTPStatus
- - GH #3598 Socket::available does not always return correct value for UDP
- - GH #3602 Add Data::JSONRowFormatter
- - GH #3603 Update minimum GCC version information
- - GH #3611 VS2022 Arm64 projects missing or do not load
- - GH #3613 UDPHandler data race
- - GH #3620 MariaDB still uses tx_isolation for transaction isolation unlike MySQL 8+ which uses transaction_isolation
- - GH #3624 Upgrade double-conversion to v3.2.0
- - GH #3628 PollSet data race
- - GH #3629 Event data race
- - GH #3633 Redis: Support Authentication
- - GH #3635 ConfigurationView and JSON is broken for array access
- - GH #3639 Bugcheck: indicate compiler that functions will never return
- - GH #3640 fix warning C4717: 'format<vector<any>': recursive on all control paths, function will cause runtime stack overflow
- - GH #3641 FifoBuffer.advance method not throw exception when length==0
- - GH #3642 Make ParallelSocketReactor thread namable
- - GH #3651 TCPserver missing from Net/samples/CMakeLists.txt
- - GH #3652 Linking with Foundation on Android gives error
- - GH #3655 Socket::select EPOLL implementation returns socket in exceptList when empty list is given
- - GH #3658 Support for chunked transfer encoding trailer
- - GH #3661 PollSet::add()/update() semantics
- - GH #3665 MSVC does not properly recognize std version
- Release 1.11.8p2 (2023-12-04)
- =============================
- - GH #4320: Integer overflow in Poco::UTF32Encoding
- Release 1.11.8p1 (2023-11-02)
- =============================
- - GH #4241: Poco::FileInputStream broken in 1.12.5 and 1.11.8
- Release 1.11.8 (2023-10-18)
- ===========================
- - GH #1372: Possible deadlock in SessionPool
- - GH #4170: Poco::FileStream is always opened with std::ios::in | std::ios::out bug
- - GH #4169: Upgrade bundled zlib to 1.3.
- - GH #4171: Upgrade bundled sqlite to 3.43.1
- - GH #4162: [Bug] class KeylessActiveRecord is missing export macro
- - GH #4164: [Bug] SharedLibraryImpl::loadImpl uses an incorrect format specifier
- - GH #4173: AbstractConfiguration: when expanding property references, allow specifying a default value
- - GH #4174: AbstractConfiguration: support Int16/UInt16 and Int32/UInt32
- - GH #4182: Util: Make load()/save()/clear() operations on configurations thread-safe
- - GH #4184: Poco::TemporaryFile: make filenames less predictable
- - GH #4195: Poco::File::created() on macOS should use birthtime
- Release 1.11.7 (2023-07-11)
- ===========================
- - GH #4023: CPPParser: Losing data if parameter std::function<void(bool)> is used
- - GH #4031: Classes with virtual functions missing virtual destructors (compilation issues)
- - GH #4014: wrong string offset in HTTPCredentials::isNTLMCredentials
- - GH #4071: PageCompiler: add referrerPolicy to page directive
- - GH #4077: OpenSSL 3: Don't throw if legacy provider is not available
- - GH #4078: Upgrade bundled SQLite to 3.42
- - GH #4079: SocketConnector: constructor should take SocketAddress by const reference
- - GH #4082: Logger performance improvement with formatting
- Release 1.11.6 (2022-12-08)
- ===========================
- - GH #3147: Reading from request stream hangs when "Transfer-Encoding: chunked" is used
- - GH #3859: zlib headers not updated
- - GH #3876: Replace sprintf with snprintf in Environment and NumberFormatter to avoid deprecation warnings
- - Build system improvements for Xcode on Apple Silicon.
- - Upgrade bundled SQLite to 3.40.0
- Release 1.11.5 (2022-10-31)
- ===========================
- - GH #3849: Upgrade bundled libexpat to 2.5.0 [fixes CVE]
- Release 1.11.4 (2022-10-24)
- ===========================
- - GH #3805: Upgrade expat to 2.4.9
- - GH #3846: Upgrade bundled zlib to 1.2.13 [fixes CVE]
- - GH #3847: Upgrade bundled SQLite to 3.39.4
- Release 1.11.3 (2022-06-12)
- ===========================
- - GH #3567: fix(openssl-initializer): check legacy provider existence for legacy exception
- - GH #3587: MySQL UUID binding temporary string
- - GH #3632: Redis - add TLS support
- - updated a few copyright dates
- Release 1.11.2 (2022-04-16)
- ===========================
- - GH #2882: Handle negative DST offset
- - GH #3268: Poco redis command set have a bug when you want to set nx ex or expireTime
- - GH #3338: NamedMutex does not work on Linux distributions where fs.protected_regular=1
- - GH #3448: Basic support for OpenSSL 3.0.0
- - GH #3458: encryptString() crash on redhat/centos 8 with FIPS enabled using md5 default digest
- - GH #3465: NetSSL_Win: bad error handling when decodeMessage() fails
- - GH #3466: DefinePlatformSpecific.cmake: handle RelWithDebInfo and MinSizeRel configurations
- - GH #3470: bug in JSON ParseHandler.cpp (RFC 7159 should be valid)
- - GH #3472: Add Windows 11 detection to Environment_WIN32U
- - GH #3483: Adds Windows 11 and Server 2022 to Environment::osDisplayName()
- - GH #3485: Adds Visual Studio 2022 (v170) to buildwin.cmd
- - GH #3495: Should the Array::operator[] throw?
- - GH #3500: Sandbox all iFrames in PocoDoc
- - GH #3504: OpenSSL 3 compatibility
- - GH #3505: JSON::PrintHandler.value(bool) prints incorrect value
- - GH #3507: Reference counting for bound configuration in Util::Option is broken
- - GH #3508: #3507: Fix bound configuration reference counting in Poco::Util::Option.
- - GH #3509: fix dst and utcOffset handling for Dublin time zone
- - GH #3515: NetSSL_OpenSSL Testsuite: testInterop() and testProxy() fail due to changed certificate
- - GH #3518: Expat version check in #defines incorrect.
- - GH #3519: Add convertation to string in Redis Command#set
- - GH #3524: [linux] Why is Poco::XML linked to Poco::Zip target?
- - GH #3525: Bad management of file in case of OpenSSLException in X509Certificate::readPEM and X509Certificate::writePEM
- - GH #3538: Upgrade bundled expat to 2.4.7
- - GH #3544: Add back NIOS2 double conversion detection to fix compile errors
- - GH #3549: Test against the correct signatures in the JWT ES384 and ES512 tests
- - GH #3553: Upgrade bundled zlib to 1.2.12
- - GH #3559: Poco::Data::PostgreSQL - DateTime extraction truncates fractional seconds
- - GH #3563: Remove support for OpenSSL < 1.0
- Release 1.11.1 (2021-11-05)
- ===========================
- - Upgraded bundled PCRE to 8.45
- - Upgraded bundled SQLite to 3.36.0
- - GH #2823: error: implicit conversion from 'int' to 'float' changes value from 2147483647 to 2147483648
- - GH #2966: SocketReactor loads one core of CPU up to 100%
- - GH #3221: Crash reported on Windows in X509Certificate verification
- - GH #3330: Poco::Data::ODBC::ODBCStatementImpl causes crash
- - GH #3334: Fork error on tvOS and watchOS
- - GH #3335: XML error when build 1.11.0
- - GH #3344: [bug] MacOS bundle destination path is not set
- - GH #3345: fix cmake bundle
- - GH #3347: The definition POCO_NO_FORK_EXEC is not respected or something like this
- - GH #3353: fix fork option
- - GH #3360: Add POCO_PGSQL_{INCLUDE,LIB} variables
- - GH #3363: Fixed compilation error with MongoDB::Connection and Util::Application
- - GH #3377: Updates comments for windows
- - GH #3381: DNS::hostByAddress not thread-safe
- - GH #3397: Fix crash due to X.509 certificates with Subject Alternative Name other than DNS Host
- - GH #3400: fix std::localtime not thread safe
- - GH #3414: fix missing expat definition
- - GH #3425: Fixed suspend/resumeEvents pair in DirectoryWatcher
- Release 1.11.0 (2021-06-28)
- ===========================
- - This release introduces ActiveRecord, a simple and lightweight object-relational mapping
- (ORM) framework based on the Active Record pattern and the Data library.
- - Upgraded bundled expat to 2.4.1
- - Upgraded bundled PCRE to 8.44
- - Upgraded bundled pdjson to latest master
- - Upgraded bundled SQLite to 3.35.5
- - GH #2205: Start POCO as Windows service with parameters fix #2190
- - GH #2418: SecureServerSocket doesn't work with IpV6
- - GH #2677: Fix CLOB type support in StatementImpl and RecordSet
- - GH #2746: Race in TCPServerDispatcher::stop
- - GH #2783: Invalid condition [ICMPv4PacketImpl.cpp:234]
- - GH #2825: riscv: Enable double operations when using double float abi
- - GH #2895: Settings to verify OCSP stapling response (if received any) for client connections
- - GH #2904: Support environments without hardware floating point
- - GH #2906: Support environments without hardware floating point
- - GH #2927: Fix assigned value to wrong pointer
- - GH #2928: Fix clang issue
- - GH #2929: Zip and SevenZip do not depend on Util, XML, JSON
- - GH #2932: Poco::Net::NTLMContext is missing dllexport/dllimport symbols
- - GH #2935: Configuration to receive OCSP stapling response for client connection…
- - GH #2942: Avoid clang 10 -Wimplicit-int-float-conversion warning/error when con…
- - GH #2945: Iterating over Var containing empty container throws "Out of range" exception
- - GH #2970: Poco::Data::TypeHandler<Poco::Nullable<T>>::prepare() must prepare with underlying type, not Poco::Data::Keywords::null
- - GH #2982: Poco::Net - return value from close needs to be checked in SocketImpl
- - GH #2984: Fixed linking with Data ODBC error on some platforms
- - GH #2989: setting priorityNames property on PatternFormatter has no effect
- - GH #2992: CryptoTransformImpl::setPadding(int padding) incorrect for OpenSSL >= 1.1
- - GH #2993: The Sec-WebSocket-Key of WebSocket is always the same one
- - GH #3019: ObjectPool wait on borrow condition fix
- - GH #3021: PatternFormatter priorityNames fix
- - GH #3022: Process::isRunning(PID pid) causes handle leak on Windows
- - GH #3023: Link to "discussion forums" on "How to get help" advice broken
- - GH #3025: PKCS12Container: fix memory leaks on exceptions (1.10.1)
- - GH #3027: PKCS12Container: fix memory leaks on exceptions (devel)
- - GH #3037: Poco::toJSON: Don't escape forward slash in JSON strings
- - GH #3041: PostgreSQL and TEXT column type
- - GH #3044: Upgrading PCRE to 8.44 is it in immediate plan?
- - GH #3045: PostgreSQL and BYTEA column type
- - GH #3057: Poco::Data::PostgreSQL::SessionImpl::connectorName() returns empty string
- - GH #3059: MessageHeader::splitParameters fails on 'httponly' cookie with 'string too long' exception
- - GH #3061: SocketImpl::bind --> bind wrong config
- - GH #3064: PostgreSQL: Extraction of 16-bit integers corrupts result
- - GH #3066: CMake warning about MYSQL casing
- - GH #3067: Fix pkg-name in find_package_handle_standard_args
- - GH #3068: Documented ENABLE_JWT option
- - GH #3074: Fix sessions may not return back to the pool
- - GH #3076: Avoid access to already freed memory in JSON code
- - GH #3078: Fix typo in the ThreadPool's docs
- - GH #3086: Use POCO_IOS_INIT_HACK for Linux in combination with libc++
- - GH #3089: HTTPSessionFactory does not support HTTPClientSession::ProxyConfig
- - GH #3090: Do not initialize value with undefined behavior
- - GH #3091: feat(SharedLibrary): add more detailed error description when LoadLib…
- - GH #3092: feat(SharedLibrary): add more detailed error description when LoadLib…
- - GH #3095: Digest proxy authentication does not work in 1.10.1
- - GH #3097: Support for building Arm64 Apple Silicon
- - GH #3099: Fixed Postgres extraction into Dynamic::Var
- - GH #3107: unused variable
- - GH #3114: Added JSON Array::empty() method
- - GH #3116: Changed EventHandlerMap key
- - GH #3130: Possible use-after-free bug on the method copyToImpl
- - GH #3133: POCO_STATIC has been deprecated
- - GH #3135: Poco::Data::SQLite::Utility::fileToMemory unsuccessful if journal exists
- - GH #3136: Fixed null character issue when parsing a JSON
- - GH #3138: Add support of arch riscv32
- - GH #3141: allow to handle hot-journal (fixes #3135)
- - GH #3151: fix(JSON::Object): crash when a key is removed from object with JSON_PRESERVE_KEY_ORDER
- - GH #3153: Poco::Data::ODBC [N]VARCHAR(MAX) wrong maxDataSize() result
- - GH #3155: Fixed typo in overridden
- - GH #3157: fix(openssl): add missing dependency to OpenSSL components
- - GH #3159: Bug in NumericString with decSep != '.'
- - GH #3163: Correct Var::parse null value
- - GH #3166: Fix PostgresSQL BLOB extractor
- - GH #3168: Reference documentation contains invalid links.
- - GH #3169: #2746: Fix race condition on TCPServerDispatcher stop
- - GH #3182: Poco::Process:launch on MacOS BigSur
- - GH #3183: fix setPadding
- - GH #3190: [NetSSL_Win]: SSL-connection fails with "Host name verification failed error" (Regression bug)
- - GH #3191: Fixing a bug in the NetSSL_Win module (Host name verification failed error)
- - GH #3193: ServerApplication::registerService() unquoted path security vulnerability
- - GH #3196: std::forward for Poco::Optional ctor with rvalue
- - GH #3202: JWT: ESxxx signature must include padding for ECDSA R and S values
- - GH #3204: CryptoTransformImpl::setPadding wrong call
- - GH #3215: XML parser returns item from different element in a array
- - GH #3217: CMake: warning message with -DPOCO_STATIC confusing
- - GH #3219: SMTPClientSession: invalid SMTP command if empty recipients list in MailMessage
- - GH #3223: Compilation failure since OpenSSL (alpha 13)
- - GH #3224: Remove SSL23 support from Poco/Crypto
- - GH #3229: Upgrade bundled expat to 2.3.0
- - GH #3230: ECDSADigestEngine: include missing header
- - GH #3233: Feat/hash range
- - GH #3237: An error in the documentation for Poco/JSON/Parser.h
- - GH #3239: XML parser returns item from different element in a array #3215
- - GH #3242: RemoteSyslogListener: add reusePort option
- - GH #3245: find_package(Poco REQUIRED COMPONENTS ... NetSSL) requires an aditional find_package(OpenSSL) since poco-10
- - GH #3248: PollSet not working as intended on Windows
- - GH #3249: PollSet - poll() timeout not properly used
- - GH #3250: fix(PollSet): #3248 #3249
- - GH #3260: Memory leak in EVPPKey::loadKey used with files & wrong password
- - GH #3266: Order of Util::Application::uninitialize() is not in reverse as documented
- - GH #3269: Poco::Net::Context initialization with empty certificateFile
- - GH #3274: Fix localtime_r for VxWorks 6.9 and later
- - GH #3278: Fixing no hardware floating point support - Part II
- - GH #3279: Update bundled expat to 2.4.0
- - GH #3282: Update constant in setContentType documentation
- - GH #3284: JSON Fuzzing: Undefined-shift in poco_double_conversion::DiyFpStrtod
- - GH #3285: JSON Fuzzing: Stack-overflow in Poco::JSON::ParserImpl::handle
- - GH #3291: JSON Fuzzing: Stack-overflow with empty stacktrace
- - GH #3292: JSON Fuzzing: Stack-overflow in Poco::JSON::Array::~Array
- - GH #3295: A variation on Issue 949 comes back to life?
- - GH #3299: NetSSL: Allow per-Context InvalidCertificateHandler
- - GH #3301: Unterminated string possible in NetworkInterfaceImpl::setPhyParams()
- - GH #3302: MSVC: Poco hides warnings (C4996) for the C++14 attribute [[deprecated]]
- - GH #3303: DNS HostEntry returns multiple entries
- - GH #3307: Poco::Crypto::X509Certificate: obtain certificate fingerprint
- - GH #3309: JSON parser copies entire JSON document to memory when parsing from stream.
- - GH #3310: Upgrade bundled SQLite to 3.35.5.
- - GH #3313: Upgrade bundled double-conversion
- - GH #3314: NetSSL_OpenSSL: any.pem certificate error: ca md too weak
- - GH #3315: Unintended sign/type conversion out of RecordSet
- - GH #3317: Data::MySQL MySQL headers and library search paths
- - GH #3318: Data: Support Poco::UUID for data binding
- - GH #3321: Feat/data db encoding
- - GH #3322: why is useless MyStruct present in Thread_posix.cpp :: ThreadImpl::setPriorityImpl (easy to fix I guess)
- - GH #3326: [asan] Undefined behavior in ICMPv4PacketImpl.cpp
- Release 1.10.1 (2020-02-10)
- ===========================
- - Upgraded bundled SQLite to version 3.31.1.
- - GH #2894: Poco 1.10.0 doesn't build with cmake & POCO_UNBUNDLED
- - GH #2898: poco 1.10/ NetSSL / openssl < 1.1 : default server usage changed (compare to 1.9.4)
- - GH #2834: Wrong cancelation of the fix: incorrect type of store name parameter in
- CertOpenStore API call into NetSSL_Win. Release 1.10.0
- - GH #2791: allow pre-allocation of the buffer in Poco::LogStreamBuf.
- - GH #2816: Modernise TLS configuration
- - GH #2818: Add getSpecifiedPort() method in Poco::URI.
- - GH #2909: Test failures on s390x architecture with 1.10.0
- - GH #2911: Poco::UTF16Encoding and Poco::UTF32Encoding byte order conversion bug
- - GH #2912: Poco::SHA2Engine computes incorrect hash on big-endian systems
- - GH #2923: cmake: Version 1.10.0 not parsed correctly from VERSION file
- - GH #2908: [Windows] Process arguments quoting is broken.
- - GH #2894: Poco 1.10.0 doesn't build with cmake & POCO_UNBUNDLED
- - GH #2920: Close Service Handle after DeleteService Function call
- - GH #2919: Fixed Crash in WinService::setFailureActions
- - GH #2922: 1.10 cmake build fails on FreeBSD 11.2 Release
- - MySQL: resetting the session when putting it back into a SessionPool is now optional
- (and disabled by default) due to a bug in MySQL messing up the character encoding when doing so.
- - Poco::AutoPtr and Poco::SharedPtr now support comparison with nullptr.
- Release 1.10.0 (2020-01-27)
- ===========================
- - This release now requires a C++14 compiler (GCC 5, Clang 3.4, Visual C++ 2015).
- - Visual Studio project and solution files for versions prior to 2015 have
- been removed. Furthermore, the separate projects and solutions for 64-bit builds
- have been removed and configurations have been merged in a single project file.
- - POCO's fixed-size integer types are now based on <cstdint> types. This changes
- the definition of Poco::Int64 and Poco::UInt64 on some platforms.
- - Many methods exposing raw pointers have been changed to use smart pointers
- (usually Poco::SharedPtr or Poco::AutoPtr) instead. This may break some existing
- code. Specifically, the Logging framework in the Foundation library and the
- Configuration framework in the Util library have been changed.
- - New JWT library for dealing with JSON Web Tokens.
- - Upgrade bundled SQLite to version 3.31.0.
- - The NetSSL_OpenSSL library supports TLS 1.3 with OpenSSL 1.1.1 or later.
- - The NetSSL_Win library supports TLS 1.3 if it's supported by the underlying SChannel
- implementation.
- - Added support for NTLM authentication in the Net library.
- - NetSSL_OpenSSL now has a Poco::Net::FTPSClientSession and Poco::Net::FTPSStreamOpener
- class for connecting to FTP servers over TLS.
- - Fixed a potential crash in Poco::Net::NetworkInterface on Linux and macOS due to
- an invalid cast when obtaining the MAC address of an interface.
- - GH #2624: Poco::FileChannel/Poco:LogFileImpl::writeImpl() on Windows should translate \n to \r\n.
- - GH #2869: X509Certificate does not render UTF-8 characters in subjectName
- - GH #2863: NetworkInterface::map can fail to reveal some interfaces if an earlier one can not be handled
- - GH #2807: Poco::Data::ODBC Binding of SQL Decimal Type
- - GH #2812: String trimInPlace crashes with 0 size on Visual Studio Express 2017
- - GH #2830: Fix wrong buffer size in client handshake when re-using a SecureSocket [NetSSL_Win]
- - GH #2809: Allow to filter long tests using a command line argument
- - GH #2853: Poco::Process::launch process environment unicode support is broken on Windows
- - GH #2843: Poco::Net::MediaType::parse() does not split parameters
- - GH #2772: On iOS real device (not simulator) the home directory is not usable
- - GH #2689: Added tryWait() into Process and ProcessHandle. Handle kill()-ed UNIX process exit codes.
- - GH #2866: unescape Backslash char in UTF8 unescape method
- - GH #2879: Add support for SameSite attribute in HTTPCookie
- - GH #2824: Poco::Environment missing UTF8/wstring support on Windows
- - GH #2295: setEscapeUnicode() functions in JSON Array and Object classes ignore their boolean parameter
- - GH #2306: Why does Poco explicitly define _WIN32_WINNT?
- - GH #2802: Deprecated warning when building POCO with OpenSSL in submodule + cmake
- - GH #2884: Is it a description error about setReceiveTimeout()?
- - GH #2780: Allow Poco::Net::Context::usePrivateKey to accept ECKey and/or general EVPPKey
- - GH #2747: NetSSL_Win: Context constructor usage argument should specify minimum supported SSL/TLS version
- - GH #2745: Small problem in the code
- - GH #2743: X509Certificate validFrom expiresOn Date parsing
- - GH #2744: Poco::Mysql does not build with MySQL 8.0+
- - GH #2686: Uploads larger than 2GB fail
- - GH #2217: UUIDGenerator should allow random seed
- - GH #1609: Improve XDG Base Directory Specification implementation
- - GH #561: Support for XDG Base Directory Specification
- - GH #2881: Add an option to force the use of PollingDirectoryWatcherStrategy
- - GH #2584: Adding standard macOS legacy encodings
- - GH #2885: fix Dynamic::Var parse string issue
- - GH #2616: Restore pre-1.8.0 behaviour of Poco::Net::ServerSocket::bind.
- - GH #2641: Implement DataURIStream for extracting data from data URIs.
- - GH #2842: File fail on overwrite
- - GH #2840: Deleting Registry Keys on the WOW6432Node is not possible on 64Bit Applications
- - GH #2841: Service manager improvments
- - GH #2827: X509Certificate: Get rid of deprecated OpenSSL 1.1 APIs
- - GH #2826: CipherImpl: Fix small error with OpenSSL 1.1
- - GH #2775: Fix issue in NetSSL_Win. Windows Server 2016 reboots while trying to establish an SSL connection.
- - GH #2773: Fix the issue with incorrect type of store name parameter in CertOpenStore API call into NetSSL_Win
- - GH #2766: Support qnx sdp7
- - GH #2308: SocketAcceptor::setReactor() is broken
- - GH #2250: Poco::strToInt<> fails for values right above the type's boundary / limit
- - GH #2249: Poco::JSON::Object::set() should return reference to this to allow chaining.
- - GH #2275: SQLite mismatch open/close API calls
- - GH #1921: ICMPSocket does not check reply address
- - GH #2092: Use PollSet in SocketReactor
- - GH #2552: Poco::MongoDB test cases failed in Linux on IBM z
- - GH #2546: MySQL session state is not cleared in SessionPool
- - GH #2410: Preserve entries order in DynamicStruct
- - GH #2467: Can not open certain zip files include data descriptor
- - GH #2398: Poco 1.9.1 branch cmake build on FreeBSD 11.1 failed
- - GH #2365: add struct tm support to DateTime
- - GH #2348: NTPClient not checking reply address
- - GH #2346: lock-order-inversion in SocketReactor
- - GH #2330: add socket gather/scatter capabilities
- - GH #2343: UDPServer and client
- - GH #2329: add PMTU discovery
- - GH #2345: SocketNotifier not thread-safe
- - GH #2323: WebSocketTest.cpp faults reported by valgrind
- - GH #1160: Poco::Net::NetException "SSL Exception: error:1409F07F:SSL routines:ssl3_write_pending:bad write retry"
- - GH #2547: Reset connection when a session is returned to the SessionPool
- - GH #2451: http client timeout on Windows 7 and Server 2008 R2
- - GH #2417: Added missing IPv6 methods to SecureSocketImpl
- - GH #2408: add ordered containers
- - GH #2042: Android abstract namespace local socket address
- - GH #2088: Fix race condition in TCPServerDispatcher.cpp
- - GH #2892: SocketImpl::bind --> bind wrong config
- Release 1.9.4 (2019-09-18)
- ==========================
- - fixed GH #2784: Upgrade bundled expat XML parser library to release 2.2.8,
- which fixes CVE-2019-15903.
- Release 1.9.3 (2019-08-20)
- ==========================
- - fixed GH #2603: Remove incorrect upper size limits for SSL certificates in NetSSL_Win
- - fixed GH #2661: Poco::Zip::ZipArchive cannot load new tomcat.zip file (additional fix)
- - fixed GH #2742: Support of vs150 & vs160 with the official Microsoft localization executable,
- vswhere.exe, installed by MSVC starting from VS2017
- - Data/ODBC: make binding of std::string configurable (SQL_LONGVARCHAR - default or SQL_VARCHAR)
- through a global setting (Poco::Data::ODBC::Connector::bindStringToLongVarChar()).
- - added Poco::SharedLibrary::setSearchPath() (currently implemented on Windows only)
- - Windows required minimum version is now Windows XP SP2
- - upgraded bundled SQLite to 3.29.0
- - CppParser now supports type aliases defined with using keyword.
- - PageCompiler: added support for adding Content-Security-Policy and Cache-Control headers.
- Release 1.9.2 (2019-07-02)
- ==========================
- - fixed GH #2736: Error using CMake gui - latest version
- - fixed GH #2737: Bundles vulnerable copy of Expat — please upgrade to Expat 2.2.7
- - fixed GH #2738: Poco::AccessExpireStrategy::onGet() must not extend expiration time after expiration
- Release 1.9.1 (2019-06-24)
- ==========================
- - Added support for building with different OpenSSL distributions on Windows.
- See the POCO_EXTERNAL_OPENSSL macro defined in Foundation/include/Poco/Config.h
- for options.
- - Added Poco::Net::HTTPClientSession::flushRequest()
- - Added Poco::Net::WebSocket::setMaxPayloadSize() and Poco::Net::WebSocket::getMaxPayloadSize()
- to specify a maximum acceptable payload size for Poco::Net::WebSocket::receiveFrame().
- - Poco::Net::WebSocket: don't attempt to send empty credentials in response to 401 response.
- - Redis: added support for additional commands (exists, expire, ping, multi, exec, discard)
- - Redis: added Poco::Redis::Client::isConnected()
- - Upgraded bundled PCRE to version 8.43
- - Upgraded bundled SQLite to version 3.28.0
- - Added project/solution files for Visual Studio 2019
- - Fixed Visual Studio project files (version information from DLLVersion.rc not included in DLLs)
- - Include version resource in DLLs built with CMake
- - Added HTTP*Credentials::empty() and HTTPCredentials::clear()
- - fixed GH #2220: Encoding/DoubleByteEncoding.cpp fails to compile with VS2008 and _DEBUG
- - fixed GH #2243: DLLVersion.rc is excluded from build, missing detail information in properties of *.dll
- - fixed GH #2277: SQLite null pointer dereference occurs when exception is being thrown
- - fixed GH #2313: PollSet behaves differently on windows
- - fixed GH #2316: cmake can't find MySQL and ODBC libraries
- - fixed GH #2336: Omit ContentLength in WebSocket accept response
- - fixed GH #2358: Don't include <openssl/fips.h> for later OpenSSL
- - fixed GH #2364: Stringify escapes every unicode symbol when object contain an array
- - fixed GH #2380: Calling Poco::Net::X509Certificate::addChainCertificate() leads to double free.
- - fixed GH #2492: Net::Socket::address() crash on Android
- - fixed GH #2549: Fix keepAlive in http client session
- - fixed GH #2565: HTMLForm: optional enforcement of Content-Length instead of Chunked Transfer-Encoding
- - fixed GH #2570: DialogSocket: receiveStatusMessage() - line length limit applies to entire multi-line message
- - fixed GH #2583: Crypto library does not build with OpenSSL 1.0.0
- - fixed GH #2655: MongoDB Binary element to string - bug
- - fixed GH #2661: Poco::Zip::ZipArchive cannot load new tomcat.zip file
- - fixed GH #2700: Invalid read of memory in Poco::Environment::set which may cause crashes.
- - fixed GH #2712: File_WIN32.cpp(168): error C2065: "_upath":Undeclared identifier
- - fixed GH #2723: Access violation when trying to decompress .zip file with unsupported compression method.
- Release 1.9.0 (2018-03-07)
- ==========================
- - Added additional text encodings, available in the new PocoEncodings library (GH #2165)
- - Added Punycode support for resolving Internationalized Domain Names to Poco::Net::DNS (GH #2164)
- - Added XDG Base Directory Specification support in Poco::Path, Poco::Util::SystemConfiguration
- and Poco::Util::Application (GH #1609, GH #561, GH #1609)
- - Added support for GCM ciphers in Crypto library (GH #2129)
- - Poco::Net::RemoteSyslogChannel and Poco::Net::RemoteSyslogListener now have basic
- support for RFC 5424 structured data (GH #2173)
- - Poco::File now has methods for obtaining partition space (GH #1545)
- - Added Poco::Net::Context::addCertificateAuthority() (GH #2197)
- - Added Poco::AutoPtr::reset() and Poco::SharedPtr::reset() to improve compatibility
- with std::shared_ptr() (GH #2172)
- - fixed GH #703: Poco::Data::SQLite data types (INTEGER is now mapped to Int64)
- - fixed GH #1426: inttypes.h is available on sun solaris
- - fixed GH #1912: Run ping with custom data size #1912
- - fixed GH #2177: Run ping with custom timeout instead of the default
- - fixed GH #2058 and GH #2095: Synchronization issue/deadlock in Poco::Util::Timer at destruction
- - fixed GH #2089: Allow hyphen in HTTP authentication scheme names
- - fixed GH #2106: Undefined behavior in Delegate::equals()
- - fixed GH #2108: POCO SQLite Data Connector hangs for 20 secs waiting for thread timeouts on Windows
- - fixed GH #2142: JSON::Object preserveOrder keys not synced on assignment
- - fixed GH #2199 and GH #2188: Illegal header in zip file exception/assertion failure during JAR file decompression
- - fixed GH #2203: Use MAX_ADDRESS_LENGTH to determine buffer size
- Release 1.8.1 (2018-01-09)
- ==========================
- - Added Poco::File::linkTo()
- - fixed GH #2044: Poco::Net::NetworkInterface::list does not list inactive interfaces
- even when explicitly being asked for it.
- - fixed GH #2042: Android abstract namespace local socket address
- - fixed GH #2038: Poco::Net::MultipartWriter::createBoundary() always returns the same string.
- - fixed GH #2020: SQLite not handling parameter count mismatch correctly.
- - fixed GH #2012: Data/SQLite: Exception messages contain duplicate text
- - fixed GH #2005: Upgraded bundled PCRE to 8.41
- - fixed GH #2000: Fix building XMLStreamParser with unbundled expat
- - fixed GH #1603: fix MinGW 4.8.2 Compilation
- - fixed GH #1991: Support building poco 1.8.0 as cmake sub-project
- - fixed GH #2080: Bugs in Poco::Net::Socket::select when POCO_HAVE_FD_POLL is defined
- Release 1.8.0.1 (2017-11-11)
- ============================
- - Reverted change for GH #1828; DeflatingStreamBuf::sync() no longer flushes
- underlying stream as this causes corruption for some Zip files.
- - PocoDoc: fix for handling compiler configuration for Gradle builds.
- Release 1.8.0 (2017-11-10)
- ==========================
- - Poco::Base64Encoder: add support for base64url encoding (GH #1967)
- - Add Poco::Net::PollSet class to Net library (GH #1763)
- - The Net library now supports Unix Domain Sockets, where available.
- - Added stream parser (Poco::XML::XMLStreamParser) to XML library (GH #1697)
- - Added Poco::Net::TCPServerConnectionFilter and Poco::Net::TCPServer::setConnectionFilter()
- to support connection filtering and IP blacklisting (GH #1485)
- - Added Redis library (GH #1383)
- - Added Zip64 support to Zip library (GH #1356)
- - Upgraded bundled SQLite to 3.21.0
- - Removed OpenVMS support (GH #1988)
- - fixed GH #271: NamedMutex_UNIX.cpp must remove semid
- - fixed GH #739: Add WebSocket::receiveFrame() that appends to a Poco::Buffer<char>
- - fixed GH #749: NTP Packet impl not according to RFC958
- - fixed GH #896: Sample "TwitterClient" of NetSSL_OpenSSL can't be build
- - fixed GH #1172: Poco::Data default storage should be std::vector
- - fixed GH #1337: Poco::HTMLForm throws exception HTMLFormException("Form must be prepared")
- even after form is prepared.
- - fixed GH #1373: SessionImpl::close() does not check return code of close handle specific function
- - fixed GH #1425: Workaround bug in SolarisStudio 12.4 on RVO-ed objects.
- - fixed GH #1614: Problematic license for JSON component: the previously used JSON.org parser
- has been replaced with pdjson
- - fixed GH #1659: wrong field size calculation in ODBC code
- - fixed GH #1683: Poco::Data ODBC impl doesn't bind to unsigned numeric types properly
- - fixed GH #1705: MongoDB: support URI in Connection
- - fixed GH #1708: "SocketReactor::addEventHandler" and "SocketReactor::removeEventHandler"
- must protect the access to "NotifierPtr pNotifier"
- - fixed GH #1729: getConnectionTimeout of SQLite DB wrapper returns wrong value
- (in milliseconds, should be in seconds)
- - fixed GH #1739: OpenSSLInitializer isn't threadsafe
- - fixed GH #1750: double_conversion in NumericString is in conflict with Qt5 Core
- - fixed GH #1804 and GH #1805: Integer Overflow or Wraparound
- - fixed GH #1828: DeflatingStreamBuf::sync() should also flush underlying stream.
- - fixed GH #1880: FTPClientSession::close() error
- - fixed GH #1897: DateTime wrong binding/extraction for MySQL database
- - fixed GH #1905: Compiling Foundation library with POCO_NO_FPENVIRONMENT in Config.h fails
- - fixed GH #1906: Race condition in ThreadPool
- - fixed GH #1913: Message Doesn't Support 64-bit Thread IDs
- - fixed GH #1921: ICMPSocket does not check reply address
- - fixed GH #1926: Exception when using SortedDirectoryIterator
- - fixed GH #1934: File::setExecutable() on POSIX should set executable bit for group and
- other if corresponding readable bit is set
- - fixed GH #1950: Net Exception: Address family not supported with clang
- - fixed GH #1964: Buffer<> swap miss ownMem
- Release 1.7.9p2 (2017-11-06)
- ============================
- - fixed GH #1628: Export Poco::Zip::ZipUtil class
- Release 1.7.9p1 (2017-11-02)
- ============================
- - fixed GH #1968: Zip Decompress Parent Path Injection
- Release 1.7.9 (2017-09-11)
- ==========================
- - fixed GH #1813: xmlparse.cpp doesn't compile in WinCE (poco 1.7.8p3)
- - fixed GH #1826: XPath query error
- - fixed GH #1834: Visual Studio 2008 cannot find stdint.h
- - fixed GH #1842: Upgrade bundled expat to 2.2.3
- - fixed GH #1843: Use random salt for Poco::XML::NamePool
- - fixed GH #1865: AbstractEvent::hasDelegates() is not thread-safe
- - improved/fixed QNX support
- - Poco::Util::LayeredConfiguration: added support for labelling configurations and
- finding them by their label
- - upgraded bundled SQLite to 3.20.1
- - PageCompiler: support <%@ include file="<path>" %> syntax for includes, in addition
- to <%@ include page="<path>" %>
- - PageCompiler: optimize generated request handler code by removing useless
- statements, e.g. writing empty strings.
- - added POCO_DEPRECATED macro which will be used in the future to deprecate
- classes and methods.
- - Poco::NamedMutex and Poco::NamedEvent (System V Semaphores implementation): files are
- now opened with O_RDONLY | O_CREAT instead of O_WRONLY | O_CREAT, allowing sharing
- between different users. Furthermore, ftok() is called with 'p' as project ID
- argument.
- Release 1.7.8p3 (2017-06-22)
- ============================
- - fixed GH #1760: Upgrade bundled expat to 2.2.1 which fixes some vulnerabilities:
- http://seclists.org/oss-sec/2017/q2/499
- Release 1.7.8p2 (2017-04-18)
- ============================
- - fixed GH #1655: CipherImpl memory leak with OpenSSL 1.1
- Release 1.7.8 (2017-02-21)
- ==========================
- - fixed GH #1212: Lost WebSocket Frames after Client Websocket Handshake is complete
- - fixed GH #1260: URI encoding
- - fixed GH #1501: Alpine 3.4 trouble with Foundation/src/Error.cpp
- - fixed GH #1523: Long path names under Windows
- - fixed GH #1536: Building with OS X 10.12 SDK and 10.7 deployment target without libc++ fails
- - fixed GH #1537: Need to add multiple cflags parameters to configure
- - fixed GH #1539: Allow overriding POCO_TARGET_OSARCH for iPhoneSimulator
- - fixed GH #1546: Enable bitcode for iPhone build config
- - fixed GH #1549: Latin2Encoding and 0xFF
- - fixed GH #1551: Unable to use Poco on macOS 10.12
- - fixed GH #1552: IPv6 & operator throws an exception when scope = 0
- - fixed GH #1566: Poco/Zip issue with some CM_DEFLATE archives
- - fixed GH #1567: Poco/ZIP issue with uncompressed archives
- - fixed GH #1570: IPv6AddressImpl::toString() returns wrong output for IPv6 address "::"
- - fixed GH #1571: ODBC Preparator memory leak
- - fixed GH #1573: Poco::File::createDirectories() should not throw Poco::FileExistsException
- - fixed GH #1580: Unable to unzip zip file created using non-seeking stream
- - fixed GH #1581: Cannot find 'pcre.h' when using POCO_UNBUNDLED, a non-system PCRE, and CMake
- - fixed GH #1588: Poco::Net::HTTPChunkedStreamBuf::readFromDevice(): restrict maximum
- size of chunk length
- - fixed GH #1589: Poco::Net::HTMLForm: restrict maximum field and value length
- - fixed GH #1590: Poco::Net::DialogSocket: restrict maximum line length
- - fixed GH #1591: Poco::Net::MultipartReader: restrict maximum boundary string length
- - fixed GH #1597: adding empty file to zip leads to archive that can't be unzipped by windows
- - fixed GH #1599: readFromDevice() in AutoDetectStream.cpp in Poco Zip cannot detect signature
- - fixed GH #1534: Upgraded bundled zlib to 1.2.11
- - fixed GH #1558: Upgraded bundled SQLite to 3.16.2
- - fixed GH #1586: Upgraded bundled PCRE to 8.40
- - fixed GH #1538: Upgraded bundled double-conversion to 1.1.5
- - MongoDB: added support for authentication using "MONGODB-CR" and "SCRAM-SHA-1"
- authentication schemes.
- - MongoDB: additional documentation and fixes for style and consistency and minor
- API improvements (e.g., Poco::MongoDB::Binary)
- Note: some flag enumeration values have been renamed for better consistency
- and readability; existing code using these will have to be updated.
- Release 1.7.7 (2016-12-31)
- ==========================
- - fixed GH #865: FileChannel compress fails leaving empty .gz files
- - fixed GH #990: Potential race condition in Poco::File on Windows
- - fixed GH #1157: Fixing a bug in the NetSSL_Win module (Host name verification failed error)
- - fixed GH #1351: Fix for android include pthread.h from /usr/include
- - fixed GH #1436: ODBC Bug: Unicode text(NVARCHAT) read from DB is truncated to half
- - fixed GH #1453: _clock_gettime Symbol not found on Mac 10.11
- - fixed GH #1460: POCO does not build with OpenSSL 1.1
- - fixed GH #1461: Poco::Data::SQLite::SQLiteStatementImpl::next() error
- - fixed GH #1462: AbstractConfiguration::getUInt does not parse hex numbers
- - fixed GH #1464: ODBCMetaColumn::init() always maps integer NUMERIC/DECIMAL to Int32
- - fixed GH #1465: Assertion violation in DateTime.cpp using ZipArchive
- - fixed GH #1472: HTTP(S)StreamFactory should send a User-Agent header.
- - fixed GH #1476: Fixed error with Poco::UTF8Encoding::isLegal()
- - fixed GH #1484: ODBC: fix uninitialized variable
- - fixed GH #1486: Support ODBC GUID data type as string
- - fixed GH #1488: Poco::ObjectPool shrinks if returned object is not valid
- - fixed GH #1515: Detection of closed websocket connection
- - fixed GH #1521: bug in JSON ParseHandler.cpp (empty keys should be valid)
- - fixed GH #1526: iOS app rejected, IPv6 not working
- - fixed GH #1532: RecordSet and RowFilter: bad use of reference counter
- Release 1.7.6 (2016-10-18)
- ==========================
- - fixed GH #1298: ZipFileInfo: Assertion violation when reading ods files
- - fixed GH #1315: Redefine Poco assertions for static analysis
- - fixed GH #1397: Fix issues reported by static source code analysis
- - fixed GH #1403: Android compile with poco-1.7.5 no 'pthread_condattr_setclock' error
- - fixed GH #1416: Assertion violation when unzipping
- - fixed GH #1418: Poco::Delegate assignment operator fails to compile for some specializations
- - fixed GH #1422: Can't build poco 1.7.4 or 1.7.5 on centos5 32 bit
- - fixed GH #1429: exception thrown in MongoDB when using replicaset
- - fixed GH #1431: Poco/FIFOBuffer.h copy issue
- - fixed GH #1445: Use stable_sort to preserve order of IP addresses from DNS
- - fixed GH #1456: better handle leap seconds in Poco::DateTime and Poco::LocalDateTime
- - fixed GH #1458: Probably invalid epoll_create() usage inside Poco/Socket.cpp
- - Poco::XML::NamePool: increased default size from 251 to 509. Default size can now
- be changed by defining the POCO_XML_NAMEPOOL_DEFAULT_SIZE macro accordingly.
- - Enchancements: Poco::XML::Document and Poco::XML::DOMParser have new constructors
- taking a NamePool size. Poco::Util::XMLConfiguration::load() also has a new overload
- for that purpose.
- - Improved error handling in the Zip library (getting rid of some poco_assert macros
- and did proper error handling instead).
- - Added Poco::URISyntaxException (subclass of Poco::SyntaxException), which is now
- thrown by Poco::URI.
- - Improved error handling in Poco::URIStreamOpener::open().
- - Poco::Data::MySQL: Handle connection lost/server gone error when starting a transaction
- and retry.
- - XMLConfiguration default (and single-argument delimiter) constructor now loads an empty
- XML document with "config" root element to make the configuration usable without an
- additional call to load() or loadEmpty().
- Release 1.7.5 (2016-08-29)
- ==========================
- - fixed GH #1252: Unable to compile Poco::Data for Windows Compact Embedded 2013
- - fixed GH #1344: Poco::Event::wait(timeout) should use CLOCK_MONOTONIC on Linux
- - fixed GH #1355: [JSON::Object] After copy-ctor, JSON::Object::_keys still points to
- keys in map of copied object
- - GH #1361: Shell expansion rules say that tilde must be replaced with $HOME before
- calling getpwuid
- - Poco::SingletonHolder: added reset() method
- - prefer clock_getttime() over gettimeofday() if available
- - Upgraded bundled SQLite to 3.14.1
- Release 1.7.4 (2016-07-20)
- ==========================
- - fixed GH #1300: Session constructor hangs
- - fixed GH #1303: HTTPSClientSession::sendRequest() fails if server has wildcard cert
- - fixed GH #1304: URI doesn't know "ws:/" or "wss://" schemes
- - fixed GH #1307: Upgrade bundled expat to 2.2.0
- - fixed GH #1313: XML library compilation error
- - fixed GH #1316: Empty SocketReactor never sleeps
- - Upgraded bundled SQLite to 3.13.0
- Release 1.7.3 (2016-05-02)
- ==========================
- - fixed GH #993: Invalid zip format when opening a docx in word
- - fixed GH #1235: Poco::Net::HTTPClientSession::sendRequest() should also handle HTTP_PATCH
- - fixed GH #1236: Remove Poco::Data::Row::checkEmpty() as it prevents Row from being used
- with all NULL rows
- - fixed GH #1239: Poco::Zip::Compress with non-seekable stream fails for CM_STORE
- - fixed GH #1242: Poco::Data::RowFormatter generate exception if the first column of first
- row is null
- - fixed GH #1253: ListMap does not maintain insertion order if key already exists
- - Upgraded bundled SQLite to 3.12.2
- Release 1.7.2 (2016-03-21)
- ==========================
- - fixed GH #1197: Upgrade bundled expat to 2.1.1
- Expat 2.1.1 fixes a CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-1283
- - fixed GH #1204: getdtablesize has been removed on Android 21
- - fixed GH #1203: Poco::Data::RecordSet should be reusable
- - fixed GH #1198: Upgrade bundled SQLite to 3.12.1
- Release 1.7.1 (2016-03-14)
- ==========================
- - fixed GH #1187: Data/MySQL: Seeing frequent "MySQL server has gone away" errors
- - fixed GH #1184: Attempting to connect via a proxy throws a DNS error "Host not found"
- - fixed GH #1180: Possible deadlock when TaskManager::count() is called in onFinished
- - NetSSL_OpenSSL: use TLS_*_method() instead of deprecated SSLv23_*_method()
- if OpenSSL version is >= 1.1; initialize default/fallback client context to support
- all TLS protocols, not just TLSv1
- Release 1.7.0 (2016-03-07)
- ==========================
- - POSSIBLE BREAKING CHANGE: removed automatic registration of Data connectors due to
- issues with static initialization order.
- - NetSSL_OpenSSL: added support for ECDH and DH ciphers; added support to disable
- specific protocols (Poco::Net::Context::disableProtocols());
- new Poco::Net::Context constructor taking a Poco::Net::Context::Params structure that
- allows specifying ECDH and DH parameters.
- - Poco::Net::TCPServer: add additional try ... catch block around poll() to
- gracefully deal with errors due to high system load (e.g., out of file descriptors).
- - fixed GH #1171: Poco::Data::RecordSet: rowCount not reset after execute
- - fixed GH #1167: CMake & POCO_UNBUNDLED: expat sources are compiled in libPocoXML
- - fixed GH #1160: Poco::Net::NetException
- "SSL Exception: error:1409F07F:SSL routines:ssl3_write_pending:bad write retry"
- - fixed GH #1152: Wrong TaskProgressNotification description
- - fixed GH #1141: Poco::StringTokenizer::TOK_TRIM changes behavior between 1.4 and 1.6
- - fixed GH #1137: Missing 'longint' type in SQLite
- - fixed GH #1135: Different package on github and official web site
- - fixed GH #1030: tvOS / WatchOS bitcode enabled for simulators
- - fixed GH #1114: World-write permissions on files created by daemon
- - fixed GH #1087: prevent line breaks in base64-encoded creds
- - fixed GH #1026: Fixes for producing the poco-1.6.2 release on a Cygwin x86 platform
- - fixed GH #1022: Abbreviation in setThreadName can happen even if thread name is not too long
- - fixed GH #1002: ActiveDispatcher saves reference to event context after event was
- performed until it gets new event
- - fixed GH #973: overwrite existing files on windows when moving files
- - fixed GH #969: Poco::File::renameTo() behaviour differs on windows and linux
- - fixed GH #967: Missing data types in SQLite
- - fixed GH #966: Possible crash when processing a corrupted Zip file
- - fixed GH #958: Bug while reading X509Certificate subjectName
- - fixed GH #937: Missing build_vs140.cmd
- - fixed GH #933: Change in JSON::Object::set(key,value) behavior in 1.6.1
- - fixed GH #931: make strToInt() more strict in what it accepts
- - fixed GH #921: `BasicUnbufferedStreamBuf` needs to be marked for import/export
- - fixed GH #848: MailMessage::_encoding is not set when retrieving plain/text message
- - fixed GH #767: Inconsistency in getPath & getPathAndQuery returns
- - fixed GH #724: Poco 1.6.0 is not compiled with openssl 1.0.0
- - fixed GH #713: Improved support for producing Canonical XML in XMLWriter
- - fixed GH #696: bug in parsing name of attachment poco c++ 1.6.0
- - fixed GH #335: Compress with nonseekable
- - upgraded bundled SQLite to 3.11.0
- - added Poco::Crypto::X509Certificate::equals() to compare two certificates
- - support for detecting Win8/Win10 in Poco::Environment
- - Poco::Net::HTTPServerRequestImpl: fixed an issue with DELETE in persistent connections
- - NetSSL: added Context::preferServerCiphers()
- - NetSSL: added support for ECDH, new Context constructor
- - NetSSL: add support for disabling certain protocols
- - SMTPClientSession: added support for XOAUTH2 authentication
- - Poco::Data::SessionPool: re-added customizeSession() method from 1.4.x releases
- - improved SSLManager to automatically set-up a reasonable client Context if
- none is configured
- - add brew OpenSSL search paths to Darwin configs
- - add HTTP/1.1 version to HTTPRequest for client WebSocket, as this is required for
- most servers
- - remove GCC_DIAG_OFF as this caused more issues than it solved
- - respect POCO_NO_FORK_EXEC in ServerApplication (tvOS)
- - tvOS and WatchOS support
- - fix: need an implementation of available() for WebSocketImpl
- - HTTPSessionInstantiator: respect global proxy config
- - added constant for HTTP PATCH method to Poco::Net::HTTPRequest
- - NumberParser::parseHex[64](): allow 0x/0X prefix
- Release 1.6.1 (2015-08-03)
- ==========================
- - added project and solution files for Visual Studio 2015
- - upgraded bundled SQLite to 3.8.11.1
- - fixed GH #782: Poco::JSON::PrintHandler not working for nested arrays
- - fixed GH #819: JSON Stringifier fails with preserve insert order
- - fixed GH #878: UUID tryParse
- - fixed GH #869: FIFOBuffer::read(T*, std::size_t) documentation inaccurate
- - fixed GH #861: Var BadCastException
- - fixed GH #779: BUG in 1.6.0 Zip code
- - fixed GH #769: Poco::Var operator== throws exception
- - fixed GH #766: Poco::JSON::PrintHandler not working for objects in array
- - fixed GH #763: Unable to build static with NetSSL_OpenSSL for OS X
- - fixed GH #750: BsonWriter::write<Binary::Ptr> missing size ?
- - fixed GH #741: Timestamp anomaly in Poco::Logger on WindowsCE
- - fixed GH #735: WEC2013 build fails due to missing Poco::Path methods.
- - fixed GH #722: poco-1.6.0: Unicode Converter Test confuses string and char types
- - fixed GH #719: StreamSocket::receiveBytes and FIFOBuffer issue in 1.6
- - fixed GH #706: POCO1.6 Sample EchoServer BUG
- - fixed GH #646: Prevent possible data race in access to Timer::_periodicInerval
- - DeflatingStream: do not flush underlying stream on sync() as these can cause
- corrupted files in Zip archives
- Release 1.6.0 (2014-12-22)
- ==========================
- - fixed GH #625: MongoDB ensureIndex double insert?
- - fixed GH #622: Crypto: RSATest::testSign() should verify with public key only
- - fixed GH #620: Data documentation sample code outdated
- - fixed GH #618: OS X 10.10 defines PAGE_SIZE macro, conflicts with PAGE_SIZE in Thread_POSIX.cpp
- - fixed GH #616: Visual Studio warning C4244
- - fixed GH #612: OpenSSLInitializer calls OPENSSL_config but not CONF_modules_free
- - fixed GH #608: (Parallel)SocketAcceptor ctor/dtor call virtual functions
- - fixed GH #607: Idle Reactor high CPU usage
- - fixed GH #606: HTMLForm constructor read application/x-www-form-urlencoded UTF-8 request
- body first parameter with BOM in name
- - fixed GH #596: For OpenSSL 1.0.1, include openssl/crypto.h not openssl/fips.h
- - fixed GH #592: Incorrect format string in Poco::Dynamic::Struct
- - fixed GH #590: Poco::Data::SQlite doesn't support URI filenames
- - fixed GH #564: URI::encode
- - fixed GH #560: DateTime class calculates a wrong day
- - fixed GH #549: Memory allocation is not safe between fork() and execve()
- - fixed GH #500: SSLManager causes a crash
- - fixed GH #490: 2 byte frame with payload length of 0 throws "Incomplete Frame Received" exception
- - fixed GH #483: multiple cases for sqlite_busy
- - fixed GH #482: Poco::JSON::Stringifier::stringify bad behaviour
- - fixed GH #478: HTTPCredentials not according to HTTP spec
- - fixed GH #471: vs2010 release builds have optimization disabled ?
- - fixed GH #468: HTTPClientSession/HTTPResponse not forwarding exceptions
- - fixed GH #438: Poco::File::setLastModified() doesn't work
- - fixed GH #402: StreamSocket::receiveBytes(FIFOBuffer&) and sendBytes(FIFOBuffer&) are
- not thread safe
- - fixed GH #345: Linker warning LNK4221 in Foundation for SignalHandler.obj, String.obj
- and ByteOrder.obj
- - fixed GH #331: Poco::Zip does not support files with ".." in the name.
- - fixed GH #318: Logger local time doesn't automatically account for DST
- - fixed GH #294: Poco::Net::TCPServerParams::setMaxThreads(int count) will not accept count == 0.
- - fixed GH #215: develop WinCE build broken
- - fixed GH #63: Net::NameValueCollection::size() returns int
- - Poco::Logger: formatting methods now support up to 10 arguments.
- - added Poco::Timestamp::raw()
- - Poco::DeflatingOutputStream and Poco::InflatingOutputStreams also flush underlying stream
- on flush()/sync().
- - Poco::Util::Timer: prevent re-schedule of cancelled TimerTask
- - enabled WinRegistryKey and WinRegistryConfiguration for WinCE
- - Poco::BasicEvent improvements and preparations for future support of lambdas/std::function
- - upgraded bundled sqlite to 3.8.7.2
- - Poco::Thread: added support for starting functors/lambdas
- - Poco::Net::HTTPClientSession: added support for global proxy configuration
- - added support for OAuth 1.0/2.0 via Poco::Net::OAuth10Credentials and
- Poco::Net::OAuth20Credentials classes.
- - Poco::Net::IPAddress: fixed IPv6 prefix handling issue on Windows
- - added Poco::Timestamp::TIMEVAL_MIN and Poco::Timestamp::TIMEVAL_MAX
- - added Poco::Clock::CLOCKVAL_MIN and Poco::Clock::CLOCKVAL_MAX
- - added poco_assert_msg() and poco_assert_msg_dbg() macros
- - Poco::Net::Context: fixed a memory leak if the CA file was not found while creating the
- Context object (the underlying OpenSSL context would leak)
- - Poco::URI: added new constructor to create URI from Path
- - Various documentation and style fixes
- - Removed support (project/solution files) for Visual Studio.NET 2003 and Visual Studio 2005.
- - Improved CMake support
- Release 1.5.4 (2014-10-14)
- ==========================
- - fixed GH #326: compile Net lib 1.5.2 without UTF8 support enabled
- - fixed GH #518: NetworkInterface.cpp compile error w/ POCO_NO_WSTRING (1.5.3)
- - Fixed MSVC 2010 warnings on large alignment
- - make HTTPAuthenticationParams::parse() add value on end of string
- - fixed GH #482: Poco::JSON::Stringifier::stringify bad behaviour
- - fixed GH #508: Can't compile for arm64 architecture
- - fixed GH #510: Incorrect RSAKey construction from istream
- - fix SharedMemory for WinCE/WEC2013
- - Add NIOS2 double conversion detection, fixes compile errors
- - added VS2013 project/solution files for Windows Embedded Compact 2013
- - added Process::isRunning()
- - NetSSL: Fix typo in documentation
- - NetSSL_OpenSSL: support for TLS 1.1 and 1.2
- - Zip: Added CM_AUTO, which automatically selects CM_STORE or CM_DEFLATE based
- on file extension. Used to avoid double-compression of already compressed file
- formats such as images.
- - added %L modifier to PatternFormatter to switch to local time
- - removed unnecessary explicit in some multi-arg constructors
- - Allow SecureStreamSocket::attach() to be used in server connections
- - added Var::isBoolean() and fixed JSON stringifier
- - added poco_unexpected() macro invoking Bugcheck::unexpected() to deal
- with unexpected exceptions in destructors
- - fixed GH #538 prevent destructors from throwing exceptions
- - improved HTTP server handling of errors while reading header
- - fixed GH #545: use short for sign
- - upgraded SQLite to 3.8.6
- - fixed GH #550 WebSocket fragmented message problem
- - improved HTTPClientSession handling of network errors while sending the request
- - updated bundled PCRE to 8.35.0
- - fixed GH #552: FIFOBuffer drain() problem
- - fixed GH #402: StreamSocket::receiveBytes(FIFOBuffer&) and sendBytes(FIFOBuffer&) are
- not thread safe
- - HTTPCookie: fix documentation for max age
- - added Timestamp::raw() and Clock::raw()
- - Poco::Buffer properly handles zero-sized buffers
- - GH #512: Poco:Data:ODBC:Binder.h causes a crash
- - Added Crypto_Win and NetSSL_Win libraries which are re-implementations of existing
- Crypto and NetSSL_OpenSSL libraries based on WinCrypt/Schannel. The new libraries
- can be used as an almost drop-in replacement for the OpenSSL based libraries on
- Windows and Windows Embedded Compact platforms. Only available from GitHub for now.
- Release 1.5.3 (2014-06-30)
- ==========================
- - fixed GH# 316: Poco::DateTimeFormatter::append() gives wrong result for
- Poco::LocalDateTime
- - Poco::Data::MySQL: added SQLite thread cleanup handler
- - Poco::Net::X509Certificate: improved and fixed domain name verification for
- wildcard domains
- - added Poco::Clock class, which uses a system-provided monotonic clock
- (if available) and is thus not affected by system realtime clock changes.
- Monotonic Clock is available on Windows, Linux, OS X and on POSIX platforms
- supporting clock_gettime() and CLOCK_MONOTONIC.
- - Poco::Timer, Poco::Stopwatch, Poco::TimedNotificationQueue and Poco::Util::Timer
- have been changed to use Poco::Clock instead of Poco::Timestamp and are now
- unaffected by system realtime clock changes.
- - fixed GH# 350: Memory leak in Data/ODBC with BLOB
- - Correctly set MySQL time_type for Poco::Data::Date.
- - fixed GH #352: Removed redundant #includes and fixed spelling mistakes.
- - fixed setting of MYSQL_BIND is_unsigned value.
- - fixed GH #360: CMakeLists foundation: add Clock.cpp in the list of source files
- - Add extern "C" around <net/if.h> on HPUX platform.
- - added runtests.sh
- - fixed CPPUNIT_IGNORE parsing
- - fixed Glob from start path, for platforms not alowing transverse from root (Android)
- - added NTPClient (Rangel Reale)
- - added PowerShell build script
- - added SmartOS build support
- - fix warnings in headers
- - XMLWriter: removed unnecessary apostrophe escaping (&apos)
- - MongoDB: use Int32 for messageLength
- - fixed GH #380: SecureSocket+DialogSocket crashes with SIGSEGV when timeout occours
- - Improve RSADigestEngine, using Poco::Crypto::DigestEngine to calculate hash before signing
- - added Poco::PBKDF2Engine
- - Fixed GH #380: SecureSocket+DialogSocket crashes with SIGSEGV when timeout occours
- - added support for a 'Priority' attribute on cookies.
- - GH #386: fixed bug in MailMessage without content-transfer-encoding header
- - GH #384: ew hash algorithms support for RSADigestEngine
- - fixed Clock overflow bug on Windows
- - Poco::ByteOrder now uses intrinsics, if available
- - CMake: added /bigobj option for msvc
- - Fix typo to restore Net/TestSuite_x64_vs120 build
- - correct path for CONFIGURE_FILE in CMakeLists.txt
- - Building Poco 1.5.2 for Synology RS812+ (Intel Atom) (honor POCO_NO_INOTIFY)
- - added WEC2013 support to buildwin.cmd and buildwin.ps1
- - HTMLForm: in URL encoding, percent-encode more characters
- - Fixed #include <linux/if.h> conflict with other libraries
- - Poco::Net::X509Certificate::verify() no longer uses DNS reverse lookups to validate host names
- - cert hostname validation is case insensitive and stricter for wildcard certificates
- - TCPServer: do not reduce the capacity of the default ThreadPool
- - added POCO_LOG_DEBUG flag
- - Zip: fixed a crash caused by an I/O error
- - added runtest script for windows
- - added SQlite Full Text Search support
- - added Thread::trySleep() and Thread::wakeUp()
- - fixed GH #410: Bug in JSON::Object.stringify() in 1.5.2
- - fixed GH #362: Defect in Var::parseString when there is no space between value and newline
- - fixed GH #314: JSON parsing bug
- - added GH #313: MetaColumn additions for Data::ODBC and Data::SQLite
- - fixed GH #346: Make Poco::Data::Date and Poco::Data::Time compare functions const.
- - fixed GH #341: Compiling poco-1.5.2 for Cygwin
- - fixed GH #305: There are bugs in Buffer.h
- - fixed GH #321: trivial build fixes (BB QNX build)
- - fixed GH #440: MongoDB ObjectId string formatting
- - added SevenZip library (Guenter Obiltschnig)
- - fixed GH #442: Use correct prefix length field of Windows IP_ADAPTER_PREFIX structure
- - improved GH #328: NetworkInterface on Windows XP
- - fixed GH #154 Add support for MYSQL_TYPE_NEWDECIMAL to Poco::Data::MySQL
- - fixed GH #290: Unicode support
- - fixed GH #318: Logger local time doesn't automatically account for DST
- - fixed GH #363: DateTimeParser tryParse/parse
- - added HTMLForm Content-Length calculation (Rangel Reale)
- - Make TemporaryFile append a slash to tempDir
- - fixed GH #319 android build with cmake
- - added hasDelegates() method to AbstractEvent
- - fixed GH #230: Poco::Timer problem
- - fixed GH #317: Poco::Zip does not support newer Zip file versions.
- - fixed GH #176: Poco::JSON::Stringifier UTF encoding
- - fixed GH #458: Broadcast address and subnet mask for IEEE802.11 network interface
- - fixed GH #456: poco: library install dirs per RUNTIME/LIBRARY/ARCHIVE
- Release 1.5.2 (2013-09-16)
- ==========================
- - added MongoDB library
- - fixed GH #57: poco-1.5.1: Doesn't compile for Android
- - added VoidEvent (Arturo Castro)
- - fixed GH #80: NumberFormatter::append broken
- - fixed GH #93: ParallelSocketAcceptor virtual functions
- - optional small object optimization for IPAddress, SocketAddress, Any and Dynamic::Var
- - SQLite events (insert, update, delete, commit, rollback) handlers
- - merged GH #91: Improve SQLite multi-threaded use (Rangel Reale)
- - merged GH #86: Invalid pointers to vector internals (Adrian Imboden)
- - automatic library initialization macros
- - fixed GH #110: WebSocket accept() fails when Connection header contains multiple tokens
- - fixed GH #71: WebSocket and broken Timeouts (POCO_BROKEN_TIMEOUTS)
- - fixed a warning in Poco/Crypto/OpenSSLInitializer.h
- - fixed GH #109: Bug in Poco::Net::SMTPClientSession::loginUsingPlain
- - added clang libc++ build configurations for Darwin and iPhone (Andrea Bigagli)
- - fixed GH #116: Wrong timezone parsing in DateTimeParse (Matej Knopp)
- - fixed GH #118: JSON::Object::stringify endless loop
- - added Recursive and SortedDirectoryIterator (Marian Krivos)
- - added ListMap (map-like container with preserving insertion order)
- - MailMessage: attachments saving support and consistent read/write
- - fixed GH #124: Possible buffer overrun in Foundation/EventLogChannel
- - fixed GH #119: JSON::Object holds values in ordered map
- - added JSON::PrintHandler
- - renamed JSON::DefaultHandler to ParseHandler (breaking change!)
- - fixed GH #127: Eliminate -Wshadow warnings
- - fixed GH #79: Poco::Thread leak on Linux
- - fixed GH #61: static_md build configs for Crypto and NetSSL
- - fixed GH #130: prefer sysconf over sysctlbyname
- - fixed GH #131: no timezone global var on OpenBSD
- - fixed GH #102: Some subprojects don't have x64 solutions for VS 2010
- - added GH #75: Poco::Uri addQueryParameter method
- - Poco::Environment::osDisplayName() now recognizes Windows 8/Server 2012
- - fixed GH #140: Poco::Runnable threading cleanup issue
- - simplified default TCP/HTTPServer construction
- - fixed GH #141: Application::run() documentation/implementation discrepancy
- - changed RowFormatter to SharedPtr<RowFormatter> in Data::RecordSet interface (breaking change!)
- - fixed GH #144: Poco::Dynamic emits invalid JSON
- - removed naked pointers from Data interfaces
- - fixed GH #82: name conflict in Data::Keywords::bind
- - fixed GH #157: MySQL: cannot bind to 'long' data type on Windows/Visual C++
- - fixed GH #158: MySQL: MYSQL_BIND 'is_unsigned' member is not set
- - fixed GH #160: MultipartReader ignores first part, if preamble is missing
- - fixed GH #156: Possible buffer overrun in Foundation/EventLogChannel
- - XML: fixed an issue with parsing a memory buffer > 2 GB
- - upgraded to expat 2.1.0
- - Data/ODBC: added support for setting query timeout (via setProperty
- of "queryTimeout"). Timeout is int, given in seconds.
- - fixed a potential endless loop in SecureStreamSocketImpl::sendBytes()
- and also removed unnecessary code.
- - fixed GH #159: Crash in openssl CRYPTO_thread_id() after library libPocoCrypto.so
- has been unloaded.
- - fixed GH #155: MailOutputStream mangles consecutive newline sequences
- - fixed GH #139: FileChannel::PROP_FLUSH is invalid (contains a tab character)
- - fixed GH #173: HTTPClientSession::proxyConnect forces DNS lookup of host names
- - fixed GH #194: MessageNotification constructor is inefficient.
- - fixed GH #189: Poco::NumberParser::tryParse() documentation bug
- - fixed GH #172: IPv6 Host field is stripped of Brackets in HTTPClientSession
- - fixed GH #188: Net: SocketAddress operator < unusable for std::map key
- - fixed GH #128: DOMWriter incorrectly adds SYSTEM keyword to DTD if PUBLIC is
- already specified
- - fixed GH #65: Poco::format() misorders sign and padding specifiers
- - upgraded bundled SQLite to 3.7.17
- - replaced JSON parser with Poco::Web::JSON parser (from sandbox)
- - added JSON conversion to Dynamic Struct and Array
- - added VarIterator
- - modified behavior of empty Var (empty == empty)
- - added Alignment.h header for C++03 alignment needs
- - added Data/WebNotifier (DB, WebSocket) example
- - fixed GH #209: Poco::NumberFormatter double length
- - fixed GH #204: Upgrade zlib to 1.2.8
- - fixed GH #198: The "application.configDir" property is not always created.
- - fixed GH #185: Poco::NumberFormatter::format(double value, int precision)
- ignore precision == 0
- - fixed GH #138: FreeBSD JSON tests fail
- - fixed GH #99: JSON::Query an JSON::Object
- - limited allowed types for JSON::Query to Object, Array, Object::Ptr,
- Array::Ptr and empty
- - fixed GH #175: HTMLForm does not read URL parameters on POST or PUT
- - added GH #187: MySQL: allow access to the underlying connection handle
- - added GH #186: MySQL: support for MYSQL_SECURE_AUTH
- - fixed GH #174: MySQL: 4GB allocated when reading any largetext or largeblob field
- - fixed a potential memory leak in Poco::Net::HTTPClientSession if it is misused
- (e.g., sendRequest() is sent two times in a row without an intermediate call to
- receiveResponse(), or by calling receiveResponse() two times in a row without
- an intermediate call to sendRequest()) - GH #217
- - removed a few unnecessary protected accessor methods from Poco::Net::HTTPClientSession
- that would provide inappropriate access to internal state
- - merged GH #210: Don't call CloseHandle() twice on Windows; Ability to select the
- threadpool that will be used to start an Activity(Patrice Tarabbia)
- - fixed GH #212: JSONConfiguration was missing from the vs90 project(Patrice Tarabbia)
- - fixed GH #220: add qualifiers for FPEnvironment in C99 (Lucas Clemente)
- - fixed GH #222: HTTPCookie doesn't support expiry times in the past (Karl Reid)
- - fixed GH #224: building 1.5.1 on Windows for x64
- - fixed GH# 233: ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool ipV6Only) does not work
- - fixed GH# 231: Compatibility issue with Poco::Net::NetworkInterface
- - fixed GH# 236: Bug in RecursiveDirectoryIterator
- - added ColorConsoleChannel and WindowsColorConsoleChannel classes supporting
- colorizing log messages
- - fixed GH# 259: Poco::EventLogChannel fails to find 64bit Poco Foundation dll
- - fixed GH# 254: UTF8::icompare unexpected behavior
- - Poco::UUID::tryParse() also accepts UUIDs without hyphens. Also updated documentation
- (links to specifications).
- - added GH# 268: Method to get JSON object value using Poco::Nullable
- - fixed GH# 267: JSON 'find' not returning empty result if object is expected but another value is found
- - Added support for ARM64 architecture and iPhone 5s 64-bit builds
- (POCO_TARGET_OSARCH=arm64).
- Release 1.5.1 (2013-01-11)
- ==========================
- - using double-conversion library for floating-point numeric/string conversions
- - added Poco::istring (case-insensitive string) and Poco::isubstr
- - added SQLite sys.dual (in-memory system table)
- - applied SF Patch #120: The ExpireLRUCache does not compile with a tuple as key on Visual Studio 2010
- - fixed SF Bug #599: JSON::Array and JSON::Object size() member can implicitly lose precision
- - fixed SF Bug #602: iterating database table rows not correct if no data in table
- - fixed SF Bug #603: count() is missing in HashMap
- - fixed GH #23: JSON::Object::stringify throw BadCastException
- - fixed GH #16: NetworkInterface::firstAddress() should not throw on unconfigured interfaces
- - Android compile/build support (by Rangel Reale)
- - TypeHandler::prepare() now takes const-reference
- - fixed GH #27: Poco::URI::decode() doesn't properly handle '+'
- - fixed GH #31: JSON implementation bug
- - fixed SF #597: Configure script ignores cflags
- - fixed SF #593: Poco 1.5.0 on FreeBSD: cannot find -ldl
- - added SF #542: SocketAddress() needs port-only constructor
- - fixed SF #215: Wrong return type in SocketConnector.h
- - applied SF Patch #97: fix c++0x / clang++ bugs
- - fixed GH32/SF596: Poco::JSON: Parsing long integer (int64) value fails.
- - added Net ifconfig sample (contributed by Philip Prindeville)
- - merged GH #34: add algorithm header (Roger Meier/Philip Prindeville)
- - fixed GH #26: Cannot compile on gcc
- - merged SF #111: FTP Client logging (Marian Krivos)
- - fixed GH #30: Poco::Path::home() throws when called from Windows Service
- - fixed GH #22: MySQL connection string lowercased
- - added MySQL support for Date/Time
- - upgraded SQLite to version 3.7.15.1 (2012-12-19)
- - improved SQLite execute() return (affected rows) value and added tests
- - added SQLite::Utility::isThreadSafe() function
- - added SQLite::Utility::setThreadMode(int mode) function
- - fixed GH #36: 'distclean' requires 3 traversals of project tree
- - fixed GH #41: Buffer::resize crash
- - fixed GH #42: Linux unbundled builds don't link
- - fixed GH #44: Problems with win x64 build
- - fixed GH #46: 1.5.1 build fails on OS X when using libc++
- - fixed GH #48: Need getArgs() accessor to Util::Application to retrieve start-up arguments
- - fixed GH #49: NetworkInterface::list doesn't return MAC addresses
- - fixed GH #51: Android should use isfinite, isinf, isnan and signbit from the std namespace
- - fixed GH #53: JSON unicode fixes and running tests on invalid unicode JSON
- - added ParallelAcceptor and ParallelReactor classes
- - added EOF and error to FIFOBuffer
- Release 1.5.0 (2012-10-14)
- ==========================
- - added JSON library
- - added Util::JSONConfiguration
- - added FIFOBuffer and FIFOBufferStream
- - fixed SF# 3522906: Unregistering handlers from SocketReactor
- - fixed SF# 3522084: AbstractConfiguration does not support 64-bit integers
- - HTTPServer::stopAll(): close the socket instead of just shutting it down, as the latter won't wake up a select() on Windows
- - added SMTPLogger
- - added cmake support
- - fixed SF#3538778: NetworkInterface enumeration uses deprecated API
- - fixed SF#3538779: IPAddress lacks useful constructors: from prefix mask, native SOCKADDR
- - fixed SF#3538780: SocketAddress needs operator < function
- - fixed SF#3538775: Issues building on Fedora/Centos, etc. for AMD64
- - fixed SF#3538786: Use size_t for describing data-blocks in DigestEngine
- - added IPAddress bitwise operators (&,|,^,~)
- - added IPAddress BinaryReader/Writer << and >> operators
- - modified IPAddress to force IPv6 to lowercase (RFC 5952)
- - fixed SF#3538785: SMTPClientSession::sendMessage() should take recipient list
- - added IPAddress::prefixLength()
- - UTF portability improvements
- - fixed SF#3556186: Linux shouldn't use <net/if.h> in Net/SocketDefs.h
- - added IPAddress RFC 4291 compatible site-local prefix support
- - fixed SF#3012166: IPv6 patch
- - added SF#3558085: Add formatter to MACAddress object
- - fixed SF#3552774: Don't hide default target in subordinate makefile
- - fixed SF#3534307: Building IPv6 for Linux by default
- - fixed SF#3516844: poco missing symbols with external >=lipcre-8.13
- - added SF#3544720: AbstractConfigurator to support 64bit values
- - fixed SF#3522081: WinRegistryConfiguration unable to read REG_QWORD values
- - fixed SF#3563626: For Win32 set Up/Running flags on NetworkInterface
- - fixed SF#3560807: Deprecate setPeerAddress() as this is now done in getifaddrs
- - fixed SF#3560776: Fix byte-ordering issues with INADDR_* literals
- - fixed SF#3563627: Set IP address on multicast socket from socket family
- - fixed SF#3563999: Size BinaryWriter based on buffer's capacity(), not size()
- - fixed SF#102 Fix building Poco on Debian GNU/kFreeBSD
- - fixed SF#321 Binding DatTime or Timestamp
- - fixed SF#307 Detect the SQL driver type at run time
- - added VS 2012 Projects/Solutions
- - enhanced and accelerated numeric parsing for integers and floats
- - fixed SF#590 Segfault on FreeBSD when stack size not rounded
- - added warn function and warnmsg macro in CppUnit
- - fixed SF# 3558012 Compilation fails when building with -ansi or -std=c++0x
- - fixed SF# 3563517 Get rid of loss-of-precision warnings on x64 MacOS
- - fixed SF#3562244: Portability fix for AF_LINK
- - fixed SF #3562400: DatagramSocketImpl comment is incorrect
- Release 1.4.7p1 (2014-11-25)
- ============================
- - Fixed Visual C++ 2010-2013 project files. Release builds now have optimization enabled.
- - Poco::URI: added constructor to create URI from Path.
- - fixed GH #618: OS X 10.10 defines PAGE_SIZE macro, conflicts with PAGE_SIZE in Thread_POSIX.cpp
- - Poco::Net::HTTPClientSession: added support for global proxy configuration
- - fixed GH #331: Poco::Zip does not support files with .. in the name.
- - fixed a memory leak in Poco::Net::Context constructor when it fails to load the certificate
- or private key files.
- - upgraded bundled SQLite to 3.8.7.2
- - fixed GH #229: added missing value() function
- - fixed GH #69: MySQL empty text/blob
- Release 1.4.7 (2014-10-06)
- ==========================
- - fixed GH #398: PropertyFileConfiguration: input != output
- - fixed GH #368: Build failure of Poco 1.4.6p2 on FreeBSD 9.2
- - fixed GH #318: Logger local time doesn't automatically account for DST
- - fixed GH #317: Poco::Zip does not support newer Zip file versions.
- - fixed GH #454: Fix: handle unhandled exceptions
- - fixed GH #463: XML does not compile with XML_UNICODE_WCHAR_T
- - fixed GH #282: Using Thread in a global can cause crash on Windows
- - fixed GH #424: Poco::Timer deadlock
- - fixed GH #465: Fix result enum type XML_Error -> XML_Status
- - fixed GH #510: Incorrect RSAKey construction from istream
- - fixed GH #332: POCO::ConsoleChannnel::initColors() assigns no color to
- PRIO_TRACE and wrong color to PRIO_FATAL
- - fixed GH #550: WebSocket fragmented message problem
- - Poco::Data::MySQL: added SQLite thread cleanup handler
- - Poco::Net::X509Certificate: improved and fixed domain name verification for
- wildcard domains
- - fixed a crash in Foundation testsuite with Visual C++ 2012
- - improved and fixed domain name verification for wildcard domains in
- Poco::Net::X509Certificate
- - updated TwitterClient sample to use new 1.1 API and OAuth
- - added Poco::Clock class, which uses a system-provided monotonic clock
- (if available) and is thus not affected by system realtime clock changes.
- Monotonic Clock is available on Windows, Linux, OS X and on POSIX platforms
- supporting clock_gettime() and CLOCK_MONOTONIC.
- - Poco::Timer, Poco::Stopwatch, Poco::TimedNotificationQueue and Poco::Util::Timer
- have been changed to use Poco::Clock instead of Poco::Timestamp and are now
- unaffected by system realtime clock changes.
- - added Poco::PBKDF2Engine class template
- - Poco::Net::HTTPCookie: added support for Priority attribute (backport from develop)
- - fixed makedepend.* scripts to work in paths containing '.o*'
- (contributed by Per-Erik Bjorkstad, Hakan Bengtsen)
- - Upgraded bundled SQLite to 3.8.6
- - Support for Windows Embedded Compact 2013 (Visual Studio 2012)
- - Project and solution files for Visual Studio 2013
- - Changes for C++11 compatibility.
- - fixed an issue with receiving empty web socket frames (such as ping)
- - improved error handling in secure socket classes
- - Poco::ByteOrder now uses intrinsics if available
- - added new text encoding classes: Latin2Encoding, Windows1250Encoding, Windows1251Encoding
- - Zip: Added CM_AUTO, which automatically selects CM_STORE or CM_DEFLATE based on file extension.
- Used to avoid double-compression of already compressed file formats such as images.
- Release 1.4.6p4 (2014-04-18)
- ============================
- - no longer use reverse DNS lookups for cert hostname validation
- - cert hostname validation is case insensitive and more strict
- - HTMLForm: in URL encoding, percent-encode more special characters
- - fixed thread priority issues on POSIX platforms with non-standard scheduling policy
- - XMLWriter no longer escapes apostrophe character
- - fixed GH #316: Poco::DateTimeFormatter::append() gives wrong result for Poco::LocalDateTime
- - fixed GH #305 (memcpy in Poco::Buffer uses wrong size if type != char)
- - Zip: fixed a crash caused by an I/O error (e.g., full disk) while creating a Zip archive
- Release 1.4.6p3 (2014-04-02)
- ============================
- - Fixed a potential security vulnerability in client-side X509
- certificate verification.
- Release 1.4.6p2 (2013-09-16)
- ============================
- - fixed GH #156: Possible buffer overrun in Foundation/EventLogChannel
- - XML: fixed an issue with parsing a memory buffer > 2 GB
- - upgraded to expat 2.1.0
- - Data/ODBC: added support for setting query timeout (via setProperty
- of "queryTimeout"). Timeout is int, given in seconds.
- - fixed a potential endless loop in SecureStreamSocketImpl::sendBytes()
- and also removed unnecessary code.
- - fixed GH #159: Crash in openssl CRYPTO_thread_id() after library libPocoCrypto.so
- has been unloaded.
- - fixed GH #155: MailOutputStream mangles consecutive newline sequences
- - fixed GH# 139: FileChannel::PROP_FLUSH is invalid (contains a tab character)
- - fixed GH# 173: HTTPClientSession::proxyConnect forces DNS lookup of host names
- - fixed GH# 194: MessageNotification constructor is inefficient.
- - fixed GH# 189: Poco::NumberParser::tryParse() documentation bug
- - fixed GH# 172: IPv6 Host field is stripped of Brackets in HTTPClientSession
- - fixed GH# 188: Net: SocketAddress operator < unusable for std::map key
- - fixed GH# 128: DOMWriter incorrectly adds SYSTEM keyword to DTD if PUBLIC is
- already specified
- - fixed GH# 65: Poco::format() misorders sign and padding specifiers
- - upgraded bundled SQLite to 3.7.17
- - upgraded bundled zlib to 1.2.8
- - fixed a potential memory leak in Poco::Net::HTTPClientSession if it is misused
- (e.g., sendRequest() is sent two times in a row without an intermediate call to
- receiveResponse(), or by calling receiveResponse() two times in a row without
- an intermediate call to sendRequest()) - GH #217
- - removed a few unnecessary protected accessor methods from Poco::Net::HTTPClientSession
- that would provide inappropriate access to internal state
- - fixed GH# 223 (Poco::Net::HTTPCookie does not support expiry times in the past)
- - fixed GH# 233: ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool ipV6Only)
- does not work
- - added ColorConsoleChannel and WindowsColorConsoleChannel classes supporting
- colorizing log messages
- - fixed GH# 259: Poco::EventLogChannel fails to find 64bit Poco Foundation dll
- - fixed GH# 254: UTF8::icompare unexpected behavior
- - Poco::UUID::tryParse() also accepts UUIDs without hyphens. Also updated documentation
- (links to specifications).
- - Added support for ARM64 architecture and iPhone 5s 64-bit builds
- (POCO_TARGET_OSARCH=arm64).
- Release 1.4.6p1 (2013-03-06)
- ============================
- - fixed GH# 71: WebSocket and broken Timeouts (POCO_BROKEN_TIMEOUTS)
- - fixed an ambiguity error with VC++ 2010 in Data/MySQL testsuite
- - Poco::Net::NetworkInterface now provides the interface index even for IPv4
- - added DNS::reload() as a wrapper for res_init().
- - On Linux, Poco::Environment::nodeId() first always tries to obtain the
- MAC address of eth0, before looking for other interfaces.
- - Poco::Net::HTTPSession now always resets the buffer in connect() to clear
- any leftover data from a (failed) previous session
- - fixed copysign namespace issue in FPEnvironment_DUMMY.h
- - fixed a warning in Poco/Crypto/OpenSSLInitializer.h
- - added a build configuration for BeagleBoard/Angstrom
- - fixed GH# 109: Bug in Poco::Net::SMTPClientSession::loginUsingPlain)
- - fixed compile errors with clang -std=c++11
- - fixed GH# 116: Wrong timezone parsing in DateTimeParse (fix by Matej Knopp)
- - updated bundled SQLite to 3.7.15.2
- Release 1.4.6 (2013-01-10)
- ==========================
- - changed FPEnvironment_DUMMY.h to include <cmath> instead of <math.h>
- - updated bundled SQLite to 3.7.15.1
- - fixed GH# 30: Poco::Path::home() throws
- - fixed SF Patch# 120 The ExpireLRUCache does not compile with a tuple as key on VS2010
- - fixed SF# 603 count() is missing in HashMap
- - Crypto and NetSSL_OpenSSL project files now use OpenSSL *MD.lib library files for
- static_md builds. Previously, the DLL import libs were used.
- - Poco::Environment::osDisplayName() now recognizes Windows 8/Server 2012
- Release 1.4.5 (2012-11-19)
- ==========================
- - added Visual Studio 2012 project files
- - buildwin.cmd now support building with msbuild for VS2010 and 2012.
- - added Poco::Optional class
- - fixed SF# 3558012 Compilation fails when building with -ansi or -std=c++0x
- - fixed SF# 3563517 Get rid of loss-of-precision warnings on x64 MacOS
- - fixed SF# 3562244: Portability fix for AF_LINK
- - fixed SF# 3562400: DatagramSocketImpl comment
- - fixed SF# 594: Websocket fails with small masked payloads
- - fixed SF# 588: Missing POCO_ARCH and POCO_ARCH_LITTLE_ENDIAN define for WinCE on SH4
- - fixed SF# 581: Out-of-bound array access in Unicode::properties() function.
- - fixed SF# 590: Segfault on FreeBSD when stack size not rounded
- - fixed SF# 586: Poco::DateTimeParser and ISO8601 issues when seconds fraction has more than 6 digits
- - Poco::Net::HTTPSSessionInstantiator::registerInstantiator() now optionally accepts a
- Poco::Net::Context object.
- - added Poco::XML::XMLWriter::depth() member function.
- - added Poco::XML::XMLWriter::uniquePrefix() and Poco::XML::XMLWriter::isNamespaceMapped().
- - Poco::FileChannel now supports a new rotateOnOpen property (true/false) which can be used
- to force rotation of the log file when it's opened.
- - fixed a bug in Poco::XML::XMLWriter::emptyElement(): need to pop namespace context
- - OS X builds now use Clang as default compiler
- - Updated SQLite to 3.7.14.1
- - POCO_SERVER_MAIN macro now has a try ... catch block for Poco::Exception and writes
- the displayText to stderr.
- - Poco/Platform.h now defines POCO_LOCAL_STATIC_INIT_IS_THREADSAFE macro if the compiler
- generates thread-safe static local initialization code.
- Release 1.4.4 (2012-09-03)
- ==========================
- - ZipStream now builds correctly in unbundled build.
- - added proxy digest authentication support to Net library
- - integrated MySQL BLOB fixes from Franky Braem.
- - use standard OpenSSL import libraries (libeay32.lib, ssleay32.lib) for Crypto and
- NetSSL_OpenSSL Visual Studio project files.
- - fixed a potential buffer corruption issue in Poco::Net::SecureStreamSocket if lazy
- handshake is enabled and the first attempt to complete the handshake fails
- - Poco::DateTimeParser::tryParse() without format specifier now correctly parses ISO8601
- date/times with fractional seconds.
- - Poco::Process::launch() now has additional overloads allowing to specify an initial
- directory and/or environment.
- - Poco::Net::FTPClientSession: timeout was not applied to data connection, only to
- control connection.
- - Fixed potential IPv6 issue with socket constructors if IPv6 SocketAddress is given
- (contributed by ??????? ????????? <[email protected]>).
- - Added an additional (optional) parameter to Poco::Thread::setOSPriority() allowing to
- specify a scheduling policy. Currently this is only used on POSIX platforms and allows
- specifying SCHED_OTHER (default), SCHED_FIFO or SCHED_RR, as well as other
- platform-specific policy values.
- - Added Poco::Crypto::DigestEngine class providing a Poco::DigestEngine interface to
- the digest algorithms provided by OpenSSL.
- - Fixed some potential compiler warnings in Crypto library
- - In some cases, when an SSL exception was unexpectedly closed, a generic Poco::IOException
- was thrown. This was fixed to throw a SSLConnectionUnexpectedlyClosedException instead.
- - Added Poco::ObjectPool class template.
- - Poco::Net::HTTPServer has a new stopAll() method allowing stopping/aborting of all
- currently active client connections.
- - The HTTP server framework now actively prevents sending a message body in the
- response to a HEAD request, or in case of a 204 No Content or 304 Not Modified
- response status.
- - fixed a DOM parser performance bug (patch by Peter Klotz)
- - fixed SF# 3559325: Util Windows broken in non-Unicode
- - updated iOS build configuration to use xcode-select for finding toolchain
- - Poco::Net::SecureSocketImpl::shutdown() now also shuts down the underlying socket.
- - fixed SF# 3552597: Crypto des-ecb error
- - fixed SF# 3550553: SecureSocketImpl::connect hangs
- - fixed SF# 3543047: Poco::Timer bug for long startInterval/periodic interval
- - fixed SF# 3539695: Thread attributes should be destroyed using the pthread_attr_destroy()
- - fixed SF# 3532311: Not able to set socket option on ServerSocket before bind
- Added Poco::Net::Socket::init(int af) which can be used to explicitely
- initialize the underlying socket before calling bind(), connect(), etc.
- - fixed SF# 3521347: Typo in UnWindows.h undef
- - fixed SF# 3519474: WinRegistryConfiguration bug
- Also added tests and fixed another potential issue with an empty root path passed to the constructor.
- - fixed SF# 3516827: wrong return value of WinRegistryKey::exists()
- - fixed SF# 3515284: RSA publickey format(X.509 SubjectPublicKeyInfo)
- - fixed SF# 3503267: VxWorks OS prio is not set in standard constructor
- - fixed SF# 3500438: HTTPResponse failure when reason is empty
- - fixed SF# 3495656: numberformater, numberparser error in mingw
- - fixed SF# 3496493: Reference counting broken in TaskManager postNotification
- - fixed SF# 3483174: LogFile flushing behavior on Windows
- Flushing is now configurable for FileChannel and SimpleFileChannel
- using the "flush" property (true or false).
- - fixed SF# 3479561: Subsequent IPs on a NIC is not enumerated
- - fixed SF# 3478665: Permission checks in Poco::File not correct for root
- - fixed SF# 3475050: Threading bug in initializeNetwork() on Windows
- - fixed SF# 3552680: websocket small frames bug and proposed fix
- - fixed a WebSocket interop issue with Firefox
- - added Poco::Net::MessageHeader::hasToken()
- - Poco::AtomicCounter now uses GCC 4.3 builtin atomics on more platforms
- - fixed SF# 3555938: NetSSL: socket closed twice
- - socket exceptions now include OS error code
- - fixed SF# 3556975: Need to fix Shared Memory for memory map
- - Poco::Net::SecureSocketImpl::close() now catches exceptions thrown by its call to shutdown().
- - fixed SF# 3535990: POCO_HAVE_IPv6 without POCO_WIN32_UTF8 conflict
- - fixed SF# 3559665: Poco::InflatingInputStream may not always inflate completely
- - added Poco::DirectoryWatcher class
- - fixed SF# 3561464: Poco::File::isDevice() can throw due to sharing violation
- - Poco::Zip::Compress::addRecursive() has a second variant that allows to specify the compression method.
- - Upgraded internal SQLite to 3.7.14
- Release 1.4.3p1 (2012-01-23)
- ============================
- - fixed SF# 3476926: RegDeleteKeyEx not available on Windows XP 32-bit
- Release 1.4.3 (2012-01-16)
- ==========================
- - fixed a compilation error with Data/MySQL on QNX.
- - fixed Util project files for WinCE (removed sources not compileable on CE)
- - removed MD2 license text from Ackowledgements document
- - fixed iPhone build config for Xcode 4.2 (compiler name changed to llvm-g++)
- - Poco::Util::XMLConfiguration: delimiter char (default '.') is now configurable.
- This allows for working with XML documents having element names with '.' in them.
- - Poco::Util::OptionProcessor: Required option arguments can now be specified as
- separate command line arguments, as in "--option value" in addition to the
- "--option=value" format.
- - Poco::Util::HelpFormatter: improved option help formatting if indentation has
- been set explicitely.
- - added Mail sample to NetSSL_OpenSSL, showing use of Poco::Net::SecureSMTPClientSession.
- - added additional read() overloads to Poco::Net::HTMLForm.
- - fixed SF# 3440769: Poco::Net::HTTPResponse doesn't like Amazon EC2 cookies.
- - added support for requiring TLSv1 to Poco::Net::Context.
- - added an additional constructor to Poco::Net::HTTPBasicCredentials, allowing
- the object to be created from a string containing a base64-encoded, colon-separated
- username and password.
- - Poco::Zip::ZipStreamBuf: fixed a crash if CM_STORE was used.
- - Added setContentLength64() and getContentLength64() to Poco::Net::HTTPMessage.
- - added Poco::Environment::osDisplayName().
- - fixed SF# 3463096: WinService leaves dangling handles (open() now does not reopen the
- service handle if it's already open)
- - fixed SF# 3426537: WinRegistryConfiguration can't read virtualized keys
- - added Poco::Buffer::resize()
- - fixed SF# 3441822: thread safety issue in HTTPClientSession:
- always use getaddrinfo() instead of gethostbyname() on all platforms supporting it
- - added version resource to POCO DLLs
- - fixed SF# 3440599: Dir Path in Quotes in PATH cause PathTest::testFind to fail.
- - fixed SF# 3406030: Glob::collect problem
- - added Poco::Util::AbstractConfiguration::enableEvents()
- - Poco::AtomicCounter now uses GCC builtins with GCC 4.1 or newer
- (contributed by Alexey Milovidov)
- - made Poco::Logger::formatDump() public as it may be useful for others as well
- (SF# 3453446)
- - Poco::Net::DialogSocket now has a proper copy constructor (SF# 3414602)
- - Poco::Net::MessageHeader and Poco::Net::HTMLForm now limit the maximum number of
- fields parsed from a message to prevent certain kinds of denial-of-service
- attacks. The field limit can be changed with the new method setFieldLimit().
- The default limit is 100.
- - Poco::NumberFormatter, Poco::NumberParser and Poco::format() now always use the
- classic ("C") locale to format and parse floating-point numbers.
- - added Poco::StreamCopier::copyStream64(), Poco::StreamCopier::copyStreamUnbuffered64()
- and Poco::StreamCopier::copyToString64(). These functions use a 64-bit integer
- to count the number of bytes copied.
- - upgraded internal zlib to 1.2.5
- - upgraded internal sqlite to 3.7.9
- - XML: integrated bugfix for Expat bug# 2958794 (memory leak in poolGrow)
- - Added support for HTTP Digest authentication (based on a contribution by
- Anton V. Yabchinskiy (arn at bestmx dot ru)). For information on how
- to use this, see the Poco::Net::HTTPCredentials, Poco::Net::HTTPDigestCredentials
- and Poco::Net::HTTPAuthenticationParams classes.
- - Poco::Net::HTTPStreamFactory and Poco::Net::HTTPSStreamFactory now support Basic
- and Digest authentication. Username and password must be provided in the URI.
- - added Poco::Net::WebSocket, supporting the WebSocket protocol as described in RFC 6455
- - NetSSL_OpenSSL: added client-side support for Server Name Indication.
- Poco::Net::SecureSocketImpl::connectSSL() now calls SSL_set_tlsext_host_name()
- if its available (OpenSSL 9.8.6f and later).
- - added Poco::Net::HTTPClientSession::proxyConnect() (factored out from
- Poco::Net::HTTPSClientSession::connect())
- - added Poco::Process::kill(const Poco::ProcessHandle&) which is preferable to
- kill(pid) on Windows, as process IDs on Windows may be reused.
- - fixed SF# 3471463: Compiler warnings with -Wformat
- - Poco::Util::Application::run() now catches and logs exceptions thrown in initialize()
- - Fixed a WinCE-specific bug in Poco::Util::ServerApplication where uninitialize() would
- be called twice.
- - fixed SF# 3471957: WinRegistryKey::deleteKey() unable to delete alt views
- - Added additional constructor to Poco::ScopedLock and Poco::ScopedLockWithUnlock
- accepting a timeout as second argument.
- - Added Poco::Logger::parseLevel()
- - Poco::format(): an argument that does not match the format
- specifier no longer results in a BadCastException. The string [ERRFMT] is
- written to the result string instead.
- - PageCompiler: added createSession page attribute.
- Release 1.4.2p1 (2011-09-24)
- ============================
- - On Linux, the RTLD_DEEPBIND option is no longer passed to dlopen().
- This change was introduced in 1.4.2 to solve a specific problem one customer
- was having. Unfortunately, it leads to problems with RTTI.
- - It's now possible to pass flags (SHLIB_GLOBAL, SHLIB_LOCAL) to
- Poco::SharedLibrary::load() (and the constructor implicitly calling load()),
- controlling the mode flags (RTLD_GLOBAL, RTLD_LOCAL) passed to dlopen().
- On platforms not using dlopen(), these flags are ignored.
- - fixed SF# 3400267: Path_WIN32.cpp bug
- Release 1.4.2 (2011-08-28)
- ==========================
- - added Poco::DateTimeFormat::ISO8601_FRAC_FORMAT
- - added new Poco::DateTimeFormatter and Poco::DateTimeParser format specifier:
- %s for seconds with optional fractions of a second
- - fixed a problem with ioctl() on BSD platforms (including OS X) where the
- second argument to ioctl() is unsigned long instead of int, causing bad
- things on a OS X 64-bit kernel.
- - fixed a potential endless loop when enumerating IPv6 network addresses
- (reported by Laurent Carcagno)
- - new compile-time config option on Windows to set thread names in
- debugger. Enable with -DPOCO_WIN32_DEBUGGER_THREAD_NAMES. Available
- only in debug builds.
- - Cipher can now create Base64 and HexBinary encoded output without linefeeds
- (suitable for use in cookies, etc.)
- - added Poco::Path::popFrontDirectory()
- - improved VxWorks support
- - IPv6 fixes: added proper scope id handling in IPAddress, SocketAddress
- and related classes.
- - Added Poco::Net::ServerSocket::bind6() which allows control over the
- IPPROTO_IPV6/IPV6_V6ONLY socket option.
- - Removed Poco::MD2Engine class due to licensing issues (the
- license for the MD2 code from RSA only allows non-commercial
- use). Note that the MD4 and MD5 code from RSA does not have
- this issue.
- - fixed a Net HTTP client testsuite issue where some tests might
- have failed due to prematurely aborted connections by
- the HTTPTestServer.
- - Poco::Net::SocketAddress: when there is more than one address
- returned by a DNS lookup for a name, IPv4 addresses will be
- preferred to IPv6 ones.
- - NetworkInterface::list() now also returns IPv4 interfaces on Windows when
- built with -DPOCO_HAVE_IPv6
- - XMLWriter: fixed a bug with attribute namespaces (no namespace prefix
- written if attribute namespace is the same as element namespace)
- - fixed SF# 3378588: Mismatched new[]/delete (in RSAEncryptImpl and RSADecryptImpl)
- - fixed SF# 3212954 (OpenSSLInitializer::uninitialize() crash) and
- SF# 3196862 (Static OpenSSLInitializer instance causes Windows deadlocks) by
- removing the static Poco::Crypto::OpenSSLInitializer instance. Automatic OpenSSL
- initialization is now done through Poco::Crypto::Cipher, Poco::Crypto::CipherKey,
- Poco::Crypto::X509Certificate, Poco::Net::Context classes; however, it is still
- recommended to call Poco::Crypto::initializeCrypto() and
- Poco::Crypto::uninitializeCrypto() early at application startup, and late at
- shutdown respectively (or Poco::Net::initializeSSL()/Poco::Net::uninitializeSSL()
- if the NetSSL library is used) to avoid multiple full OpenSSL init/uninit cycles
- during application runtime.
- - Poco::Logger now also support a symbolic log level "none"
- (for use with setLevel()) that disables logging completely
- for that Logger (equivalent to setLevel(0)).
- - Added experimental Android support, using the existing gmake-based
- build system.
- - fixed SF# 3288584: DateTimeFormatter link error
- - fixed SF# 3187117: Typo in InflatingInputStream doc
- - fixed SF# 3309731: _WIN32_WCE comparison should be with 0x600 not 600
- - fixed SF# 3393026: RegularExpression.h identical enum value
- - fixed SF# 3274222: AtomicCounter's postfix operators aren't atomic on Windows
- - fixed SF# 3317177: Handle leak on windows
- - fixed SF# 3181882: Poco::URI::getPathEtc() double-encodes query
- - fixed SF# 3379935: ThreadPool Start Bug
- - fixed SF# 3354451: Poco::Format::parsePrec never sets the precision to zero
- - fixed SF# 3387258: _MAX_PATH used but unknown in Path_WIN32
- - fixed a problem in RSAKeyImpl where direct access to the RSA in a EVP_PKEY
- would no longer work in recent OpenSSL versions. Using EVP_PKEY_get1_RSA()
- fixes the issue.
- - added Poco::Crypto::EncryptingInputStream, Poco::Crypto::EncryptingOutputStream,
- Poco::Crypto::DecryptingInputStream and Poco::Crypto::DecryptingOutputStream.
- - fixed SF# 3148126: HTTPSClientSession destructor (!) throws an IOException
- - fixed SF# 3178098: Add constructor to Poco::TemporaryFile to specify directory
- - fixed SF# 3175310: Absolute path when device
- - fixed SF# 3301207: Guided tour example contradicts apidoc (API doc was wrong)
- - Poco::Net::HTTPMessage::setContentLength() and Poco::Net::HTTPMessage::getContentLength() now
- use std::streamsize instead of int. This enables 64-bit Content-Length support at least
- on 64-bit platforms.
- - fixed SF# 3177530: TemporaryFile::tempName() + glob bug on xp
- - fixed SF# 3177372: FileChannel documentation inconsistency
- - added %E format specifier to Poco::PattermFormatter (epoch time in seconds
- since midnight, January 1 1970)
- - On Windows, Poco::Util::ServerApplication now supports a /description command
- line argument for specifying a service description (together with /registerService)
- - added Poco::Util::WinService::setDescription() and
- Poco::Util::WinService::getDescription()
- - fixed SF# 3155477: Incorrect URI path handling
- - fixed SF# 3309736: Extended Exception macros to set default exception code
- new macro is named POCO_DECLARE_EXCEPTION_CODE
- - added getter functions for modulus and exponents to Poco::Crypto::RSAKey.
- - added Poco::Net::SocketAddress::operator == () and
- Poco::Net::SocketAddress::operator != ()
- - fixed SF# 3182746: IPAddress.cpp IPv6 bug on big-endian
- - fixed SF# 3196961: Unix daemon fails to loadConfiguration() if started from cwd
- - fixed SF# 3393700: NotificationCenter may call a removed observer and crash.
- - Reworked implementation of the events framework (Poco::BasicEvent and friends).
- The framework is now completely multithreading save (even in the case that
- an event subscriber object unsubscribes and is deleted while an event is
- being dispatched). Also, the restriction that any object can only register
- one delegate for each event has been removed. For most cases, dispatching
- events should be faster, as dispatching an event now needs less dynamic memory
- allocations.
- - fixed SF# 3178109: getNodeByPath() changes:
- getNodeByPath() and getNodeByPathNS() have been moved to Poco::XML::Node.
- Furthermore, when invoked on a Poco::XML::Document, the behavior has changed
- so that the document element is now included when traversing the path (previously,
- traversal would start at the document element, now it starts at the document).
- The path expression can now start with a double-slash, which results in a recursive
- search for the path's first element in the DOM tree.
- - fixed SF# 3382935: String data being truncated using ODBC, and
- SF# 2921813: Wrong implementation of the ODBC string binding
- Release 1.4.1p1 (2011-02-08)
- ============================
- - Poco::Mutex is now a recursive mutex again on Linux
- (this was caused by an unfortunate feature test for
- PTHREAD_MUTEX_RECURSIVE which did not work on Linux
- as PTHREAD_MUTEX_RECURSIVE is an enum value and not
- a macro)
- - Poco::Net::SecureSocketImpl::abort() now only shuts
- down the underlying socket connection and does not free
- the SSL object, due to multithreading issues.
- Release 1.4.1 (2011-01-29)
- ==========================
- - fixed SF# 3150223: Poco::BinaryReader cannot read std::vector correctly
- - fixed SF# 3146326: SharedMemory issue
- - made Poco::Net::HTTPSession::abort() virtual
- - added Poco::Net::SecureStreamSocket::abort() to immediately close
- a SSL/TLS connection without performing an orderly SSL/TLS shutdown.
- - fixed SF# 3148126: HTTPSClientSession destructor (!) throws an IOException.
- Added try/catch block to Poco::Net::SecureSocketImpl destructor.
- - added additional constructor to Poco::Net::HTTPSClientSession, taking
- both a socket and a session object.
- - Poco::Net::HTTPSession::abort() now also can be used with a
- Poco::Net::HTTPSClientSession.
- - fixed SF# 3148045: make clean and distclean issues
- - changed Data library names on Unix/Linux platforms to
- match the names on Windows (PocoSQLite -> PocoDataSQLite,
- PocoMySQL -> PocoDataMySQL, PocoODBC -> PocoDataODBC)
- - added additional options to configure script
- - added additional documentation to Poco::Net::HTTPClientSession
- - Poco::Net::HTTPClientSession::receiveResponse() closes the connection
- if an exception is thrown while reading the response header.
- This ensures that a new connection will be set up for the next request
- if persistent connections are used.
- - improved Poco::Net::MultipartDecoder performance by reading directly from streambuf
- - improved performance of Poco::Base64Encoder, Poco::Base64Decoder,
- Poco::HexBinaryEncoder and Poco::HexBinaryDecoder by working directly with the
- given stream's streambuf.
- - improved performance of MessageHeader::read() by reading directly from streambuf
- instead of istream.
- - it is now possible to specify additional MIME part header fields
- for a MIME part through the Poco::Net::PartSource class.
- - upgraded SQLite to release 3.7.4
- - added experimental VxWorks support for VxWorks 5.5.1/Tornado 2.2 and
- newer. Please see the VxWorks Platform Notes in the reference documentation
- for more information. Currently, the VxWorks is untested; full support
- will be available in release 1.4.2.
- - fixed SF# 3165918: Poco::DynamicAny fails to convert from string to float
- - fixed SF# 3165910: Poco::Net::MessageHeader does not accept HTTP conforming header
- - made Poco::Task::cancel() virtual so that tasks can implement custom
- cancellation behavior.
- - added optional argument to Poco::Util::WinRegistryKey constructor
- to specify additional flags (in addition to KEY_READ and KEY_WRITE)
- for the samDesired argument of RegOpenKeyEx() or RegCreateKeyEx().
- - improved Poco::BasicEvent::notify() performance by avoiding an unnecessary heap
- allocation.
- - added additional well-known port numbers to Poco::URI: rtsp, sip, sips, xmpp.
- - added Poco::Net::MediaType::matchesRange()
- - improved invalid socket handling: a Poco::Net::InvalidSocketException is
- now thrown instead of an assertion when an operation is attempted on a closed or
- otherwise uninitialized socket.
- Release 1.4.0 (2010-12-14)
- ==========================
- - SSLManager: documentation fixes, code cleanup
- - SSLManager: renamed PrivateKeyPassPhrase event to PrivateKeyPassphraseRequired
- - added HTTPServerRequestImpl::socket() to get access to the underlying socket
- - added Socket::secure() to find out whether a given socket supports SSL/TLS
- - added SecureStreamSocket::havePeerCertificate()
- - NetSSL: added support for turning off extended certificate validation (hostname matching)
- - fixed SF# 2941228: ICMPClient::ping() issues on Mac OS X
- - fixed SF# 2941231: ICMPEventArgs out of bounds array access
- - added PageCompiler sample
- - added missing newline at end of xmlparse.c
- - Poco::Glob can now be used with an empty pattern which will match nothing (patch from Kim Graesman)
- - added support for HTTP proxy authentication (Basic authentication only)
- - fixed SF# 2958959: XMLWriter must encode CR, LF and TAB in attribute values as character entities.
- - HTMLForm now supports PUT requests as well (see <http://pocoproject.org/forum/viewtopic.php?f=12&t=2163&p=3930#p3930>)
- - fixed SF# #2970521: FileOutputStream and file permissions.
- (also fixed in File class)
- - removed an unused (and wrong) default parameter from EventImpl constructor for WIN32.
- - added full support for session caching to NetSSL_OpenSSL
- - fixed SF# 2984454: Poco::Util::Timer::scheduleAtFixedRate() works incorrectly
- - fixed a bug in Poco::Util::Timer that could lead to high CPU load if
- the system clock is moved forward.
- - added system.nodeId to SystemConfiguration
- - added a note to Poco::Util::ServerApplication documentation regarding
- creation of threads
- - added Poco::Net::IPAddress::broadcast() and Poco::Net::IPAddress::wildcard() to
- create broadcast (255.255.255.255) and wildcard (0.0.0.0) addresses.
- - fixed SF# 2916154: Poco::Net::IPAddress::isLoopback() only works for 127.0.0.1.
- - added build configuration for iPhone Simulator
- - GNU Make based build system provides new variables: POCO_HOST_BINDIR, POCO_HOST_BINPATH,
- POCO_HOST_LIBDIR, POCO_HOST_LIBPATH and POCO_TARGET_* equivalents.
- - Application::initialize() and Application::uninitialize() will now be called from within run().
- This solves various issues with uninitialize() not being called, or being called inappropriately
- from the Application destructor.
- Please note that this change will break applications that use the Application class,
- but only call init() and not run().
- - added /startup option to specify startup mode for Windows services (automatic or manual)
- - fixed SF# 2967354: SecureSocketImpl shutdown/close problem
- - fixed SF# 3006340: LinearHashTable grows even if key already exists
- - fixed a particularly nasty Windows error handling issue that manifested itself on WinCE:
- WSAGetLastError() would be called after a std::string was created. The string creation could result
- in a heap operation which called a Windows API to allocate memory. This would reset the
- GetLastError() error code. Since WSAGetLastError() is just an alias for GetLastError(), the actual
- error code from the socket operation would be lost.
- - upgraded SQLite to 3.7.3
- - added --header-prefix option to PageCompiler
- - fixed SF# 3003875: SQLite data binding is broken
- - fixed SF# 2993988: Issue with multiple calls to open()/close() on File*Stream
- - fixed SF# 2990256: HTMLForm and file uploads
- - fixed SF# 2969227: DateTimeParser bug
- - fixed SF# 2966698: Socket connect with timeout issue
- - fixed SF# 2981041: Bind NULL to a query (patch supplied)
- - fixed SF# 2961419: UTF8Encoding::convert() doesn't work properly in DEBUG mode
- - fixed SF# 2957068: Timeout value not picked up by proxy in HTTPSClientSession
- - fixed NetSSL_OpenSSL test runner for Poco::Util::Application class changes
- - Poco::AbstractEvent, Poco::AbstractCache and related classes now accept a Mutex class as additional template argument.
- Poco::NullMutex can be used if no synchronization is desired.
- - Added Poco::AbstractEvent::empty() to check whether an event has registered delegates.
- - Poco::URI now correctly handles IPv6 addresses.
- - Added Poco::Nullable class template.
- - Added Poco::NullMutex, a no-op mutex to be used as template argument for template classes
- taking a mutex policy argument.
- - Poco::XML::XMLWriter: fixed a namespace handling issue that occured with startPrefixMapping() and endPrefixMapping()
- - Poco::Net::Context now allows for loading certificates and private keys from Poco::Crypto::X509Certificate objects
- and Poco::Crypto::RSAKey objects.
- - Poco::Crypto::RSAKey no longer uses temporary files for stream operations. Memory buffers are used instead.
- - fixed SF# 2957865: added Poco::UUID::tryParse()
- - All Zip classes now use Poco::File[Input|Output]Stream instead of std::[i|o]fstream.
- UTF-8 filenames will now be handled correctly on Windows.
- - fixed SF# 2902029: zlib flush support (Z_SYNC_FLUSH)
- - added Poco::TextBufferIterator class
- - fixed SF# 2977249: Use epoll instead select under Linux
- Socket::select() and Socket::poll() will use epoll under Linux if the Net library is compiled
- with -DPOCO_HAVE_FD_EPOLL. This is the default for the Linux build configuration (but not for
- the various build configurations targeting embedded Linux platforms).
- - fixed SF# 2941664: Memory leak in DeflatingStream with zero-length streams (also fixed some other potential,
- but unlikely, memory leaks)
- - fixed SF# 2946457: added RejectCertificateHandler
- - fixed SF# 2946621: Poco::Path bug with POCO_WIN32_UTF8
- - fixed SF# 2929805: Environment::nodeId() does not work if no eth0 device exists
- - Environment::nodeId() no longer throws if no hardware ethernet address can be determined.
- It returns an all-zero address instead.
- - Added additional classification functions to Poco::Unicode class; made classification functions inline.
- - added Ascii class for ASCII character classification.
- Methods of the Ascii class are now used instead of the
- standard library functions (std::isspace(), etc.) due to
- possible inconsistent results or assertions when the
- standard library functions are used with character codes
- outside the ASCII range.
- - Poco::Net::MailMessage: fixed a bug in StringPartHandler that resulted in incorrect handling of non-ASCII data if
- char is signed.
- - Improved Poco::Net::SMTPClientSession compatibility with various mail servers when using AUTH_LOGIN authentication.
- - Added CRAM-SHA1 support to Poco::Net::SMTPClientSession
- - Poco::Net::SMTPClientSession now also supports login with AUTH PLAIN.
- - Added Poco::Net::SecureSMTPClientSession class, supporting STARTTLS for secure SMTP connections.
- - fixed an issue with SharedMemory on POSIX systems, where a shared memory region would be deleted
- despite the server flag set to true (see http://pocoproject.org/forum/viewtopic.php?f=12&t=3494).
- - PageCompiler: added a new page context directive, to allow passing custom context objects to the
- request handler.
- - fixed StreamSocketImpl::sendBytes() for non-blocking sockets
- - added Poco::Net::DialogSocket::receiveRawBytes(), which should be used instead of receiveBytes() due to internal
- buffering by DialogSocket.
- - DOMParser: FEATURE_WHITESPACE has been renamed to FEATURE_FILTER_WHITESPACE (which now matches the underlying URI)
- and is now handled correctly (previously we did the exact reverse thing)
- - added Poco::Util::AbstractConfiguration::remove() to remove a configuration property; added removeRaw() implementations
- to all implementations (contributions by Daniel Hobi and Alexey Shults).
- - fixed NetSSL_OpenSSL compilation error on Windows with OpenSSL 1.0
- - Added optional FIPS mode support to NetSSL_OpenSSL (contributed by Lior Okman).
- If OpenSSL has been configured and built with FIPS support, then FIPS support can
- be enabled by calling Poco::Crypto::OpenSSLInitializer::enableFIPSMode(true); or
- by setting the fips property in the OpenSSL configuration to true (see Poco::Net::SSLManager
- for details).
- - fixed SF# 3031530: Ping and possible no timeout
- - added Poco::Net::SocketReactor::onBusy(), called whenever at least one notification will
- be dispatched.
- - fixed SF# 3034863: Compiler warning in net/IPAddress.h with poco 1.3.2
- - added support for CRAM-SHA1 authentication to SMTPClientSession
- - Poco::format(): arguments can now be addressed by their index, e.g. %[2]d
- - Poco::Util::Timer::cancel() now accepts an optional boolean argument.
- If true is passed, cancel() waits until the task queue has been purged.
- Otherwise, it returns immediately and works asynchronously, as before.
- - Poco::Net::HTTPServerResponse::redirect() now accepts an optional additional
- argument to specify the HTTP status code for the redirection.
- - fixed a warning (BinaryReader.cpp) and error (ThreadLocal.cpp) in Foundation when compiling with Visual Studio 2010
- - fixed a wrong exception in Poco::Net::POP3ClientSession
- - Poco::Net::FTPClientSession and Poco::Net::SMTPClientSession now set the error code in exceptions they throw
- - fixed a potential race condition with terminating a Windows service based on Poco::Util::ServerApplication
- - fixed a bug in global build configuration file: explicitly setting POCO_CONFIG did not work on Solaris platforms,
- as it was always overridden by the automatically determined configuration.
- - Added support for MinGW cross builds on Linux.
- - Changed location of statically linked build products in the gmake-based build system.
- Statically linked executables are now in bin/$(OSNAME)/$(OSARCH)/static and no longer
- have the _s suffix
- - The POCO_VERSION macro now is in its own header file, "Poco/Version.h". It is no longer
- available through "Poco/Foundation.h".
- - added Poco::Net::HTTPCookie::escape() and Poco::Net::HTTPCookie::unescape().
- - fixed SF# 3021173: Thread (POSIX) returns uninitialised value for OS priority
- - fixed SF# 3040870: ThreadPool has no function to get assigned name
- - fixed SF# 3044303: Can't use own config file on Solaris & OSARCH_64BITS ignored
- - fixed SF# 2943896: AsyncChannel::log blocks
- - fixed a bug in Poco::Util::WinRegistryKey::getInt():
- The size variable passed to RegQueryValueExW() should be initialized to the size
- of the output buffer.
- - Added rudimentary support for compiling with Clang 2.0 (Xcode 4) on Mac OS X.
- - New build configurations for Mac OS X: Darwin32 and Darwin64 for explicit
- 32-bit and 64-bit builds. Note that the default Darwin build configuration
- will build 64-bit on Snow Leopard and 32-bit on Leopard, but will always place
- build products in Darwin/i386. The new Darwin32 and Darwin64 configurations
- will use the correct directories.
- - fixed SF# 3051598: Bug in URL encoding
- - Poco::ThreadPool::stopAll() (and thus also the destructor) will now wait for each
- pooled thread to terminate before returning. This fixes an issue with creating
- and orderly shutting down a thread pool in a plugin. Previously, a pooled thread
- in a thread pool created by a dynamically loaded library might still be running
- when the plugin's shared library was unloaded, resulting in Bad Things happening.
- This can now no longer happen. As a downside, a pooled thread that fails to
- finish will block stopAll() and the destructor forever.
- - NetSSL_OpenSSL: for a SecureStreamSocket, available() now returns the number of bytes that
- are pending in the SSL buffer (SSL_pending()), not the actual socket buffer.
- - Added Poco::Net::HTTPClientSession::secure() to check for a secure connection.
- - Poco::Net::HTTPRequest::setHost() now does not include the port number in the Host header
- if it's either 80 or 443.
- - log messages can now optionally include source file path and line number
- - Poco::PatternFormatter can format source file path and line number (%U, %u)
- - logging macros (poco_information(), etc.) now use __LINE__ and __FILE__
- - new logging macros that incorporate Poco::format(): poco_information_f1(logger, format, arg) with up to 4 arguments
- - added Poco::Net::HTTPSession::attachSessionData() and Poco::Net::HTTPSession::sessionData()
- to attach arbitrary data to a HTTP session.
- - added additional constructors to zlib stream classes that allow passing
- a windowBits parameter to the underlying zlib library.
- - fixed a potential error handling issue in Poco::Net::SecureSocketImpl.
- - fixed SF# 3110272: RSACipherImpl bug.
- - fixed SF# 3081677: ConfigurationView's getRaw not retrieving xml attributes.
- - added basic support for Canonical XML and better pretty-printing support to Poco::XML::XMLWriter.
- - Poco::Util::AbstractConfiguration now supports events fired when changing or
- removing properties.
- - XML: added support for finding DOM nodes by XPath-like
- expressions. Only a very minimal subset of XPath is supported.
- See Poco::XML::Element::getNodeByPath(), Poco::XML::Element::getNodeByPathNS()
- and the same methods in Poco::XML::Document.
- - Poco::Timer: If the callback takes longer to execute than the
- timer interval, the callback function will not be called until the next
- proper interval. The number of skipped invocations since the last
- invocation will be recorded and can be obtained by the callback
- by calling skipped().
- - Poco::BinaryReader and Poco::BinaryWriter now support reading and
- writing std::vectors of the supported basic types. Also, strings
- can now be written in a different encoding (a Poco::TextEncoding
- can be optionally passed to the constructor).
- - Poco::UUID::nil() and Poco::UUID::isNil() have been renamed to
- Poco::UUID::null() and Poco::UUID::isNull(), respectively, to avoid
- issues with Objective-C++ projects on Mac OS X and iOS where nil is
- a system-provided macro.
- - Crypto bugfixes: RSACipherImpl now pads every block of data, not just the
- last (or last two).
- - Improved Crypto testsuite by adding new tests
- - Added new Visual Studio project configurations: debug_static_mt and release_static_mt
- (linking with static runtime libraries). The existing configurations debug_static
- and release_static have been renamed to debug_static_md and release_static_md, respectively.
- The suffixes of the static libraries have also changed. The static_md configurations
- now build libraries with suffixes md[d], while the libraries built by the static_mt
- configurations have mt[d] suffixes.
- - Added Visual Studio project files for 64-bit builds.
- - Added Visual Studio 2010 project files.
- - Removed the use of local static objects in various methods due to
- their construction not being threadsafe (and thus leading to
- potential race conditions) on Windows/Visual C++.
- - Fixed some warning on 64-bit Windows builds.
- - The name of the Data connector libraries have changed. They are now
- named PocoDataMySQL, PocoDataODBC and PocoDataSQLite.
- - fixed SF# 3125498: Linux NetworkInterface::list() doesn't return IPv6 IPs
- - fixed SF# 3125457: IPv6 IPAddress tests are wrong
- - Added initialization functions for the NetSSL_OpenSSL and Crypto libraries.
- These should be called instead of relying on automatic initialization,
- implemented with static initializer objects, as this won't work with
- statically linked executables (where the linker won't include the
- static initializer object).
- The functions are Poco::Crypto::initializeCrypto(), Poco::Crypto::uninitializeCrypto(),
- Poco::Net::initializeSSL() and Poco::Net::uninitializeSSL().
- Applications using Crypto and/or NetSSL should call these methods appropriately at
- program startup and shutdown.
- Note: In release 1.3.6, similar functions have been added to the Net library.
- Release 1.3.6p2 (2010-01-15)
- ============================
- - fixed an issue in the Windows implementation Poco::RWLock, where
- tryReadLock() sometimes would return false even if no writers
- were using the lock (fix contributed by Bjrn Carlsson)
- - added Poco::Environment::libraryVersion().
- - fixed SF# 2919461: Context ignores parameter cypherList
- - removed an unused enum from RSACipherImpl.cpp (Crypto)
- - integrated a new expat patch for CVE-2009-3560.
- - fixed SF# 2926458: SSL Context Problem. The Poco::Net::Context
- class now makes sure that OpenSSL is properly initialized.
- - updated iPhone build configuration (contributed by Martin York)
- - fixed SF# 1815124 (reopened): XML Compile failed on VS7.1 with
- XML_UNICODE_WCHAR_T
- - fixed SF# 2932647: FTPClientSession::getWorkingDirectory() returns a bad result
- Release 1.3.6p1 (2009-12-21)
- ============================
- - added support for using external zlib, pcre, expat and sqlite3 instead of
- bundled ones (-DPOCO_UNBUNDLED, configure --unbundled)
- - fixed SF# 2911407: Add sh4 support
- - fixed SF# 2912746: RSAKey::EXP_LARGE doesn't work
- - fixed SF# 2904119: abstractstrategy uses std::set but do not includes it
- - fixed SF# 2909946: localtime NULL pointer
- - fixed SF# 2914986: potential expat DoS security issues (CVE-2009-3560 and CVE-2009-3720)
- - fixed SF# 2916305: SSL Manager crashes
- - fixed SF# 2903676: Tuple TypeHander does not handle composites.
- Release 1.3.6 (2009-11-24)
- ==========================
- - added Environment::processorCount()
- - added POCO_VERSION macro to Poco/Foundation.h
- - fixed SF# 2807527: Poco::Timer bug for long startInterval/periodic interval
- - fixed a bug similar to SF# 2807527 in Poco::Util::Timer.
- - fixed SF# 2795395: Constructor doesn't treat the params "key" and "iv"
- - fixed SF# 2804457: DateTime::checkLimit looks wrong
- - fixed SF# 2804546: DateTimeParser requires explicit RFC1123 format
- - added ReleaseArrayPolicy to Poco::SharedPtr
- - upgraded to SQLite 3.6.20
- - fixed SF# 2782709: Missing semicolons in "Logger.h" convenience
- - fixed SF# 2526407: DefaultStrategy.h ++it instead of it++ in a loop
- - fixed SF# 2502235: Poco STLPort patch
- - fixed SF# 2186643: Data::Statement::reset() not implemented in 1.3.3
- - fixed SF# 2164227: Allow File opened read only by FileInputSteam to be writable
- - fixed SF# 2791934: use of char_traits::copy in BufferedStreamBuf::underflow
- - fixed SF# 2807750: Support additional SQL types in SQLite
- - fixed documentation bugs in Timed/PriorityNotificationQueue
- - fixed SF# 2828401: Deadlock in SocketReactor/NotificationCenter (also fixes patch# 1956490)
- NotificationCenter now uses a std::vector internally instead of a std::list, and the mutex is
- no longer held while notifications are sent to observers.
- - fixed SF# 2835206: File_WIN32 not checking aganist INVALID_HANDLE_VALUE
- - fixed SF# 2841812: Posix ThreadImpl::sleepImpl throws exceptions on EINTR
- - fixed SF# 2839579: simple DoS for SSL TCPServer, HTTPS server
- No SSL handshake is performed during accept() - the handshake is delayed until
- sendBytes(), receiveBytes() or completeHandshake() is called for the first time.
- This also allows for better handshake and certificate validation when using
- nonblocking connections.
- - fixed SF# 2836049: Possible handle leak in FileStream
- If sync() fails, close() now simply set's the stream's bad bit.
- In any case, close() closes the file handle/descriptor.
- - fixed SF# 2814451: NetSSL: receiveBytes crashes if socket is closed
- - added a workaround for Vista service network initialization issue
- (an Windows service using the Net library running under Vista will
- crash in the call to WSAStartup() done in NetworkInitializer).
- Workaround is to call WSAStartup() in the application's main().
- Automatic call to WSAStartup() in the Net library can now be disabled
- by compiling Net with -DPOCO_NET_NO_AUTOMATIC_WSASTARTUP. Also
- the new Poco::Net::initializeNetwork() and Poco::Net::uninitializeNetwork()
- functions can be used to call WSAStartup() and WSACleanup(), respectively,
- in a platform-independent way (on platforms other than Windows, these
- functions will simply do nothing).
- - added VCexpress build script support (contributed by Jolyon Wright)
- - fixed SF# 2851052: Poco::DirectoryIterator copy constructor is broken
- - fixed SF# 2851197: IPAddress ctor throw keyword missing
- - added Poco::ProtocolException
- - PageCompiler improvements: new tags, support for buffered output, etc.
- - better error reporting in Data MySQL connector (patch #2881270 by Jan "HanzZ" Kaluza)
- - fixed SF# 1892462: FTPClient:Choose explicitely between EPSV and PASV
- - fixed SF# 2806365: Option for PageCompiler to write output to different dir
- - fixed a documentation bug (wrong sample code) in Process::launch() documentation
- - added --header-output-dir option to PageCompiler
- - fixed SF# 2849144: Zip::Decompress notifications error
- - SAXParser has a new feature: "http://www.appinf.com/features/enable-partial-reads".
- See ParserEngine::setEnablePartialReads() for a description of what this does.
- - fixed SF# 2876179: MySQL Signed/Unsigned value bug
- - fixed SF# 2877970: possible bug in timer task
- - fixed SF# 2874104: wrong parsing empty http headers
- - fixed SF# 2860694: Incorrect return code from SecureStreamSocketImpl::sendBytes
- - fixed SF# 2849750: Possible bug with XMLWriter?
- - added MailMessage::encodeWord() to support RFC 2047 word encoded
- mail header fields when sending out mail containing non-ASCII
- characters.
- - fixed SF# 2890975: SMTPClientSession bug with 7BIT encoding
- - fixed an issue with retrieving the value of socket options on Windows 7.
- Before obtaining the value of a socket, we now initialize the variable receiving the
- socket option value to zero.
- - fixed SF# 2836141: Documentation errors
- - fixed SF# 2864232: Socket::select() does not detect closed sockets on windows
- - fixed SF# 2812143: Socket::select() should check socket descriptors...
- - fixed SF# 2801750: NetworkInterface <iface-Obj>forName returns wrong subnetMask
- - fixed SF# 2816315: Problem with POSIX Thread::sleepImpl
- - fixed SF# 2795646: IPv6 address parsing bug
- - fixed #0000092: ServerApplication::waitForTerminationRequest(), SIGINT and GDB.
- Poco::Util::ServerApplication::waitForTerminationRequest() no longer registers a
- signal handler for SIGINT if the environment variable POCO_ENABLE_DEBUGGER
- is defined.
- - fixed SF# 2896070: Poco::Net::Context with non-ASCII paths
- - added Unicode Surrogate support to Poco::UTF16Encoding.
- See Poco::TextEncoding::queryConvert() and Poco::TextEncoding::sequenceLength()
- for how this is implemented. Contributed by Philippe Cuvillier.
- - fixed SF# 2897650: [branch 1.3.6] Net.SocketAddress won't compile for CYGWIN
- - fixed SF# 2896161: Building on Windows fails when basedir has space in it
- - fixed SF# 2864380: Memory leak when using secure sockets
- - NetSSL_OpenSSL: the SSL/TLS session cache is now disabled by default and
- can be enabled per Context using Poco::Net::Context::enableSessionCache().
- - fixed SF# 2899039: Wrong DST handling in LocalDateTime
- - added RWLock::ScopedReadLock and RWLock::ScopedWriteLock (contributed by Marc Chevrier)
- - added Thread::TID type, as well as Thread::tid() and Thread::currentTid() to obtain the native
- thread handle/ID
- - added Zip file comment support
- - On Windows, Poco::SharedLibrary::load() now uses LoadLibraryEx instead of LoadLibrary
- and uses the LOAD_WITH_ALTERED_SEARCH_PATH if an absolute path is specified. This will
- add the directory containing the library to the search path for DLLs that the
- loaded library depends upon.
- - Mac OS X build settings now match those used by default Xcode projects, making linking the
- POCO libs to Xcode projects easier
- - Replaced use of std::valarray in Poco::Net::ICMPEventArgs with std::vector due to issues with
- std::valarray together with STDCXX debug mode on OS X
- Release 1.3.5 (2009-05-11)
- ==========================
- - fixed SF# 2779410: Poco::Data::ODBC::HandleException impovement
- - fixed wrong exception text for Poco::UnhandledException
- - Fixed a problem with SSL shutdown that causes clients (web browsers)
- to hang when the server attempts to perform a clean SSL shutdown. We now call
- SSL_shutdown() once, even if the shutdown is not complete after the first call.
- - added Poco::Crypto::X509Certificate::save()
- - fixed a bug in Poco::Zip::Decompress that results in wrong paths for extracted files
- - fixed a bug in Poco::Zip::ZipManipulator where the Zip file was opened in text format
- on Windows.
- - added Poco::Crypto::X509Certificate::issuedBy() to verify certificate chain.
- - fixed 0000089: Thread::sleep() on Linux is extremely inaccurate
- - added methods to extract the contents of specific fields from the
- subject and issuer distinguished names of a certificate.
- Release 1.3.4 (2009-04-21)
- ==========================
- - fixed SF# 2611804: PropertyFileConfiguration continuation lines
- - fixed SF# 2529788: ServerApplication::beDaemon() broken
- - fixed SF# 2445467: Bug in Thread_WIN32.cpp
- - Improved performance of HTTP Server by removing some
- string copy operations
- - fixed SF# 2310735: HTTPServer: Keep-Alive only works with send()
- - fixed appinf.com IP address in Net testsuite
- - fixed RFC-00188: NumberFormatter and float/double numbers
- - added --pidfile option to ServerApplication on Unix
- - fixed SF# 2499504: Bug in Win32_Thread when using from dll (fixed also for POSIX threads)
- - fixed SF# 2465794: HTTPServerRequestImpl memory leak
- - fixed SF# 2583934: Zip: No Unix permissions set
- - the NetSSL_OpenSSL library has been heavily refactored
- - added NumberFormatter::append*() and DateTimeFormatter::append() functions
- - use NumberFormatter::append() and DateTimeFormatter::append() instead of format() where
- it makes sense to gain some performance
- - added system.dateTime and system.pid to Poco::Util::SystemConfiguration
- - added %F format specifier (fractional seconds/microseconds) to DateTimeFormatter,
- DateTimeParser and PatternFormatter.
- - fixed SF# 2630476: Thread_POSIX::setStackSize() failure with g++ 4.3
- - fixed SF# 2679279: Handling of -- option broken
- - added compile options to reduce memory footprint of statically linked applications
- by excluding various classes from automatically being linked.
- See the POCO_NO_* macros in Poco/Config.h.
- - fixed SF# 2644940: on Windows the COMPUTER-NAME and the HOSTNAME can be different
- - added DNS::hostName() function
- - added build configuration for iPhone (using Apple's SDK)
- - basic support for AIX 5.x/xlC 8
- - fixed a bug resulting in a badly formatted exception message with IOException
- thrown due to a socket-related error
- - fixed SF# 2644718: NetworkInterface name conflict in MinGW
- - added a missing #include to CryptoTransform.h
- - fixed SF# 2635377: HTTPServer::HTTPServer should take AutoPtr<HTTPServerParams>
- - replaced plain pointers with smart pointers in some interfaces
- - upgraded to sqlite 3.6.13
- - improved Data::SQLite error reporting
- - Poco::Glob now works with UTF-8 encoded strings and supports case-insensitive comparison.
- This also fixes SF# 1944831: Glob::glob on windows should be case insensitve
- - added Twitter client sample to Net library
- - Fixed SF# 2513643: Seg fault in Poco::UTF8::toLower on 64-bit Linux
- - Poco::Data::SessionPool: the janitor can be disabled by specifying a zero idle time.
- - added Poco::Data::SessionPool::customizeSession()
- - added support for different SQLite transaction modes (DEFERRED, IMMEDIATE, EXCLUSIVE)
- - fixed a few wrong #if POCO_HAVE_IPv6 in the Net library
- - added support for creating an initialized, but unconnected StreamSocket.
- - added File::isDevice()
- - added family() member function to SocketAddress,
- - Data::SQLite: added support for automatic retries if the database is locked
- - XMLConfiguration is now writable
- - fixed an IPv6 implementation for Windows bug in HostEntry
- - Timer class improvement: interval between callback is no longer influenced by the
- time needed to execute the callback.
- - added PriorityNotificationQueue and TimedNotificationQueue classes to Foundation.
- These are variants of the NotificationQueue class that support priority and
- timestamp-tagged notifications.
- - added Poco::Util::Timer class. This implements a timer that can schedule different
- tasks at different times, using only one thread.
- - the signatures of Poco::NotificationQueue and Poco::NotificationCenter member functions
- have been changed to accept a Poco::Notification::Ptr instead of Poco::Notification*
- to improve exception safety. This change should be transparent and fully backwards
- compatible. The signature of the methods returning a Poco::Notification* have not been
- changed for backwards compatibility. It is recommended, that any Notification* obtained
- should be immediately assigned to a Notification::Ptr.
- - SQLite::SessionImpl::isTransaction() now uses sqlite3_get_autocommit() to find out
- about the transaction state.
- - refactored Crypto library to make it independent from NetSSL_OpenSSL.
- - added support for RSA-MD5 digital signatures to Crypto library.
- - removed SSLInitializer from NetSSL library (now moved to Crypto library)
- - added build configs for static libraries to Crypto library
- - OpenSSL now depends on Crypto library (which makes more sense than
- vice versa, as it was before). Poco::Net::X509Certificate is now
- a subclass of Poco::Crypto::X509Certificate (adding the verify()
- member function) and the Poco::Net::SSLInitializer class was
- moved to Poco::Crypto::OpenSSLInitializer.
- - added build configs for static libraries to Zip
- - added batch mode to CppUnit::WinTestRunner.
- WinTestRunnerApp supports a batch mode, which runs the
- test using the standard text-based TestRunner from CppUnit.
- To enable batch mode, start the application with the "/b"
- or "/B" command line argument. Optionally, a path to a file
- where the test output will be written to may be given:
- "/b:<path>" or "/B:<path>".
- When run in batch mode, the exit code of the application
- will denote test success (0) or failure (1).
- - testsuites now also work for static builds on Windows
- - The IPv6 support for Windows now basically works (Net library compiled with POCO_HAVE_IPv6)
- - fixed a potential error when shutting down openssl in a statically linked application
- - added static build configs to Data library
- - added Poco::AtomicCounter class, which uses OS-specific APIs for atomic (thread-safe)
- manipulation of counter values.
- - Poco::RefCountedObject and Poco::SharedPtr now use Poco::AtomicCounter for
- reference counting
- - fixed SF# 2765569: LoadConfiguration failing from current directory
- Release 1.3.3p1 (2008-10-09)
- ============================
- - Fixed SF# 2153031: 1.3.3 Crypto won't compile on 64-bit Linux
- - Fixed a warning in MySQL connector
- - Updated README
- - The global Makefile in the Zip archive is no longer broken
- Release 1.3.3 (2008-10-07)
- ==========================
- - Threads now have optional user-settable stack size (if the OS supports that feature)
- - Events now support simplified delegate syntax based on delegate function template.
- See Poco::AbstractEvent documentation for new syntax.
- - Cache supports new access expire strategy.
- - Upgraded to SQLite 3.6.2
- - Upgraded to PCRE 7.8
- - added HttpOnly support to Poco::Net::HTTPCookie
- - NetworkInterface now has displayName() member (useful only on Windows)
- - Poco::Util::WinRegistryKey now has a read-only mode
- - Poco::Util::WinRegistryKey::deleteKey() can now recursively delete registry keys
- - Poco::File::created() now returns 0 if the creation date/time is not known, as
- it's the case on most Unix platforms (including Linux).
- On FreeBSD and Mac OS X, it returns the real creation time.
- - Time interval based log file rotation (Poco::FileChannel) now works
- correctly. Since there's no reliable and portable way to find out the creation
- date of a file (Windows has the tunneling "feature", most Unixes don't provide
- the creation date), the creation/rotation date of the log file is written into
- the log file as the first line.
- - added Environment::nodeId() for obtaining the Ethernet address of the system
- (this is now also used by UUIDGenerator - the corresponding code from UUIDGenerator
- was moved into Environment)
- - added a release policy argument to SharedPtr template
- - Socket::select() will no longer throw an InvalidArgumentException
- on Windows when called with no sockets at all. If all three socket
- sets are empty, Socket::select() will return 0 immediately.
- - SocketReactor::run() now catches exceptions and reports them via
- the ErrorHandler.
- - SocketReactor has a new IdleNotification, which will be posted when
- the SocketReactor has no sockets to handle.
- - added referenceCount() method to Poco::SharedPtr.
- - POCO now builds with GCC 4.3 (but there are some stupid warnings:
- "suggest parentheses around && within ||".
- - Solution and project files for Visual Studio 2008 are included
- - The Zip library is now officially part of the standard POCO release.
- - The Crypto library (based on OpenSSL) has been added. The original code
- was kindly contributed by Ferdinand Beyer.
- - A Data Connector to MySQL, contributed by Sergey Kholodilov, is now part
- of the POCO release.
- - fixed SF# 1859738: AsyncChannel stall
- - fixed SF# 1815124: XML Compile failed on VS7.1 with XML_UNICODE_WCHAR_T
- - fixed SF# 1867340: Net and NetSSL additional dependency not set - ws2_32.lib
- - fixed SF# 1871946: no exception thrown on error
- - fixed SF# 1881113: LinearHashTable does not conform to stl iterators
- - fixed SF# 1899808: HTMLForm.load() should call clear() first
- - fixed SF# 2030074: Cookie problem with .NET server
- - fixed SF# 2009707: small bug in Net/ICMPPacketImpl.cpp
- - fixed SF# 1988579: Intel Warning: invalid multibyte character sequence
- - fixed SF# 2007486: Please clarify license for Data/samples/*
- - fixed SF# 1985180: Poco::Net::DNS multithreading issue
- - fixed SF# 1968106: DigestOutputStream losing data
- - fixed SF# 1980478: FileChannel loses messages with "archive"="timestamp"
- - fixed SF# 1906481: mingw build WC_NO_BEST_FIT_CHARS is not defined
- - fixed SF# 1916763: Bug in Activity?
- - fixed SF# 1956300: HTTPServerConnection hanging
- - fixed SF# 1963214: Typo in documentation for NumberParser::parseFloat
- - fixed SF# 1981865: Cygwin Makefile lacks ThreadTarget.cpp
- - fixed SF# 1981130: pointless comparison of unsigned integer with zero
- - fixed SF# 1943728: POCO_APP_MAIN namespace issue
- - fixed SF# 1981139: initial value of reference to non-const must be an lvalue
- - fixed SF# 1995073: setupRegistry is broken if POCO_WIN32_UTF8 enabled
- - fixed SF# 1981125: std::swap_ranges overloading resolution failed
- - fixed SF# 2019857: Memory leak in Data::ODBC Extractor
- - fixed SF# 1916761: Bug in Stopwatch?
- - fixed SF# 1951443: NetworkInterface::list BSD/QNX no netmask and broadcast addr
- - fixed SF# 1935310: Unhandled characters in Windows1252Encoding
- - fixed SF# 1948361: a little bug for win32
- - fixed SF# 1896482: tryReadLock intermittent error
- - workaround for SF# 1959059: Poco::SignalHandler deadlock
- the SignalHandler can now be disabled globally by adding a
- #define POCO_NO_SIGNAL_HANDLER to Poco/Config.h
- - fixed SF# 2012050: Configuration key created on read access
- - fixed SF# 1895483: PCRE - possible buffer overflow
- - fixed SF# 2062835: Logfile _creationDate is wrong
- - fixed SF# 2118943: out_of_bound access in Poco::Data::BLOB:rawContent
- - fixed SF# 2121732: Prevent InvalidArgumentException in SocketReactor
- - fixed SF# 1891132: Poco::Data::StatementImpl::executeWithLimit is not correct
- - fixed SF# 1951604: POCO refuses to compile with g++ 4.3.0
- - fixed SF# 1954327: CYGWIN's pthread does not define PTHREAD_STACK_MIN
- - fixed SF# 2124636: Discrepancy between FileWIN32(U)::handleLastError
- - fixed SF# 1558300: MinGW/MSYS Builds
- - fixed SF# 2123266: Memory leak under QNX6 with dinkum library
- - fixed SF# 2140411: ScopedUnlock documentation bug
- - fixed SF# 2036460: UUID regression tests are failing on Linux with g++ 4.3.1
- - fixed SF# 2150438: Tuple TypeHandler position increment size is wrong
- Release 1.3.2 (2008-02-04)
- ==========================
- Foundation, XML, Net, Util:
- - added POCO_NO_SHAREDMEMORY to Config.h
- - POCO_NO_WSTRING now really disables all wide string related calls
- - added template specialization for string hashfunction (performance)
- - XML parser performance improvements (SAX parser is now up to 40 % faster
- - added parseMemoryNP() to XMLReader and friends
- - URIStreamOpener improvement: redirect logic is now in URIStreamOpener.
- this enables support for redirects from http to https.
- - added support for temporary redirects and useproxy return code
- - added getBlocking() to Socket
- - added File::isHidden()
- - better WIN64 support (AMD64 and IA64 platforms are recognized)
- - added support for timed lock operations to [Fast]Mutex
- - SharedLibrary: dlopen() is called with RTLD_GLOBAL instead of RTLD_LOCAL
- (see http://gcc.gnu.org/faq.html#dso)
- - Poco::Timer threads can now run with a specified priority
- - added testcase for SF# 1774351
- - fixed SF# 1784772: Message::swap omits _tid mem
- - fixed SF# 1790894: IPAddress(addr,family) doesn't fail on invalid address
- - fixed SF# 1804395: Constructor argument name wrong
- - fixed SF# 1806807: XMLWriter::characters should ignore empty strings
- - fixed SF# 1806994: property application.runAsService set too late
- - fixed SF# 1828908: HTMLForm does not encode '+'
- - fixed SF# 1831871: Windows configuration file line endings not correct.
- - fixed SF# 1845545: TCP server hangs on shutdown
- - fixed SF# 1846734: Option::validator() does not behave according to doc
- - fixed SF# 1856567: Assertion in DateTimeParser::tryParse()
- - fixed SF# 1864832: HTTP server sendFile() uses incorrect date
- - HTTPServerResponseImpl now always sets the Date header automatically
- in the constructor.
- - fixed SF# 1787667: DateTimeFormatter and time related classes
- (also SF# 1800031: The wrong behavior of time related classes)
- - fixed SF# 1829700: TaskManager::_taskList contains tasks that never started
- - fixed SF# 1834127: Anonymous enums in Tuple.h result in invalid C++
- - fixed SF# 1834130: RunnableAdapter::operator= not returning a value
- - fixed SF# 1873924: Add exception code to NetException
- - fixed SF# 1873929: SMTPClientSession support for name in sender field
- - logging performance improvements (PatternFormatter)
- - fixed SF# 1883871: TypeList operator < fails for tuples with duplicate values
- - CYGWIN build works again (most things work but Foundation testsuite still fails)
- - new build configuration for Digi Embedded Linux (ARM9, uclibc)
- - new build configuration for PowerPC Linux
- Data:
- - fixed SF# 1724388: ODBC Diagnostics
- - fixed SF# 1804797: ODBC Statement multiple execution fails
- - fixed SF# 1803435: SessionPool onJanitorTimer called too often?
- - fixed SF# 1851997: Undefined Behavior in ODBC::Preparation
- - updated SQlite to 3.5.5
- Release 1.3.1 (2007-08-08)
- ==========================
- Foundation, XML, Net, Util:
- - DynamicAny fixes for char conversions
- - fixed SF# 1733362: Strange timeout handling in SocketImpl::poll and Socket::select
- - fixed SF patch# 1728912: crash in POCO on Solaris
- - fixed SF# 1732138: Bug in WinRegistryConfiguration::getString
- - fixed SF# 1730790: Reference counting breaks NetworkInterface::list()
- - fixed SF# 1720733: Poco::SignalHandler bug
- - fixed SF# 1718724: Poco::StreamCopier::copyStream loops forever
- - fixed SF# 1718437: HashMap bug
- - changed LinearHashTable iterator implementation. less templates -> good thing.
- - fixed SF# 1733964: DynamicAny compile error
- - UUIDGenerator: fixed infinite loop with non ethernet interfaces
- - updated expat to 2.0.1
- - fixed SF# 1730566: HTTP server throws exception
- - Glob supports symbolic links (additional flag to control behavior)
- - fixed a problem with non blocking connect in NetSSL_OpenSSL
- (see http://www.appinf.com/poco/wiki/tiki-view_forum_thread.php?comments_parentId=441&topics_threshold=0&topics_offset=29&topics_sort_mode=commentDate_desc&topics_find=&forumId=6)
- - fixed a problem with SSL renegotiation in NetSSL_OpenSSL (thanks to Sanjay Chouksey for the fix)
- - fixed SF# 1714753: NetSSL_OpenSSL: HTTPS connections fail with wildcard certs
- - HTTPClientSession: set Host header only if it's not already set (proposed by EHL)
- - NetworkInterface (Windows): Loopback interface now has correct netmask;
- interfaces that do not have an IP address assigned are no longer reported.
- - Fixes for VC++ W4 warnings from EHL
- - SharedMemory: first constructor has an additional "server" parameter
- Setting to true does not unlink the shared memory region when the SharedMemory object is destroyed. (Alessandro Oliveira Ungaro)
- - fixed SF# 1768231: MemoryPool constructor
- Data:
- - fixed SF# 1739989: Data::RecordSet::operator = () (in 1.3 branch)
- - fixed SF# 1747525: SQLite, Transactions and Session Pooling (in 1.3 branch)
- - upgraded to SQLite 3.4.1
- Release 1.3.0 (2007-05-07)
- ==========================
- - added HashMap, HashSet classes
- - the HashFunction class template has been changed in an incompatible
- way. The member function formerly named hash() is now the function
- call operator. If you have defined your own HashFunction classes,
- you have to update your code. Sorry for the inconvenience.
- - added Poco::Tuple
- - added AbstractCache::getAllKeys(), improved performance of the get operation
- - fixed AbstractCache::size() to do cache replacement before returning the size
- - added additional match() method to RegularExpression and documented the fact that the simple
- match() method internally sets RE_ANCHORED and RE_NOTEMPTY.
- - added ExpirationDecorator template. Decorates data types so that they can be used with UniqueExpireCaches
- - added operator ! to AutoPtr and SharedPtr
- - Buffer uses std::size_t instead of int
- - Exception::what() now returns exception name instead of message
- - added poco_ndc_dbg() macro (same as poco_ndc(), but only enabled in debug builds)
- - added Environment::get(name, defaultValue);
- - Foundation.h now includes Config.h at the very beginning.
- - added replace() and replaceInPlace() to Poco/String.h
- - added AutoPtr::assign() and SharedPtr::assign()
- - added operator () to AbstractEvent
- - gcc Makefiles now strip release builds
- - Void now has a == and != operator
- - Base64Encoder and HexBinaryEncoder now support an unlimited line length
- (no newlines written), by specifying a line length of 0
- - NumberParser now has stricter syntax requirements: garbage following a number leads to a SyntaxException
- (Thanks to [email protected] for the suggestion)
- - fixed SF# 1676830: Don't use -rpath in libraries
- - fixed SF# 1670279: AbstractConfiguration::unckeckedExpand crash
- - fixed a warning in Hashtable
- - HTTPClientSession now uses a keepAliveTimeout for better persistent connection handling
- - added DateTime::makeUTC() and DateTime::makeLocal()
- - added another constructor to LocalDateTime
- - POCO_WIN32_UTF8 is ignored on non-Windows platforms
- - fixed a timeout bug (with NetSSL) in HTTPSession
- - AsyncChannel is automatically opened with first log()
- - minor fix to NotificationQueue sample (reported by Laszlo Keresztfalvi)
- - added File::canExecute() and File::setExecutable()
- - added SharedMemory class to Foundation
- - added FileStream, FileInputStream, FileOutputStream to Foundation
- - added NodeAppender class to XML for faster DOM tree creation
- - HTTPServerRequest and HTTPServerResponse are now abstract base classes,
- actual functionality has moved into HTTPServerRequestImpl and
- HTTPServerResponseImpl. This allows us to plug other HTTP servers
- into POCO.
- - added DynamicAny class to Foundation
- - replaced std::fstream with Poco::FileStream across POCO.
- - added Poco::Checksum class to Foundation.
- - fixed SF# 1700811: conflict in threadpool
- - bugfix: File::moveTo() does not work if the target is a directory
- - File::copyTo() and File::moveTo() now copy/move directories recursively
- - refactored NetworkInterface (now using pimpl idiom);
- added broadcast address and netmask support
- - fixed SF# 1688982: POP3ClientSession fails when retrieving mails with attachment
- - fixed SF# 1655104: Enhance Poco::TextEncoding functionality
- - added Poco::Condition class, implementing a POSIX-style condition variable
- - fixed a bug in File::create() for Windows
- - added poco_static_assert (imported from boost)
- - added Thread::join(timeout) and Thread::tryJoin()
- - ClassLoader support for named manifests (see ClassLibrary.h - POCO_EXPORT_NAMED_MANIFEST)
- - POCO_WIN32_UTF8: UNICODE #define is no longer required (and no longer
- automatically defined in POCO_WIN32_UTF8 is defined)
- - PCRE: upgraded to PCRE version 7.1
- - fixed SF# 1682162: Suggestion on thread priority
- - fixed SF# 1613460: MSVC/STLPort warnings
- - fixed SF# 1709358: Format double percent std::String bug
- - added WindowsConsoleChannel class to Foundation
- - added AutoPtr::unsafeCast<>() and SharedPtr::unsafeCast<>()
- - fixed SF# 1708552: Failed to build on arm and powerpc
- - fixed SF$ 1708529: Failed to build using GCC 4.3: missing #includes
- - fixed SF# 1710053: LogStream proposal
- - fixed a bug involving empty root directories in Windows DirectoryIterator implementation
- (see http://www.appinf.com/poco/wiki/tiki-view_forum_thread.php?comments_parentId=343&forumId=6)
- - robustness improvements to ActiveMethod - removed the opportunity for memory leaks in
- case something goes while invoking the method
- - made C library usage more C++-like - use C++ headers (e.g. <cstring>) instead of
- C ones (<string.h>). Also, use C library functions in std namespace.
- - added Unicode and UTF8String for improved Unicode support.
- The Unicode class can be used to obtain the Unicode properties of a character.
- The UTF8 class provides case insensitive comparison and case conversion
- for UTF-8 encoded strings.
- - added UnWindows.h header file, replaced all #include <windows.h> with #include "Poco/UnWindows.h".
- See the Poco/UnWindows.h header file for a rationale and explanations.
- - fixed SF# 1713820: StreamSocketImpl::sendBytes sends too many bytes
- - File::copyTo(): on Windows, the copy now always has the read-only flag reset, to be consistent
- with other platforms.
- - With Microsoft Visual C++, the necessary POCO libraries are now implicitly linked when
- the corresponding header files are included (#pragma comment(lib, "PocoXYZ.lib") is used).
- To disable this, compile POCO with the preprocessor symbol POCO_NO_AUTOMATIC_LIBS #define'd
- (see Poco/Foundation.h and Poco/Config.h).
- - The Visual Studio project files for the POCO libraries now include configurations
- for building static libraries.
- Release 1.2.9 (2007-02-26)
- ==========================
- - fixed a formatting problem in Util::HelpFormatter
- - HTTPClientSession::sendRequest() now attempts to send the complete request in one network packet.
- - improved network performance of ChunkedOutputStream: chunk size and chunk data
- are sent in one network packet if possible
- - fixed SF# 1655035: Wrong expires field calculation in HTTPCookie
- (thanks to Sergey N. Yatskevich for this and other fixes)
- - fixed SF# 1655049: Fix discrepancy of a code to the description
- - fixed SF# 1655170: Poco::Timezone::standardName() problem on WIN32
- - fixed SF# 1629095: POCO_WIN32_UTF8 problem
- There is a new function Path::transcode() that can be used to convert a path (or any other string)
- from UTF-8 to the current Windows code page. This string can the be passed as a filename
- to an fstream or fopen(). This function only does the conversion on Windows,
- and only, if POCO_WIN32_UTF8 is defined. Otherwise, it simply returns the unmodified argument.
- - fixed SF# 1659607: Probably a bug in Poco::Net::DialogSocket
- - HTTPServer network performance improvement: responses that fit into a single network packet
- sent with HTTPServerResponse::sendFile() or the new HTTPServerResponse::sendBuffer() are
- sent in only one packet.
- - added HTTPServerResponse::sendBuffer()
- - HTTPServer now sends a Bad Request response if it fails to parse the HTTP request header.
- - HTTPServer now sends an Internal Server Error response if the request handler throws an
- exception prior to sending a response.- enabled TCP_NODELAY per default on TCPServer/HTTPServer
- - fixed a bug in HTTP persistent connection handling
- (server does not send Connection: close when it reaches connection maximum)
- - HTMLForm - POST submission of URL encoded form no longer uses chunked transfer encoding
- (thus improving interoperability with certain web servers)
- - integrated Environment.cpp from Main (missing get(var, default))
- - added missing AutoPtr include to Util/Application
- (and using Poco::AutoPtr is no longer necessary for POCO_APP_MAIN macro)
- - fixed SF# 1635420: Per Regents of the University of Calfornia letter,
- remove advertising from BSD licensed parts
- - fixed SF# 1633133: MultipartWriter writes superluous CR-LF at beginning
- Release 1.2.8 (2007-01-04)
- ==========================
- - fixed SF# 1613906: Util/Application.h and GCC 3.3
- - fixed a byte order issue (failed test) in IPv6 address formatting
- - fixed SF# 1626640: Poco::Net::SocketReactor bug
- - fixed client side chunked transfer encoding handling
- - fixed client side persistent connection handling
- - fixed SF# 1623536: HTTP Server Chunked Transfer Encoding Bug
- - improved HTTP server exception text
- - fixed SF# 1616294: KeepAlive HTTPServerSession patch
- - fixed SF# 1616296: Trivial Poco::TaskCustomNotification patch
- - fixed SF# 1619282: PurgeStrategy bug fix
- - fixed SF# 1620855: Format problem
- there is a new format specifier %z for std::size_t, as well as a new
- flag ? for %d, %i, %o, %x meaning any signed or unsigned integer
- Release 1.2.7 (2006-12-07)
- ==========================
- - Poco::File: fixed root directory handling
- - fixed UUIDGenerator documentation
- - clarified Application::setUnixOptions() documentation
- - fixes for issue [SOAPLite Transport 0000023]: SOAP Transport Listener should be able to use existing HTTPServer instance
- - fixing mantis issues 13, 14, 15, 16, 17, 18, 19, 21
- - fixed SF# 1597022: Signed/unsigned warning in StringTokenizer::operator[]
- - fixed SF# 1598601: Message::op= leaks
- - fixed SF# 1605960: PatternFormatter crashes on custom property
- - fixed SF# 1605950: Memory leak in Logger sample code
- - fixed SF# 1591635: Copy Paste Error in sample code
- - fixed SF# 1591512: SMTPClientSession response stream
- - fixed SF #1592776: LayeredConfiguration: getRaw should enumerate in reverse order
- - SF Patch # 1599848 ] VS 2005 Util build fails
- - Logger::dump() now uses std::size_t instead of int for buffer size
- - LayeredConfiguration now supports a priority value for each configuration.
- Also, it's possible to specify for each configuration added whether it
- should be writeable.
- - ServerApplication: cd to root directory only if running as a daemon
- - added Message::swap()
- - improvements to build system:
- global Makefile has correct dependencies for samples
- on Windows, samples build after libraries are ready
- configure supports --no-wstring and --no-fpenvironment flags
- build system supports POCO_FLAGS environment variable for compiler flags
- - RemoteGen: fixed error handling for write protected files (SystemException)
- fixing integral constant overflow messages with large cache expiration, m_ support for type serializers,
- case-insensitive comparison added
- Release 1.2.6 (2006-11-19)
- ==========================
- - added additional match() method to RegularExpression and documented the fact that the simple
- match() method internally sets RE_ANCHORED and RE_NOTEMPTY.
- - added ExpirationDecorator template. Decorates data types so that they can be used with UniqueExpireCaches
- - added operator ! to AutoPtr and SharedPtr
- - Buffer uses std::size_t instead of int
- - added poco_ndc_dbg() macro (same as poco_ndc(), but only enabled in debug builds)
- - Foundation.h now includes Config.h at the very beginning.
- - added AutoPtr::assign() and SharedPtr::assign()
- - added operator () to AbstractEvent
- - gcc Makefiles now strip release builds
- - documentation improvements
- Release 1.2.5 (2006-10-23)
- ==========================
- - Improved LoggingConfigurator: channel creation and configuration is now a two-step process.
- This means that the previous problems with PropertyFileConfiguration and IniFileConfiguration when referencing other channels are solved.
- - improved options handling: better handling of (non) ambiguities.
- If both an option named "help" and one named "helper" is specified, this no longer causes ambiguity errors.
- - added check for duplicate option definition
- - ThreadPool bugfix: fixed a crash that occurs on Linux multiprocessor machines
- (caused by an thread unsafe string assignment corrupting the heap...)
- (SF# 1575315)
- - improved ThreadPool performance
- - XML now compiles with -DXML_UNICODE_WCHAR_T (SF# 1575174)
- - fixed SF# 1572757: HTML forms can have more than one key/value pair with the same name
- - got rid of the dynamic casts in Events, Events/Cache: simpler/faster Delegate < operator,
- prevents some rare dynamic casts error from occuring when using StrategyCollection with Caches
- - improvements to Logger and LoggingConfigurator:
- * added Logger::unsafeGet()
- * added Logger::setProperty(loggerName, propertyName, value)
- * LoggingConfigurator now correctly (re)configures existing Loggers
- (prior to this change, if a Logger named "a.b.c" existed before
- the LoggingConfigurator started its work, and the LoggingConfigurator
- configured a Logger named "a.b", then "a.b.c" would not inherit
- the new configuration).
- - improvements to SplitterChannel and EventLogChannel configuration
- - improved LoggingRegistry exception messages
- - MessageHeader::read() is more liberal with malformed message headers.
- This fixes problems with certain network cameras sending malformed HTTP headers.
- Release 1.2.4 (2006-10-02)
- ==========================
- - some code beautifying and improvements to comments
- - DOMParser now automatically sets FEATURE_NAMESPACE_PREFIXES
- - fixed SF #1567051: DOMBuilder/DOMParser/NamespaceStrategy bug
- - fixed SF #1567364: POCO_APP_MAIN
- - added Document::getElementById() (two-argument) and getElementByIdNS()
- - added another test for DOMParser
- - added AutoPtr::isNull() (to be consistent with SharedPtr)
- - this release again compiles on PA-RISC HP-UX systems with aCC
- - added CMAKE support files contributed by Andrew J. P. Maclean
- Release 1.2.3 (2006-09-14)
- ==========================
- - configure script now checks if (auto)selected configuration is supported
- - fixed SF #1552904: NamedEvent bug?
- - fixed SF #1552787: POCO not handling EINTR
- - fixed SF #1552846: Random::~Random uses scalar delete
- - fixed SF #1552987: TLSSlot should explicitly default-construct _value
- - IPAddress no longer accepts an empty address string
- - split up Observer.h into AbstractObserver.h and Observer.h
- - added NObserver class template which supports an AutoPtr
- argument for the notification callback
- - changed EchoServer sample to use NObserver
- - some Windows-specific files were missing in the tarballs
- Release 1.2.2 (2006-09-01)
- ==========================
- - fixed SF # 1549973: NotificationCenter::hasObservers() returns wrong result
- - fixed a memory leak in EchoServer sample
- - fixed SocketReactor TimeoutNotification bug (SF #1549365, SocketNotifier::addObserver() incorrect behavior)
- - fixed SF# 1549513: MultipartReader does not work with Unix-style linefeeds
- - MailMessage and HTMLForm: processing of multipart messages will no longer fail if a PartHandler does not read all data from the part stream.
- - added additional test case (Unix-style line ends) to MultipartReaderTest
- Release 1.2.1 (2006-08-29)
- ==========================
- - fixed Config.h header (no more #undefs)
- Release 1.2.0 (2006-08-29)
- ==========================
- - DateTime fixes: Julian Day is no longer stored internally.
- Times (hours, minutes, seconds, ...) are now always taken from an utcValue (if available) and not from the Julian day.
- The Julian day is only used for calculating year, month and day (except when the Julian day is the only thing we have)
- This helps us get rid of rounding errors that the Julian Day arithmetic introduced.- on Windows, UUIDGenerator no longer uses Netbios, but GetAdaptersInfo instead
- - The main Makefile now has correct dependencies
- - updated poco-doc.pl with latest version by Caleb Epstein
- - fixed SF #1542722: InflatingInputStream: buffer error
- - improved Windows UTF-8 support
- - added Logger::names()
- - added configure script and make install target
- - XMLWriter bugfix: pretty-print bug with characters() and rawCharacters()
- - improvements to build system: support builds outside of source tree
- - added header doc conversion tool contributed by Caleb Epstein
- - fixed SF #1542618 (build/config/Linux patch)
- - bugfix: BinaryReader/BinaryWriter BOM is now 16 bits, as documented
- - fixed SF #1542247 (Compiler warning from OptionCallback)
- - fixed SF #1542253 (ServerApplication::handleOption doesn't call Application::handleOption)
- - added Application::stopOptionsProcessing()
- - updated samples
- - Util::Application command line handling now supports:
- * argument validation (Option::validator(); see Validator, IntValidator, RegExpValidator)
- * binding of argument values to config properties (Option::binding())
- * callbacks for arguments (Option::callback())
- * checking of required parameters
- - changed header file locations:
- Foundation headers are now in Poco (#include "Poco/Foundation.h")
- XML headers are now in Poco/XML, Poco/SAX and Poco/DOM (#include "Poco/XML/XML.h")
- Util headers are now in Poco/Util (#include "Poco/Util/Util.h")
- etc.
- Unfortunately, this change will break existing code. However, fixing the code is
- a matter of a few global search/replace operations and can be done quickly.
- On the plus side, POCO is now a much better citizen when used with other
- libraries.
- - changed namespaces:
- Foundation is now Poco
- XML is now Poco::XML
- Util is now Poco::Util
- Net is now Poco::Net
- - removed namespace macros
- - fixed some warnings reported by gcc -Wall -Wextra
- - fixed AutoPtr and LayeredConfiguration documentation
- - improved StreamSocket::receiveBytes() doc
- - added Pipe and PipeStream classes
- - added support for I/O redirection (pipes) to Process::launch()
- - added LogStream class (ostream interface to Logger)
- - improved Makefiles (no more double-building if clean all is specified)
- - added CppUnit and DateTime testsuite contributions by Andrew Marlow
- - improved Cygwin and minimal MinGW support
- - FileChannel: gzip compression if archived files now runs in a background thread (SF #1537481)
- - POCO now compiles with large (64-bit) file support on Linux (SF #1536634)
- - added format() function, which provides typesafe sprintf-like functionality (SF #1327621)
- - added File::isLink()
- - bugfix: dangling symbolic links in a directory no longer cause recursive remove to fail with file not found error
- - added Void class (useful as argument to ActiveMethod)
- - ActiveResult now supports exceptions
- - bugfix: Timezone::utcOffset() and Timezone::dst() returned wrong values on Unix platforms (SF #1535428)
- - added ActiveDispatcher class
- - added ActiveStarter class, which is a policy used by ActiveMethod for starting methods
- - ActiveRunnable moved to its own header file
- - ThreadPool: added startWithPriority(), which allows for running threads with a different priority
- - added error handling to dir sample
- - added additional test case to HTTPServer test suite- HTMLForm: should now work with request methods other than POST and GET (all non-POST requests are treated the same as GET)
- - clarified HTMLForm documentation
- - HTMLForm bugfix: uploaded files no longer end up in value; PartHandler is called instead
- - NameValueCollection: added get(name, defaultValue)
- - added HTTPFormServer sample
- - added Foundation::HashTable and SimpleHashTable
- - added Net::HTTPSessionFactory
- - improvements to AutoPtr and SharedPtr
- - improvements to namespaces handling in XMLWriter
- - Foundation Cache: fixed add implementation to match the docu: a 2nd add will now simply overwrite existing entries
- - added DateTime::isValid()
- - added Exception::rethrow() (virtual, must be overridden by all subclasses)
- - Timer can now use a user-supplied ThreadPool
- - added rethrow() to exception classes
- - Net: made some constructors explicit
- - Net: added SocketAddress constructor to HTTPClientSession
- - Net: added HTTPSession::networkException() to check for exceptions swallowed by stream classes
- - Net: added single string argument constructor to SocketAddress.
- - Net: improved HTTPClientSession error handling (no more "Invalid HTTP version string" exceptions when the server prematurely closes the connection due to too much load)
- - Net: improved HTTPSession error handling. Exceptions while sending and receiving data are stored for later retrieval and no longer get lost since streambufs swallow them.
- - Net: added HTTPLoadTest sample
- - fixed a bug when opening logfiles on Unix platforms causing an existing logfile to be truncated
- - bugfix: log file purge intervals given in months did not work, due to a stupid typo
- - added RawSocket and ICMP classes
- - UUID: fixed a doc formatting bug
- - NetworkInterface::list() now includes loopback interface on Windows (SF #1460309)
- - made Exception::message() and Exception::nested() inline
- - added Net::UnsupportedRedirectException
- - HTTPStreamFactory throws an UnsupportedRedirectException if it encounters a redirect to https
- - HTTP: fixed bad 100 Continue handling in client and server code
- - added CONTRIBUTORS file
- Release 1.1.2 (2006-07-07)
- ==========================
- - Changed license to Boost license
- - DBlite and NetSSL have been removed from the Boost-licensed release.
- Please contact Applied Informatics ([email protected]) if you're interested in them.
- Release 1.1.1 (2006-04-03)
- ==========================
- - NetSSL_OpenSSL now supports separate certificate verification
- settings for client and server.
- - fixed SF #1460309 (enumerating network interfaces failed on 64bit Linux)
- - TCPServer no longer crashes if accept() fails
- Release 1.1.0 (2006-03-23)
- ==========================
- - events no longer require awkward += new syntax
- - source code and documentation cleanups
- - basic support for new compilers and platforms
- Release 1.1b2 (2006-03-04)
- ==========================
- - made NetSSL threadsafe (added locking callbacks for OpenSSL)
- - improved OpenSSL initialization (random generator seeding)
- - various changes to improve compatibility with various platforms
- Release 1.1b1 (2006-03-03)
- ==========================
- - New Events package in Foundation. The package supports C#-style event handling
- - New Cache package in Foundation: a templates-based caching framework
- - added Any class to Foundation
- - added DBLite library
- - fixed a memory leak with layered configurations in the application
- - made POCO_DLL the default (unless POCO_STATIC is #defined)
- It is no longer necessary to specify POCO_DLL in projects that use Poco
- (SourceForge Patch #1408231 and Feature Request #1407575).
- - added Buffer template class to Foundation
- - added the UnicodeConverter utility class. This is mainly used for Windows Unicode support and probably of little use for anything else.
- - added Path::resolve()
- - added Windows Unicode support. This calls the Unicode variant of the Windows API functions.
- For this to work, all strings must be UTF-8 encoded and POCO_WIN32_UTF8 must be defined in all compilation units.
- - added StreamCopier::copyToString()
- - added URIStreamOpener::unregisterStreamFactory() and new variants of URIStreamOpener::open() that also work with filesystem paths.
- This fixes SourceForge Bug #1409064 and Feature Request #1409062.
- - added NodeIterator::currentNodeNP() to XML library
- - added some sanity checks to UTF8Encoding::convert()
- - added NetSSL - SSL support for Net library, based on OpenSSL
- - console output of processes launched with Process::launch() is now visible
- Release 1.0.0 (2006-01-19)
- ==========================
- - removed unnecessary console output from ProcessTest
- - documentation fixes
- Release 1.0b2 (2006-01-16)
- ==========================
- - added ProcessHandle class
- - Process::launch() now returns a ProcessHandle instead of a process ID.
- This fixes a potential problem on Windows with Process::wait() when
- the process terminates before wait() is called.
- - added SplitterChannel::close()
- - added Logger::destroy()
- - added POP3ClientSession::deleteMessage()
- - added test for Process::launch()
- - documentation fixes
- Release 1.0b1 (2006-01-09)
- ==========================
- - improved recognition of Windows paths in Path::parseGuess()
- - added setCurrentLineNumber()/getCurrentLineNumber() to CountingStreamBuf
- - improvememts to StreamTokenizer and Token; fixed documentation
- - added a workaround for some strange istream behaviour with VS 2005 and FTPClientSessionTest
- - improved exception/error reporting in cppunit
- - added POP3ClientSession
- - added Process::launch() and Process::wait()
- - added Mail sample
- - added MailStream and SMTPClientSession classes
- - renamed some methods in DialogSocket to make them more general
- - NullPartHandler has moved out of HTMLForm.cpp into a separate file
- - Base64Encoder now always writes \r\n line ends
- - MessageHeader::quote has an optional addition arg controlling the treatment of whitespace
- - bugfix: MultipartReader had a problem with empty lines (\r\n sequences) in a part
- - added MailMessage and MailRecipient classes
- - added text encoding support for Windows-1252 codepage
- Release 1.0a1 (2006-01-03) [internal]
- =====================================
- - mediaType is used consistently to refer to a MIME media type (some occurences of contentType and mimeType have been replaced)
- - moved MediaType::quote() to MessageHeader and made it public
- - added MultipartWriter::stream()
- - Renamed AttachmentSource to PartSource and AttachmentHandler to PartHandler
- - SIGPIPE is always blocked in main thread on Unix systems
- - added EchoServer sample
- - fixed a bug in SocketImpl::setBlocking() - did exactly the opposite (value to ioctl was wrong)
- - fixed a memory leak in NotificationQueue sample
- - added comparison operators to Socket so that Sockets can be used as keys in maps
- - added Socket::setBlocking()
- - added StreamSocket::connectNB() (non-blocking connect)
- - added Observer::accepts()
- - added SocketReactor, SocketConnector and SocketAcceptor classes to support event-based socket programming
- - NamespacePrefixesStrategy now uses expat's XML_SetReturnNSTriplet().
- The previously used separate namespace handling code has been removed.
- This improves performance if NamespacePrefixesStrategy is used (both the n
- amespaces and namespace-prefixes SAX2 features are used)
- - upgraded expat to 2.0 pre-release (2005-12-27) snapshot
- - added TeeInputStream and TeeOutputStream classes
- - added download sample for URIStreamOpener
- - renamed registerOpener() to registerFactory() in HTTPStreamFactory and FTPStreamFactory
- - added LineEndingConverter streams
- - added FTPClientSession
- - code and documentation clean-up
- - added DialogSocket class
- - reorganized HTTP test suites
- - added FTPClientSession and FTPStreamFactory
- - added DialogSocket class
- Release 0.96.1 (2005-12-28)
- ===========================
- - fixed a memory leak caused by a bug in Microsoft's stream implementation (see the comment in Foundation/StreamUtil.h for an explanation)
- - added samples for Net library
- - added uptime() and startTime() to Util::Application
- - added DateTimeFormatter::format() for Timespan
- - added ErrorHandler class and better exception handling for threads
- - added poco_debugger() and poco_debugger_msg() macros
- - added project and solution files for Visual Studio 2005 (due to some bugs/leaks in Microsofts standard library - see
- http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=e08bd793-3fef-40ff-adda-ed313e0eafcc
- we do not recommend using this for production purposes)
- - fixed two problems with out-of-range string iterator in Path (the testsuite triggered an assertion in VC++ 8.0)
- - fixed mac line endings in a few files
- - added a workaround to the class loader that fixes strange behavior with VC++ 8.0. There seems to be a problem with typeid() not returning a valid typeinfo under certain circumstances.
- - added buffer allocator argument to buffered stream buffer templates
- - added buffer pools to HTTP to reduce memory fragmentation and to improve performance
- - added Net to Windows build.cmd script
- - added swap() to various classes that already support assignment
- - added a null pointer check in DOMWriter::writeNode()
- - fixed documentation in BinaryWriter.h and BinaryReader.h
- - added explicit support for network byte order to BinaryReader and BinaryWriter
- - added basic support for FreeBSD (needs more testing)
- - BinaryReader: renamed readRawData() to readRaw() to be consistent with BinaryWriter::writeRaw()
- - added support for uppercase output to HexBinaryEncoder.
- - added MediaType class
- - added QuotedPrintableEncoder and QuotedPrintableDecoder classes
- - renamed ObjectFactory to Instantiator. This should prevent the confusion caused by DynamicFactory and ObjectFactory. Sorry for the inconvenience if you are already using this.
- - AttachmentSource::filename() now returns const string&
- - added StringAttachmentSource
- - replaced old-style C casts with C++ casts in NetworkInterface.cpp
- - MutexImpl (WIN32): replaced InitializeCriticalSection with InitializeCriticalSectionAndSpinCount, which should increase performance on multiprocessor or multicore systems when many locks are used.
- - fixed a problem with STLport 5.0 when compiling StreamTokenizer
- - HTTPStreamOpener now also works with no-path URIs (like http://www.appinf.com)
- - fixed wrong delete usage (plain delete instead of delete [] was used in a few cases)
- - fixed a handle leak in WinTestRunner
- Release 0.95.4 (2005-11-07)
- ===========================
- - fixed #1348006 and #1348005
- Release 0.95.3 (2005-10-28) [internal]
- ======================================
- - updated build scripts (patch #1339015)
- - added support for AMD64 platforms (patch #1339015)
- - MultipartWriter creates its own boundary if an empty string is passed in as boundary
- - made MultipartWriter::createBoundary() public
- - fixed wrong documentation for DateTimeFormat::HTTP_FORMAT
- - added support for HTTP Basic authentication
- - added support for HTTP Cookies
- - added support for HTML forms
- Release 0.95.2 (2005-10-22) [internal]
- ======================================
- - fixed a potential problems with streams when close in destructor fails (added try..catch block around close in destructors)
- - added HTTPServer & friends
- - added hasIdleThreads() method to NotificationQueue
- - added TCPServer and friend
- - added support for HTTP proxies to HTTPClientSession and HTTPStreamOpener
- - fixed documentation bugs (Mutex.h, ClassLoader.h)
- Relesae 0.95.1 (2005-10-15) [internal]
- ======================================
- - Tasks can now throw custom notifications (contributed by Alex Fabijanic)
- - renamed URIFileStreamFactory to FileStreamFactory
- - added a few methods to URI (setPathEtc(), getPathEtc(), getPathAndQuery())
- - added new exception classes
- - fixed some documentation
- - added basic checks when reading a MessageHeader from a stream
- - added HTTP classes (testsuite still incomplete)
- - added MessageHeader, NameValueCollection, MultipartReader and MultipartWriter classes
- - added Timespan::useconds()
- - added ClassLoader::isLibraryLoaded()
- - Socket classes use Timespan::useconds() to fill struct timeval
- - added DatagramSocket, MulticastSocket and NetworkInterface classes
- - added socket classes and related basic stuff
- - added additonal constructor/assign to Timespan- added BasicBufferedBidirectionalStreamBuf
- - fixed a potential MT issue in Base64Decoder
- - code beautifying in [Un]BufferedStreamBuf
- - more improvements to ClassLoader
- - code cleanup and naming convention fixes (changed all *Imp classes to *Impl for consistency)
- Release 0.94.1 (2005-09-30) [internal]
- ======================================
- - added MetaSingleton (based on a contribution by Alex Fabijanic)
- - added ClassLoader::create()
- - added ClassLoader::instance()
- - code clean-ups in FileChannel and related classes
- - added SimpleFileChannel
- - RotateAtTimeStrategy:
- ::getNextRollover() rewritten (buggy)
- - DateTime
- microseconds assert corrected
- asserts in computeGregorian() (except for year - see comment in computeGregorian())
- milliseconds calculation modified in computeGregorian()
- microseconds assigned in computeGregorian()
- normalize() and checkLimit() private functions to correct cases of overflow for milli/microseconds
- - LocalDateTime: added timestamp() method
- - FileChannel:
- added "times" property (used to determine whether to use UTC or local time with RotateAtTimeStrategy)
- ::setProperty() modified (whenever "times" property is set, methods setRotation and setArchive are
- reinvoked to reflect the change)
- - FileChannel: added support for archived file compression and archived file purging
- - FileChannel tests modified
- - FileChannel: put LogFile, RotateStrategy and ArchiveStrategy into their own files
- - Message: added thread id field
- - PatternFormatter: added %I specifier for thread id
- - ThreadPool: PooledThread can be assigned a name
- - TaskManager: task name is reflected in thread name
- - fixed LocalDateTime::operator - (const Timespan&) [#0000004]
- - upon startup all loggers' channels are set to a console channel
- - improved search for application configuration files (see loadConfiguration()).
- - added Glob class (fixes #1249700)
- - upgraded to zlib 1.2.3 (fixes #1261712)
- - added Logger::dump()
- - fixed a wrong condition in Logger::log(const Message&)
- - Path::find() now also works with relative paths in addition to plain file names
- - added Path(const Path&, const Path&) constructor
- - added SharedPtr template
- - added Path::tryParse()
- - SAXParser::parse()/EntityResolverImpl now works for both URIs and local filesystem paths (fixes #1254812)
- Release 0.93.1 (2005-08-01)
- ===========================
- This release contains various new features, improvements and bugfixes:
- - bugfix: UUIDGenerator throws an exception if no connected ethernet adapter can
- be found (and thus no MAC address can be obtained)
- - added UUIDGenerator::createOne() method
- - added error handling to UUID sample application
- - added relational (==, !=, <, <=, >, >=) and arithmetic operators (+, -, +=, -=) to DateTime
- - added LocalDateTime class
- - added support for LocalDateTime to DateTimeParser and DateTimeFormatter
- - added enqueueUrgentNotification() to NotificationQueue
- - added support for timezone specifiers (%z, %Z) to PatternFormatter
- - added [] operator and count() to StringTokenizer
- - added elapsed() and isElapsed() to Timestamp
- - added tzd() to Timezone
- - added WinRegistryKey and WinService classes (Windows only)
- - added index operator and count() to StringTokenizer
- - added day/time-based log rotation (thanks to Alex Fabijanic), minor improvements to DateTimeParser
- - support for Mac OS X 10.4/gcc 4.0.0
- - added NamedMutex and NamedEvent
- - added Process::kill()
- - added NoPermissionException
- - added Task and TaskManager classes
- - added ServerApplication class
- - bugfix: EventLogChannel - _logFile was not properly initialized in one constructor
- - bugfix: File::createDirectories did not work for hierarchies deeper than three
- - added Util::FilesystemConfiguration
- - documented logging policy: log() must open channel if it hasn't been opened yet
- - FileChannel::log() opens channel if necessary
- - the application reference passed to initialize() and reinitialize() is no longer const
- - improved application logging initialization
- - fixed a problem with configuration view and property placeholders
- - fixed Util build configuration for Visual Studio
- - improved application samples
- - fixed documentation for Semaphore class
- Release 0.92.1 (2005-05-09)
- ===========================
- This release introduces the Util library that provides support for
- configuration file parsing (different file formats), command line
- argument processing, logging configuration and a framework for
- command line/server applications.
- There have also been various changes to the Foundation library:
- - a new RefCountedObject class that acts as a base class for
- various classes that use reference counting
- - some missing members have been added to the AutoPtr template
- - various improvements and bugfixes to the Logging framework, as well as
- new LoggingFactory and LoggingRegistry classses, and a NullChannel class
- - the SignalHandler class (Unix platforms only)
- - ObjectFactory and DynamicFactory template classes
- - the Path::find method for searching a file in a list of directories
- - various new Exception classes
- Release 0.91.4 (2005-04-11)
- ===========================
- This is mainly a maintenance release that adds support for QNX Neutrino
- and OpenVMS. There are also minor bugfixes and improvements.
- The Unix build system has been modified to work on QNX Neutrino.
- The OpenVMS build system has been fixed and works now.
- Some missing #include's have been added for QNX Neutrino.
- Foundation/String.h: icompare now supports comparison with const char*;
- the classic C version of isspace() has been used in a few places instead of the
- C++ <locale> version, this has been fixed.
- Foundation/Exception.h: IllegalStateException added.
- Release 0.91.3 (2005-03-19)
- ===========================
- This is a maintenance release that adds support for Solaris/Sun Forte C++.
- No new features have been added.
- An implementation of FPEnvironment for Solaris has been included.
- All stream classes have been modified to work around an initialization
- problem that surfaced with Sun's C++ compiler when using STLport.
- Source-code compatibility with the previous release is not affected. Various
- minor changes, mostly adding missing #include's for Solaris.
- Release 0.91.2 (2005-02-27)
- ===========================
- Minor improvements to the Unix build system. No actual changes in the
- libraries.
- Release 0.91.1 (2005-02-21)
- ===========================
- This is the first public release of the C++ Portable Components.
- The release does not contain all features planned for the later 1.0 release
- (the NET library is missing, for example), but is already quite usable.
- Please refer to the README file for more information and instructions for
- building the libraries.
|