CHANGELOG 151 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798
  1. This is the changelog file for the POCO C++ Libraries.
  2. Release 1.9.4 (2019-09-18)
  3. ==========================
  4. - fixed GH #2784: Upgrade bundled expat XML parser library to release 2.2.8,
  5. which fixes CVE-2019-15903.
  6. Release 1.9.3 (2019-08-20)
  7. ==========================
  8. - fixed GH #2603: Remove incorrect upper size limits for SSL certificates in NetSSL_Win
  9. - fixed GH #2661: Poco::Zip::ZipArchive cannot load new tomcat.zip file (additional fix)
  10. - fixed GH #2742: Support of vs150 & vs160 with the official Microsoft localization executable,
  11. vswhere.exe, installed by MSVC starting from VS2017
  12. - Data/ODBC: make binding of std::string configurable (SQL_LONGVARCHAR - default or SQL_VARCHAR)
  13. through a global setting (Poco::Data::ODBC::Connector::bindStringToLongVarChar()).
  14. - added Poco::SharedLibrary::setSearchPath() (currently implemented on Windows only)
  15. - Windows required minimum version is now Windows XP SP2
  16. - upgraded bundled SQLite to 3.29.0
  17. - CppParser now supports type aliases defined with using keyword.
  18. - PageCompiler: added support for adding Content-Security-Policy and Cache-Control headers.
  19. Release 1.9.2 (2019-07-02)
  20. ==========================
  21. - fixed GH #2736: Error using CMake gui - latest version
  22. - fixed GH #2737: Bundles vulnerable copy of Expat — please upgrade to Expat 2.2.7
  23. - fixed GH #2738: Poco::AccessExpireStrategy::onGet() must not extend expiration time after expiration
  24. Release 1.9.1 (2019-06-24)
  25. ==========================
  26. - Added support for building with different OpenSSL distributions on Windows.
  27. See the POCO_EXTERNAL_OPENSSL macro defined in Foundation/include/Poco/Config.h
  28. for options.
  29. - Added Poco::Net::HTTPClientSession::flushRequest()
  30. - Added Poco::Net::WebSocket::setMaxPayloadSize() and Poco::Net::WebSocket::getMaxPayloadSize()
  31. to specify a maximum acceptable payload size for Poco::Net::WebSocket::receiveFrame().
  32. - Poco::Net::WebSocket: don't attempt to send empty credentials in response to 401 response.
  33. - Redis: added support for additional commands (exists, expire, ping, multi, exec, discard)
  34. - Redis: added Poco::Redis::Client::isConnected()
  35. - Upgraded bundled PCRE to version 8.43
  36. - Upgraded bundled SQLite to version 3.28.0
  37. - Added project/solution files for Visual Studio 2019
  38. - Fixed Visual Studio project files (version information from DLLVersion.rc not included in DLLs)
  39. - Include version resource in DLLs built with CMake
  40. - Added HTTP*Credentials::empty() and HTTPCredentials::clear()
  41. - fixed GH #2220: Encoding/DoubleByteEncoding.cpp fails to compile with VS2008 and _DEBUG
  42. - fixed GH #2243: DLLVersion.rc is excluded from build, missing detail information in properties of *.dll
  43. - fixed GH #2277: SQLite null pointer dereference occurs when exception is being thrown
  44. - fixed GH #2313: PollSet behaves differently on windows
  45. - fixed GH #2316: cmake can't find MySQL and ODBC libraries
  46. - fixed GH #2336: Omit ContentLength in WebSocket accept response
  47. - fixed GH #2358: Don't include <openssl/fips.h> for later OpenSSL
  48. - fixed GH #2364: Stringify escapes every unicode symbol when object contain an array
  49. - fixed GH #2380: Calling Poco::Net::X509Certificate::addChainCertificate() leads to double free.
  50. - fixed GH #2492: Net::Socket::address() crash on Android
  51. - fixed GH #2549: Fix keepAlive in http client session
  52. - fixed GH #2565: HTMLForm: optional enforcement of Content-Length instead of Chunked Transfer-Encoding
  53. - fixed GH #2570: DialogSocket: receiveStatusMessage() - line length limit applies to entire multi-line message
  54. - fixed GH #2583: Crypto library does not build with OpenSSL 1.0.0
  55. - fixed GH #2655: MongoDB Binary element to string - bug
  56. - fixed GH #2661: Poco::Zip::ZipArchive cannot load new tomcat.zip file
  57. - fixed GH #2700: Invalid read of memory in Poco::Environment::set which may cause crashes.
  58. - fixed GH #2712: File_WIN32.cpp(168): error C2065: "_upath":Undeclared identifier
  59. - fixed GH #2723: Access violation when trying to decompress .zip file with unsupported compression method.
  60. Release 1.9.0 (2018-03-07)
  61. ==========================
  62. - Added additional text encodings, available in the new PocoEncodings library (GH #2165)
  63. - Added Punycode support for resolving Internationalized Domain Names to Poco::Net::DNS (GH #2164)
  64. - Added XDG Base Directory Specification support in Poco::Path, Poco::Util::SystemConfiguration
  65. and Poco::Util::Application (GH #1609, GH #561, GH #1609)
  66. - Added support for GCM ciphers in Crypto library (GH #2129)
  67. - Poco::Net::RemoteSyslogChannel and Poco::Net::RemoteSyslogListener now have basic
  68. support for RFC 5424 structured data (GH #2173)
  69. - Poco::File now has methods for obtaining partition space (GH #1545)
  70. - Added Poco::Net::Context::addCertificateAuthority() (GH #2197)
  71. - Added Poco::AutoPtr::reset() and Poco::SharedPtr::reset() to improve compatibility
  72. with std::shared_ptr() (GH #2172)
  73. - fixed GH #703: Poco::Data::SQLite data types (INTEGER is now mapped to Int64)
  74. - fixed GH #1426: inttypes.h is available on sun solaris
  75. - fixed GH #1912: Run ping with custom data size #1912
  76. - fixed GH #2177: Run ping with custom timeout instead of the default
  77. - fixed GH #2058 and GH #2095: Synchronization issue/deadlock in Poco::Util::Timer at destruction
  78. - fixed GH #2089: Allow hyphen in HTTP authentication scheme names
  79. - fixed GH #2106: Undefined behavior in Delegate::equals()
  80. - fixed GH #2108: POCO SQLite Data Connector hangs for 20 secs waiting for thread timeouts on Windows
  81. - fixed GH #2142: JSON::Object preserveOrder keys not synced on assignment
  82. - fixed GH #2199 and GH #2188: Illegal header in zip file exception/assertion failure during JAR file decompression
  83. - fixed GH #2203: Use MAX_ADDRESS_LENGTH to determine buffer size
  84. Release 1.8.1 (2018-01-09)
  85. ==========================
  86. - Added Poco::File::linkTo()
  87. - fixed GH #2044: Poco::Net::NetworkInterface::list does not list inactive interfaces
  88. even when explicitly being asked for it.
  89. - fixed GH #2042: Android abstract namespace local socket address
  90. - fixed GH #2038: Poco::Net::MultipartWriter::createBoundary() always returns the same string.
  91. - fixed GH #2020: SQLite not handling parameter count mismatch correctly.
  92. - fixed GH #2012: Data/SQLite: Exception messages contain duplicate text
  93. - fixed GH #2005: Upgraded bundled PCRE to 8.41
  94. - fixed GH #2000: Fix building XMLStreamParser with unbundled expat
  95. - fixed GH #1603: fix MinGW 4.8.2 Compilation
  96. - fixed GH #1991: Support building poco 1.8.0 as cmake sub-project
  97. - fixed GH #2080: Bugs in Poco::Net::Socket::select when POCO_HAVE_FD_POLL is defined
  98. Release 1.8.0.1 (2017-11-11)
  99. ============================
  100. - Reverted change for GH #1828; DeflatingStreamBuf::sync() no longer flushes
  101. underlying stream as this causes corruption for some Zip files.
  102. - PocoDoc: fix for handling compiler configuration for Gradle builds.
  103. Release 1.8.0 (2017-11-10)
  104. ==========================
  105. - Poco::Base64Encoder: add support for base64url encoding (GH #1967)
  106. - Add Poco::Net::PollSet class to Net library (GH #1763)
  107. - The Net library now supports Unix Domain Sockets, where available.
  108. - Added stream parser (Poco::XML::XMLStreamParser) to XML library (GH #1697)
  109. - Added Poco::Net::TCPServerConnectionFilter and Poco::Net::TCPServer::setConnectionFilter()
  110. to support connection filtering and IP blacklisting (GH #1485)
  111. - Added Redis library (GH #1383)
  112. - Added Zip64 support to Zip library (GH #1356)
  113. - Upgraded bundled SQLite to 3.21.0
  114. - Removed OpenVMS support (GH #1988)
  115. - fixed GH #271: NamedMutex_UNIX.cpp must remove semid
  116. - fixed GH #739: Add WebSocket::receiveFrame() that appends to a Poco::Buffer<char>
  117. - fixed GH #749: NTP Packet impl not according to RFC958
  118. - fixed GH #896: Sample "TwitterClient" of NetSSL_OpenSSL can't be build
  119. - fixed GH #1172: Poco::Data default storage should be std::vector
  120. - fixed GH #1337: Poco::HTMLForm throws exception HTMLFormException("Form must be prepared")
  121. even after form is prepared.
  122. - fixed GH #1373: SessionImpl::close() does not check return code of close handle specific function
  123. - fixed GH #1425: Workaround bug in SolarisStudio 12.4 on RVO-ed objects.
  124. - fixed GH #1614: Problematic license for JSON component: the previously used JSON.org parser
  125. has been replaced with pdjson
  126. - fixed GH #1659: wrong field size calculation in ODBC code
  127. - fixed GH #1683: Poco::Data ODBC impl doesn't bind to unsigned numeric types properly
  128. - fixed GH #1705: MongoDB: support URI in Connection
  129. - fixed GH #1708: "SocketReactor::addEventHandler" and "SocketReactor::removeEventHandler"
  130. must protect the access to "NotifierPtr pNotifier"
  131. - fixed GH #1729: getConnectionTimeout of SQLite DB wrapper returns wrong value
  132. (in milliseconds, should be in seconds)
  133. - fixed GH #1739: OpenSSLInitializer isn't threadsafe
  134. - fixed GH #1750: double_conversion in NumericString is in conflict with Qt5 Core
  135. - fixed GH #1804 and GH #1805: Integer Overflow or Wraparound
  136. - fixed GH #1828: DeflatingStreamBuf::sync() should also flush underlying stream.
  137. - fixed GH #1880: FTPClientSession::close() error
  138. - fixed GH #1897: DateTime wrong binding/extraction for MySQL database
  139. - fixed GH #1905: Compiling Foundation library with POCO_NO_FPENVIRONMENT in Config.h fails
  140. - fixed GH #1906: Race condition in ThreadPool
  141. - fixed GH #1913: Message Doesn't Support 64-bit Thread IDs
  142. - fixed GH #1921: ICMPSocket does not check reply address
  143. - fixed GH #1926: Exception when using SortedDirectoryIterator
  144. - fixed GH #1934: File::setExecutable() on POSIX should set executable bit for group and
  145. other if corresponding readable bit is set
  146. - fixed GH #1950: Net Exception: Address family not supported with clang
  147. - fixed GH #1964: Buffer<> swap miss ownMem
  148. Release 1.7.9p2 (2017-11-06)
  149. ============================
  150. - fixed GH #1628: Export Poco::Zip::ZipUtil class
  151. Release 1.7.9p1 (2017-11-02)
  152. ============================
  153. - fixed GH #1968: Zip Decompress Parent Path Injection
  154. Release 1.7.9 (2017-09-11)
  155. ==========================
  156. - fixed GH #1813: xmlparse.cpp doesn't compile in WinCE (poco 1.7.8p3)
  157. - fixed GH #1826: XPath query error
  158. - fixed GH #1834: Visual Studio 2008 cannot find stdint.h
  159. - fixed GH #1842: Upgrade bundled expat to 2.2.3
  160. - fixed GH #1843: Use random salt for Poco::XML::NamePool
  161. - fixed GH #1865: AbstractEvent::hasDelegates() is not thread-safe
  162. - improved/fixed QNX support
  163. - Poco::Util::LayeredConfiguration: added support for labelling configurations and
  164. finding them by their label
  165. - upgraded bundled SQLite to 3.20.1
  166. - PageCompiler: support <%@ include file="<path>" %> syntax for includes, in addition
  167. to <%@ include page="<path>" %>
  168. - PageCompiler: optimize generated request handler code by removing useless
  169. statements, e.g. writing empty strings.
  170. - added POCO_DEPRECATED macro which will be used in the future to deprecate
  171. classes and methods.
  172. - Poco::NamedMutex and Poco::NamedEvent (System V Semaphores implementation): files are
  173. now opened with O_RDONLY | O_CREAT instead of O_WRONLY | O_CREAT, allowing sharing
  174. between different users. Furthermore, ftok() is called with 'p' as project ID
  175. argument.
  176. Release 1.7.8p3 (2017-06-22)
  177. ============================
  178. - fixed GH #1760: Upgrade bundled expat to 2.2.1 which fixes some vulnerabilities:
  179. http://seclists.org/oss-sec/2017/q2/499
  180. Release 1.7.8p2 (2017-04-18)
  181. ============================
  182. - fixed GH #1655: CipherImpl memory leak with OpenSSL 1.1
  183. Release 1.7.8 (2017-02-21)
  184. ==========================
  185. - fixed GH #1212: Lost WebSocket Frames after Client Websocket Handshake is complete
  186. - fixed GH #1260: URI encoding
  187. - fixed GH #1501: Alpine 3.4 trouble with Foundation/src/Error.cpp
  188. - fixed GH #1523: Long path names under Windows
  189. - fixed GH #1536: Building with OS X 10.12 SDK and 10.7 deployment target without libc++ fails
  190. - fixed GH #1537: Need to add multiple cflags parameters to configure
  191. - fixed GH #1539: Allow overriding POCO_TARGET_OSARCH for iPhoneSimulator
  192. - fixed GH #1546: Enable bitcode for iPhone build config
  193. - fixed GH #1549: Latin2Encoding and 0xFF
  194. - fixed GH #1551: Unable to use Poco on macOS 10.12
  195. - fixed GH #1552: IPv6 & operator throws an exception when scope = 0
  196. - fixed GH #1566: Poco/Zip issue with some CM_DEFLATE archives
  197. - fixed GH #1567: Poco/ZIP issue with uncompressed archives
  198. - fixed GH #1570: IPv6AddressImpl::toString() returns wrong output for IPv6 address "::"
  199. - fixed GH #1571: ODBC Preparator memory leak
  200. - fixed GH #1573: Poco::File::createDirectories() should not throw Poco::FileExistsException
  201. - fixed GH #1580: Unable to unzip zip file created using non-seeking stream
  202. - fixed GH #1581: Cannot find 'pcre.h' when using POCO_UNBUNDLED, a non-system PCRE, and CMake
  203. - fixed GH #1588: Poco::Net::HTTPChunkedStreamBuf::readFromDevice(): restrict maximum
  204. size of chunk length
  205. - fixed GH #1589: Poco::Net::HTMLForm: restrict maximum field and value length
  206. - fixed GH #1590: Poco::Net::DialogSocket: restrict maximum line length
  207. - fixed GH #1591: Poco::Net::MultipartReader: restrict maximum boundary string length
  208. - fixed GH #1597: adding empty file to zip leads to archive that can't be unzipped by windows
  209. - fixed GH #1599: readFromDevice() in AutoDetectStream.cpp in Poco Zip cannot detect signature
  210. - fixed GH #1534: Upgraded bundled zlib to 1.2.11
  211. - fixed GH #1558: Upgraded bundled SQLite to 3.16.2
  212. - fixed GH #1586: Upgraded bundled PCRE to 8.40
  213. - fixed GH #1538: Upgraded bundled double-conversion to 1.1.5
  214. - MongoDB: added support for authentication using "MONGODB-CR" and "SCRAM-SHA-1"
  215. authentication schemes.
  216. - MongoDB: additional documentation and fixes for style and consistency and minor
  217. API improvements (e.g., Poco::MongoDB::Binary)
  218. Note: some flag enumeration values have been renamed for better consistency
  219. and readability; existing code using these will have to be updated.
  220. Release 1.7.7 (2016-12-31)
  221. ==========================
  222. - fixed GH #865: FileChannel compress fails leaving empty .gz files
  223. - fixed GH #990: Potential race condition in Poco::File on Windows
  224. - fixed GH #1157: Fixing a bug in the NetSSL_Win module (Host name verification failed error)
  225. - fixed GH #1351: Fix for android include pthread.h from /usr/include
  226. - fixed GH #1436: ODBC Bug: Unicode text(NVARCHAT) read from DB is truncated to half
  227. - fixed GH #1453: _clock_gettime Symbol not found on Mac 10.11
  228. - fixed GH #1460: POCO does not build with OpenSSL 1.1
  229. - fixed GH #1461: Poco::Data::SQLite::SQLiteStatementImpl::next() error
  230. - fixed GH #1462: AbstractConfiguration::getUInt does not parse hex numbers
  231. - fixed GH #1464: ODBCMetaColumn::init() always maps integer NUMERIC/DECIMAL to Int32
  232. - fixed GH #1465: Assertion violation in DateTime.cpp using ZipArchive
  233. - fixed GH #1472: HTTP(S)StreamFactory should send a User-Agent header.
  234. - fixed GH #1476: Fixed error with Poco::UTF8Encoding::isLegal()
  235. - fixed GH #1484: ODBC: fix uninitialized variable
  236. - fixed GH #1486: Support ODBC GUID data type as string
  237. - fixed GH #1488: Poco::ObjectPool shrinks if returned object is not valid
  238. - fixed GH #1515: Detection of closed websocket connection
  239. - fixed GH #1521: bug in JSON ParseHandler.cpp (empty keys should be valid)
  240. - fixed GH #1526: iOS app rejected, IPv6 not working
  241. - fixed GH #1532: RecordSet and RowFilter: bad use of reference counter
  242. Release 1.7.6 (2016-10-18)
  243. ==========================
  244. - fixed GH #1298: ZipFileInfo: Assertion violation when reading ods files
  245. - fixed GH #1315: Redefine Poco assertions for static analysis
  246. - fixed GH #1397: Fix issues reported by static source code analysis
  247. - fixed GH #1403: Android compile with poco-1.7.5 no 'pthread_condattr_setclock' error
  248. - fixed GH #1416: Assertion violation when unzipping
  249. - fixed GH #1418: Poco::Delegate assignment operator fails to compile for some specializations
  250. - fixed GH #1422: Can't build poco 1.7.4 or 1.7.5 on centos5 32 bit
  251. - fixed GH #1429: exception thrown in MongoDB when using replicaset
  252. - fixed GH #1431: Poco/FIFOBuffer.h copy issue
  253. - fixed GH #1445: Use stable_sort to preserve order of IP addresses from DNS
  254. - fixed GH #1456: better handle leap seconds in Poco::DateTime and Poco::LocalDateTime
  255. - fixed GH #1458: Probably invalid epoll_create() usage inside Poco/Socket.cpp
  256. - Poco::XML::NamePool: increased default size from 251 to 509. Default size can now
  257. be changed by defining the POCO_XML_NAMEPOOL_DEFAULT_SIZE macro accordingly.
  258. - Enchancements: Poco::XML::Document and Poco::XML::DOMParser have new constructors
  259. taking a NamePool size. Poco::Util::XMLConfiguration::load() also has a new overload
  260. for that purpose.
  261. - Improved error handling in the Zip library (getting rid of some poco_assert macros
  262. and did proper error handling instead).
  263. - Added Poco::URISyntaxException (subclass of Poco::SyntaxException), which is now
  264. thrown by Poco::URI.
  265. - Improved error handling in Poco::URIStreamOpener::open().
  266. - Poco::Data::MySQL: Handle connection lost/server gone error when starting a transaction
  267. and retry.
  268. - XMLConfiguration default (and single-argument delimiter) constructor now loads an empty
  269. XML document with "config" root element to make the configuration usable without an
  270. additional call to load() or loadEmpty().
  271. Release 1.7.5 (2016-08-29)
  272. ==========================
  273. - fixed GH #1252: Unable to compile Poco::Data for Windows Compact Embedded 2013
  274. - fixed GH #1344: Poco::Event::wait(timeout) should use CLOCK_MONOTONIC on Linux
  275. - fixed GH #1355: [JSON::Object] After copy-ctor, JSON::Object::_keys still points to
  276. keys in map of copied object
  277. - GH #1361: Shell expansion rules say that tilde must be replaced with $HOME before
  278. calling getpwuid
  279. - Poco::SingletonHolder: added reset() method
  280. - prefer clock_getttime() over gettimeofday() if available
  281. - Upgraded bundled SQLite to 3.14.1
  282. Release 1.7.4 (2016-07-20)
  283. ==========================
  284. - fixed GH #1300: Session constructor hangs
  285. - fixed GH #1303: HTTPSClientSession::sendRequest() fails if server has wildcard cert
  286. - fixed GH #1304: URI doesn't know "ws:/" or "wss://" schemes
  287. - fixed GH #1307: Upgrade bundled expat to 2.2.0
  288. - fixed GH #1313: XML library compilation error
  289. - fixed GH #1316: Empty SocketReactor never sleeps
  290. - Upgraded bundled SQLite to 3.13.0
  291. Release 1.7.3 (2016-05-02)
  292. ==========================
  293. - fixed GH #993: Invalid zip format when opening a docx in word
  294. - fixed GH #1235: Poco::Net::HTTPClientSession::sendRequest() should also handle HTTP_PATCH
  295. - fixed GH #1236: Remove Poco::Data::Row::checkEmpty() as it prevents Row from being used
  296. with all NULL rows
  297. - fixed GH #1239: Poco::Zip::Compress with non-seekable stream fails for CM_STORE
  298. - fixed GH #1242: Poco::Data::RowFormatter generate exception if the first column of first
  299. row is null
  300. - fixed GH #1253: ListMap does not maintain insertion order if key already exists
  301. - Upgraded bundled SQLite to 3.12.2
  302. Release 1.7.2 (2016-03-21)
  303. ==========================
  304. - fixed GH #1197: Upgrade bundled expat to 2.1.1
  305. Expat 2.1.1 fixes a CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-1283
  306. - fixed GH #1204: getdtablesize has been removed on Android 21
  307. - fixed GH #1203: Poco::Data::RecordSet should be reusable
  308. - fixed GH #1198: Upgrade bundled SQLite to 3.12.1
  309. Release 1.7.1 (2016-03-14)
  310. ==========================
  311. - fixed GH #1187: Data/MySQL: Seeing frequent "MySQL server has gone away" errors
  312. - fixed GH #1184: Attempting to connect via a proxy throws a DNS error "Host not found"
  313. - fixed GH #1180: Possible deadlock when TaskManager::count() is called in onFinished
  314. - NetSSL_OpenSSL: use TLS_*_method() instead of deprecated SSLv23_*_method()
  315. if OpenSSL version is >= 1.1; initialize default/fallback client context to support
  316. all TLS protocols, not just TLSv1
  317. Release 1.7.0 (2016-03-07)
  318. ==========================
  319. - POSSIBLE BREAKING CHANGE: removed automatic registration of Data connectors due to
  320. issues with static initialization order.
  321. - NetSSL_OpenSSL: added support for ECDH and DH ciphers; added support to disable
  322. specific protocols (Poco::Net::Context::disableProtocols());
  323. new Poco::Net::Context constructor taking a Poco::Net::Context::Params structure that
  324. allows specifying ECDH and DH parameters.
  325. - Poco::Net::TCPServer: add additional try ... catch block around poll() to
  326. gracefully deal with errors due to high system load (e.g., out of file descriptors).
  327. - fixed GH #1171: Poco::Data::RecordSet: rowCount not reset after execute
  328. - fixed GH #1167: CMake & POCO_UNBUNDLED: expat sources are compiled in libPocoXML
  329. - fixed GH #1160: Poco::Net::NetException
  330. "SSL Exception: error:1409F07F:SSL routines:ssl3_write_pending:bad write retry"
  331. - fixed GH #1152: Wrong TaskProgressNotification description
  332. - fixed GH #1141: Poco::StringTokenizer::TOK_TRIM changes behavior between 1.4 and 1.6
  333. - fixed GH #1137: Missing 'longint' type in SQLite
  334. - fixed GH #1135: Different package on github and official web site
  335. - fixed GH #1030: tvOS / WatchOS bitcode enabled for simulators
  336. - fixed GH #1114: World-write permissions on files created by daemon
  337. - fixed GH #1087: prevent line breaks in base64-encoded creds
  338. - fixed GH #1026: Fixes for producing the poco-1.6.2 release on a Cygwin x86 platform
  339. - fixed GH #1022: Abbreviation in setThreadName can happen even if thread name is not too long
  340. - fixed GH #1002: ActiveDispatcher saves reference to event context after event was
  341. performed until it gets new event
  342. - fixed GH #973: overwrite existing files on windows when moving files
  343. - fixed GH #969: Poco::File::renameTo() behaviour differs on windows and linux
  344. - fixed GH #967: Missing data types in SQLite
  345. - fixed GH #966: Possible crash when processing a corrupted Zip file
  346. - fixed GH #958: Bug while reading X509Certificate subjectName
  347. - fixed GH #937: Missing build_vs140.cmd
  348. - fixed GH #933: Change in JSON::Object::set(key,value) behavior in 1.6.1
  349. - fixed GH #931: make strToInt() more strict in what it accepts
  350. - fixed GH #921: `BasicUnbufferedStreamBuf` needs to be marked for import/export
  351. - fixed GH #848: MailMessage::_encoding is not set when retrieving plain/text message
  352. - fixed GH #767: Inconsistency in getPath & getPathAndQuery returns
  353. - fixed GH #724: Poco 1.6.0 is not compiled with openssl 1.0.0
  354. - fixed GH #713: Improved support for producing Canonical XML in XMLWriter
  355. - fixed GH #696: bug in parsing name of attachment poco c++ 1.6.0
  356. - fixed GH #335: Compress with nonseekable
  357. - upgraded bundled SQLite to 3.11.0
  358. - added Poco::Crypto::X509Certificate::equals() to compare two certificates
  359. - support for detecting Win8/Win10 in Poco::Environment
  360. - Poco::Net::HTTPServerRequestImpl: fixed an issue with DELETE in persistent connections
  361. - NetSSL: added Context::preferServerCiphers()
  362. - NetSSL: added support for ECDH, new Context constructor
  363. - NetSSL: add support for disabling certain protocols
  364. - SMTPClientSession: added support for XOAUTH2 authentication
  365. - Poco::Data::SessionPool: re-added customizeSession() method from 1.4.x releases
  366. - improved SSLManager to automatically set-up a reasonable client Context if
  367. none is configured
  368. - add brew OpenSSL search paths to Darwin configs
  369. - add HTTP/1.1 version to HTTPRequest for client WebSocket, as this is required for
  370. most servers
  371. - remove GCC_DIAG_OFF as this caused more issues than it solved
  372. - respect POCO_NO_FORK_EXEC in ServerApplication (tvOS)
  373. - tvOS and WatchOS support
  374. - fix: need an implementation of available() for WebSocketImpl
  375. - HTTPSessionInstantiator: respect global proxy config
  376. - added constant for HTTP PATCH method to Poco::Net::HTTPRequest
  377. - NumberParser::parseHex[64](): allow 0x/0X prefix
  378. Release 1.6.1 (2015-08-03)
  379. ==========================
  380. - added project and solution files for Visual Studio 2015
  381. - upgraded bundled SQLite to 3.8.11.1
  382. - fixed GH #782: Poco::JSON::PrintHandler not working for nested arrays
  383. - fixed GH #819: JSON Stringifier fails with preserve insert order
  384. - fixed GH #878: UUID tryParse
  385. - fixed GH #869: FIFOBuffer::read(T*, std::size_t) documentation inaccurate
  386. - fixed GH #861: Var BadCastException
  387. - fixed GH #779: BUG in 1.6.0 Zip code
  388. - fixed GH #769: Poco::Var operator== throws exception
  389. - fixed GH #766: Poco::JSON::PrintHandler not working for objects in array
  390. - fixed GH #763: Unable to build static with NetSSL_OpenSSL for OS X
  391. - fixed GH #750: BsonWriter::write<Binary::Ptr> missing size ?
  392. - fixed GH #741: Timestamp anomaly in Poco::Logger on WindowsCE
  393. - fixed GH #735: WEC2013 build fails due to missing Poco::Path methods.
  394. - fixed GH #722: poco-1.6.0: Unicode Converter Test confuses string and char types
  395. - fixed GH #719: StreamSocket::receiveBytes and FIFOBuffer issue in 1.6
  396. - fixed GH #706: POCO1.6 Sample EchoServer BUG
  397. - fixed GH #646: Prevent possible data race in access to Timer::_periodicInerval
  398. - DeflatingStream: do not flush underlying stream on sync() as these can cause
  399. corrupted files in Zip archives
  400. Release 1.6.0 (2014-12-22)
  401. ==========================
  402. - fixed GH #625: MongoDB ensureIndex double insert?
  403. - fixed GH #622: Crypto: RSATest::testSign() should verify with public key only
  404. - fixed GH #620: Data documentation sample code outdated
  405. - fixed GH #618: OS X 10.10 defines PAGE_SIZE macro, conflicts with PAGE_SIZE in Thread_POSIX.cpp
  406. - fixed GH #616: Visual Studio warning C4244
  407. - fixed GH #612: OpenSSLInitializer calls OPENSSL_config but not CONF_modules_free
  408. - fixed GH #608: (Parallel)SocketAcceptor ctor/dtor call virtual functions
  409. - fixed GH #607: Idle Reactor high CPU usage
  410. - fixed GH #606: HTMLForm constructor read application/x-www-form-urlencoded UTF-8 request
  411. body first parameter with BOM in name
  412. - fixed GH #596: For OpenSSL 1.0.1, include openssl/crypto.h not openssl/fips.h
  413. - fixed GH #592: Incorrect format string in Poco::Dynamic::Struct
  414. - fixed GH #590: Poco::Data::SQlite doesn't support URI filenames
  415. - fixed GH #564: URI::encode
  416. - fixed GH #560: DateTime class calculates a wrong day
  417. - fixed GH #549: Memory allocation is not safe between fork() and execve()
  418. - fixed GH #500: SSLManager causes a crash
  419. - fixed GH #490: 2 byte frame with payload length of 0 throws "Incomplete Frame Received" exception
  420. - fixed GH #483: multiple cases for sqlite_busy
  421. - fixed GH #482: Poco::JSON::Stringifier::stringify bad behaviour
  422. - fixed GH #478: HTTPCredentials not according to HTTP spec
  423. - fixed GH #471: vs2010 release builds have optimization disabled ?
  424. - fixed GH #468: HTTPClientSession/HTTPResponse not forwarding exceptions
  425. - fixed GH #438: Poco::File::setLastModified() doesn't work
  426. - fixed GH #402: StreamSocket::receiveBytes(FIFOBuffer&) and sendBytes(FIFOBuffer&) are
  427. not thread safe
  428. - fixed GH #345: Linker warning LNK4221 in Foundation for SignalHandler.obj, String.obj
  429. and ByteOrder.obj
  430. - fixed GH #331: Poco::Zip does not support files with ".." in the name.
  431. - fixed GH #318: Logger local time doesn't automatically account for DST
  432. - fixed GH #294: Poco::Net::TCPServerParams::setMaxThreads(int count) will not accept count == 0.
  433. - fixed GH #215: develop WinCE build broken
  434. - fixed GH #63: Net::NameValueCollection::size() returns int
  435. - Poco::Logger: formatting methods now support up to 10 arguments.
  436. - added Poco::Timestamp::raw()
  437. - Poco::DeflatingOutputStream and Poco::InflatingOutputStreams also flush underlying stream
  438. on flush()/sync().
  439. - Poco::Util::Timer: prevent re-schedule of cancelled TimerTask
  440. - enabled WinRegistryKey and WinRegistryConfiguration for WinCE
  441. - Poco::BasicEvent improvements and preparations for future support of lambdas/std::function
  442. - upgraded bundled sqlite to 3.8.7.2
  443. - Poco::Thread: added support for starting functors/lambdas
  444. - Poco::Net::HTTPClientSession: added support for global proxy configuration
  445. - added support for OAuth 1.0/2.0 via Poco::Net::OAuth10Credentials and
  446. Poco::Net::OAuth20Credentials classes.
  447. - Poco::Net::IPAddress: fixed IPv6 prefix handling issue on Windows
  448. - added Poco::Timestamp::TIMEVAL_MIN and Poco::Timestamp::TIMEVAL_MAX
  449. - added Poco::Clock::CLOCKVAL_MIN and Poco::Clock::CLOCKVAL_MAX
  450. - added poco_assert_msg() and poco_assert_msg_dbg() macros
  451. - Poco::Net::Context: fixed a memory leak if the CA file was not found while creating the
  452. Context object (the underlying OpenSSL context would leak)
  453. - Poco::URI: added new constructor to create URI from Path
  454. - Various documentation and style fixes
  455. - Removed support (project/solution files) for Visual Studio.NET 2003 and Visual Studio 2005.
  456. - Improved CMake support
  457. Release 1.5.4 (2014-10-14)
  458. ==========================
  459. - fixed GH #326: compile Net lib 1.5.2 without UTF8 support enabled
  460. - fixed GH #518: NetworkInterface.cpp compile error w/ POCO_NO_WSTRING (1.5.3)
  461. - Fixed MSVC 2010 warnings on large alignment
  462. - make HTTPAuthenticationParams::parse() add value on end of string
  463. - fixed GH #482: Poco::JSON::Stringifier::stringify bad behaviour
  464. - fixed GH #508: Can't compile for arm64 architecture
  465. - fixed GH #510: Incorrect RSAKey construction from istream
  466. - fix SharedMemory for WinCE/WEC2013
  467. - Add NIOS2 double conversion detection, fixes compile errors
  468. - added VS2013 project/solution files for Windows Embedded Compact 2013
  469. - added Process::isRunning()
  470. - NetSSL: Fix typo in documentation
  471. - NetSSL_OpenSSL: support for TLS 1.1 and 1.2
  472. - Zip: Added CM_AUTO, which automatically selects CM_STORE or CM_DEFLATE based
  473. on file extension. Used to avoid double-compression of already compressed file
  474. formats such as images.
  475. - added %L modifier to PatternFormatter to switch to local time
  476. - removed unnecessary explicit in some multi-arg constructors
  477. - Allow SecureStreamSocket::attach() to be used in server connections
  478. - added Var::isBoolean() and fixed JSON stringifier
  479. - added poco_unexpected() macro invoking Bugcheck::unexpected() to deal
  480. with unexpected exceptions in destructors
  481. - fixed GH #538 prevent destructors from throwing exceptions
  482. - improved HTTP server handling of errors while reading header
  483. - fixed GH #545: use short for sign
  484. - upgraded SQLite to 3.8.6
  485. - fixed GH #550 WebSocket fragmented message problem
  486. - improved HTTPClientSession handling of network errors while sending the request
  487. - updated bundled PCRE to 8.35.0
  488. - fixed GH #552: FIFOBuffer drain() problem
  489. - fixed GH #402: StreamSocket::receiveBytes(FIFOBuffer&) and sendBytes(FIFOBuffer&) are
  490. not thread safe
  491. - HTTPCookie: fix documentation for max age
  492. - added Timestamp::raw() and Clock::raw()
  493. - Poco::Buffer properly handles zero-sized buffers
  494. - GH #512: Poco:Data:ODBC:Binder.h causes a crash
  495. - Added Crypto_Win and NetSSL_Win libraries which are re-implementations of existing
  496. Crypto and NetSSL_OpenSSL libraries based on WinCrypt/Schannel. The new libraries
  497. can be used as an almost drop-in replacement for the OpenSSL based libraries on
  498. Windows and Windows Embedded Compact platforms. Only available from GitHub for now.
  499. Release 1.5.3 (2014-06-30)
  500. ==========================
  501. - fixed GH# 316: Poco::DateTimeFormatter::append() gives wrong result for
  502. Poco::LocalDateTime
  503. - Poco::Data::MySQL: added SQLite thread cleanup handler
  504. - Poco::Net::X509Certificate: improved and fixed domain name verification for
  505. wildcard domains
  506. - added Poco::Clock class, which uses a system-provided monotonic clock
  507. (if available) and is thus not affected by system realtime clock changes.
  508. Monotonic Clock is available on Windows, Linux, OS X and on POSIX platforms
  509. supporting clock_gettime() and CLOCK_MONOTONIC.
  510. - Poco::Timer, Poco::Stopwatch, Poco::TimedNotificationQueue and Poco::Util::Timer
  511. have been changed to use Poco::Clock instead of Poco::Timestamp and are now
  512. unaffected by system realtime clock changes.
  513. - fixed GH# 350: Memory leak in Data/ODBC with BLOB
  514. - Correctly set MySQL time_type for Poco::Data::Date.
  515. - fixed GH #352: Removed redundant #includes and fixed spelling mistakes.
  516. - fixed setting of MYSQL_BIND is_unsigned value.
  517. - fixed GH #360: CMakeLists foundation: add Clock.cpp in the list of source files
  518. - Add extern "C" around <net/if.h> on HPUX platform.
  519. - added runtests.sh
  520. - fixed CPPUNIT_IGNORE parsing
  521. - fixed Glob from start path, for platforms not alowing transverse from root (Android)
  522. - added NTPClient (Rangel Reale)
  523. - added PowerShell build script
  524. - added SmartOS build support
  525. - fix warnings in headers
  526. - XMLWriter: removed unnecessary apostrophe escaping (&apos)
  527. - MongoDB: use Int32 for messageLength
  528. - fixed GH #380: SecureSocket+DialogSocket crashes with SIGSEGV when timeout occours
  529. - Improve RSADigestEngine, using Poco::Crypto::DigestEngine to calculate hash before signing
  530. - added Poco::PBKDF2Engine
  531. - Fixed GH #380: SecureSocket+DialogSocket crashes with SIGSEGV when timeout occours
  532. - added support for a 'Priority' attribute on cookies.
  533. - GH #386: fixed bug in MailMessage without content-transfer-encoding header
  534. - GH #384: ew hash algorithms support for RSADigestEngine
  535. - fixed Clock overflow bug on Windows
  536. - Poco::ByteOrder now uses intrinsics, if available
  537. - CMake: added /bigobj option for msvc
  538. - Fix typo to restore Net/TestSuite_x64_vs120 build
  539. - correct path for CONFIGURE_FILE in CMakeLists.txt
  540. - Building Poco 1.5.2 for Synology RS812+ (Intel Atom) (honor POCO_NO_INOTIFY)
  541. - added WEC2013 support to buildwin.cmd and buildwin.ps1
  542. - HTMLForm: in URL encoding, percent-encode more characters
  543. - Fixed #include <linux/if.h> conflict with other libraries
  544. - Poco::Net::X509Certificate::verify() no longer uses DNS reverse lookups to validate host names
  545. - cert hostname validation is case insensitive and stricter for wildcard certificates
  546. - TCPServer: do not reduce the capacity of the default ThreadPool
  547. - added POCO_LOG_DEBUG flag
  548. - Zip: fixed a crash caused by an I/O error
  549. - added runtest script for windows
  550. - added SQlite Full Text Search support
  551. - added Thread::trySleep() and Thread::wakeUp()
  552. - fixed GH #410: Bug in JSON::Object.stringify() in 1.5.2
  553. - fixed GH #362: Defect in Var::parseString when there is no space between value and newline
  554. - fixed GH #314: JSON parsing bug
  555. - added GH #313: MetaColumn additions for Data::ODBC and Data::SQLite
  556. - fixed GH #346: Make Poco::Data::Date and Poco::Data::Time compare functions const.
  557. - fixed GH #341: Compiling poco-1.5.2 for Cygwin
  558. - fixed GH #305: There are bugs in Buffer.h
  559. - fixed GH #321: trivial build fixes (BB QNX build)
  560. - fixed GH #440: MongoDB ObjectId string formatting
  561. - added SevenZip library (Guenter Obiltschnig)
  562. - fixed GH #442: Use correct prefix length field of Windows IP_ADAPTER_PREFIX structure
  563. - improved GH #328: NetworkInterface on Windows XP
  564. - fixed GH #154 Add support for MYSQL_TYPE_NEWDECIMAL to Poco::Data::MySQL
  565. - fixed GH #290: Unicode support
  566. - fixed GH #318: Logger local time doesn't automatically account for DST
  567. - fixed GH #363: DateTimeParser tryParse/parse
  568. - added HTMLForm Content-Length calculation (Rangel Reale)
  569. - Make TemporaryFile append a slash to tempDir
  570. - fixed GH #319 android build with cmake
  571. - added hasDelegates() method to AbstractEvent
  572. - fixed GH #230: Poco::Timer problem
  573. - fixed GH #317: Poco::Zip does not support newer Zip file versions.
  574. - fixed GH #176: Poco::JSON::Stringifier UTF encoding
  575. - fixed GH #458: Broadcast address and subnet mask for IEEE802.11 network interface
  576. - fixed GH #456: poco: library install dirs per RUNTIME/LIBRARY/ARCHIVE
  577. Release 1.5.2 (2013-09-16)
  578. ==========================
  579. - added MongoDB library
  580. - fixed GH #57: poco-1.5.1: Doesn't compile for Android
  581. - added VoidEvent (Arturo Castro)
  582. - fixed GH #80: NumberFormatter::append broken
  583. - fixed GH #93: ParallelSocketAcceptor virtual functions
  584. - optional small object optimization for IPAddress, SocketAddress, Any and Dynamic::Var
  585. - SQLite events (insert, update, delete, commit, rollback) handlers
  586. - merged GH #91: Improve SQLite multi-threaded use (Rangel Reale)
  587. - merged GH #86: Invalid pointers to vector internals (Adrian Imboden)
  588. - automatic library initialization macros
  589. - fixed GH #110: WebSocket accept() fails when Connection header contains multiple tokens
  590. - fixed GH #71: WebSocket and broken Timeouts (POCO_BROKEN_TIMEOUTS)
  591. - fixed a warning in Poco/Crypto/OpenSSLInitializer.h
  592. - fixed GH #109: Bug in Poco::Net::SMTPClientSession::loginUsingPlain
  593. - added clang libc++ build configurations for Darwin and iPhone (Andrea Bigagli)
  594. - fixed GH #116: Wrong timezone parsing in DateTimeParse (Matej Knopp)
  595. - fixed GH #118: JSON::Object::stringify endless loop
  596. - added Recursive and SortedDirectoryIterator (Marian Krivos)
  597. - added ListMap (map-like container with preserving insertion order)
  598. - MailMessage: attachments saving support and consistent read/write
  599. - fixed GH #124: Possible buffer overrun in Foundation/EventLogChannel
  600. - fixed GH #119: JSON::Object holds values in ordered map
  601. - added JSON::PrintHandler
  602. - renamed JSON::DefaultHandler to ParseHandler (breaking change!)
  603. - fixed GH #127: Eliminate -Wshadow warnings
  604. - fixed GH #79: Poco::Thread leak on Linux
  605. - fixed GH #61: static_md build configs for Crypto and NetSSL
  606. - fixed GH #130: prefer sysconf over sysctlbyname
  607. - fixed GH #131: no timezone global var on OpenBSD
  608. - fixed GH #102: Some subprojects don't have x64 solutions for VS 2010
  609. - added GH #75: Poco::Uri addQueryParameter method
  610. - Poco::Environment::osDisplayName() now recognizes Windows 8/Server 2012
  611. - fixed GH #140: Poco::Runnable threading cleanup issue
  612. - simplified default TCP/HTTPServer construction
  613. - fixed GH #141: Application::run() documentation/implementation discrepancy
  614. - changed RowFormatter to SharedPtr<RowFormatter> in Data::RecordSet interface (breaking change!)
  615. - fixed GH #144: Poco::Dynamic emits invalid JSON
  616. - removed naked pointers from Data interfaces
  617. - fixed GH #82: name conflict in Data::Keywords::bind
  618. - fixed GH #157: MySQL: cannot bind to 'long' data type on Windows/Visual C++
  619. - fixed GH #158: MySQL: MYSQL_BIND 'is_unsigned' member is not set
  620. - fixed GH #160: MultipartReader ignores first part, if preamble is missing
  621. - fixed GH #156: Possible buffer overrun in Foundation/EventLogChannel
  622. - XML: fixed an issue with parsing a memory buffer > 2 GB
  623. - upgraded to expat 2.1.0
  624. - Data/ODBC: added support for setting query timeout (via setProperty
  625. of "queryTimeout"). Timeout is int, given in seconds.
  626. - fixed a potential endless loop in SecureStreamSocketImpl::sendBytes()
  627. and also removed unnecessary code.
  628. - fixed GH #159: Crash in openssl CRYPTO_thread_id() after library libPocoCrypto.so
  629. has been unloaded.
  630. - fixed GH #155: MailOutputStream mangles consecutive newline sequences
  631. - fixed GH #139: FileChannel::PROP_FLUSH is invalid (contains a tab character)
  632. - fixed GH #173: HTTPClientSession::proxyConnect forces DNS lookup of host names
  633. - fixed GH #194: MessageNotification constructor is inefficient.
  634. - fixed GH #189: Poco::NumberParser::tryParse() documentation bug
  635. - fixed GH #172: IPv6 Host field is stripped of Brackets in HTTPClientSession
  636. - fixed GH #188: Net: SocketAddress operator < unusable for std::map key
  637. - fixed GH #128: DOMWriter incorrectly adds SYSTEM keyword to DTD if PUBLIC is
  638. already specified
  639. - fixed GH #65: Poco::format() misorders sign and padding specifiers
  640. - upgraded bundled SQLite to 3.7.17
  641. - replaced JSON parser with Poco::Web::JSON parser (from sandbox)
  642. - added JSON conversion to Dynamic Struct and Array
  643. - added VarIterator
  644. - modified behavior of empty Var (empty == empty)
  645. - added Alignment.h header for C++03 alignment needs
  646. - added Data/WebNotifier (DB, WebSocket) example
  647. - fixed GH #209: Poco::NumberFormatter double length
  648. - fixed GH #204: Upgrade zlib to 1.2.8
  649. - fixed GH #198: The "application.configDir" property is not always created.
  650. - fixed GH #185: Poco::NumberFormatter::format(double value, int precision)
  651. ignore precision == 0
  652. - fixed GH #138: FreeBSD JSON tests fail
  653. - fixed GH #99: JSON::Query an JSON::Object
  654. - limited allowed types for JSON::Query to Object, Array, Object::Ptr,
  655. Array::Ptr and empty
  656. - fixed GH #175: HTMLForm does not read URL parameters on POST or PUT
  657. - added GH #187: MySQL: allow access to the underlying connection handle
  658. - added GH #186: MySQL: support for MYSQL_SECURE_AUTH
  659. - fixed GH #174: MySQL: 4GB allocated when reading any largetext or largeblob field
  660. - fixed a potential memory leak in Poco::Net::HTTPClientSession if it is misused
  661. (e.g., sendRequest() is sent two times in a row without an intermediate call to
  662. receiveResponse(), or by calling receiveResponse() two times in a row without
  663. an intermediate call to sendRequest()) - GH #217
  664. - removed a few unnecessary protected accessor methods from Poco::Net::HTTPClientSession
  665. that would provide inappropriate access to internal state
  666. - merged GH #210: Don't call CloseHandle() twice on Windows; Ability to select the
  667. threadpool that will be used to start an Activity(Patrice Tarabbia)
  668. - fixed GH #212: JSONConfiguration was missing from the vs90 project(Patrice Tarabbia)
  669. - fixed GH #220: add qualifiers for FPEnvironment in C99 (Lucas Clemente)
  670. - fixed GH #222: HTTPCookie doesn't support expiry times in the past (Karl Reid)
  671. - fixed GH #224: building 1.5.1 on Windows for x64
  672. - fixed GH# 233: ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool ipV6Only) does not work
  673. - fixed GH# 231: Compatibility issue with Poco::Net::NetworkInterface
  674. - fixed GH# 236: Bug in RecursiveDirectoryIterator
  675. - added ColorConsoleChannel and WindowsColorConsoleChannel classes supporting
  676. colorizing log messages
  677. - fixed GH# 259: Poco::EventLogChannel fails to find 64bit Poco Foundation dll
  678. - fixed GH# 254: UTF8::icompare unexpected behavior
  679. - Poco::UUID::tryParse() also accepts UUIDs without hyphens. Also updated documentation
  680. (links to specifications).
  681. - added GH# 268: Method to get JSON object value using Poco::Nullable
  682. - fixed GH# 267: JSON 'find' not returning empty result if object is expected but another value is found
  683. - Added support for ARM64 architecture and iPhone 5s 64-bit builds
  684. (POCO_TARGET_OSARCH=arm64).
  685. Release 1.5.1 (2013-01-11)
  686. ==========================
  687. - using double-conversion library for floating-point numeric/string conversions
  688. - added Poco::istring (case-insensitive string) and Poco::isubstr
  689. - added SQLite sys.dual (in-memory system table)
  690. - applied SF Patch #120: The ExpireLRUCache does not compile with a tuple as key on Visual Studio 2010
  691. - fixed SF Bug #599: JSON::Array and JSON::Object size() member can implicitly lose precision
  692. - fixed SF Bug #602: iterating database table rows not correct if no data in table
  693. - fixed SF Bug #603: count() is missing in HashMap
  694. - fixed GH #23: JSON::Object::stringify throw BadCastException
  695. - fixed GH #16: NetworkInterface::firstAddress() should not throw on unconfigured interfaces
  696. - Android compile/build support (by Rangel Reale)
  697. - TypeHandler::prepare() now takes const-reference
  698. - fixed GH #27: Poco::URI::decode() doesn't properly handle '+'
  699. - fixed GH #31: JSON implementation bug
  700. - fixed SF #597: Configure script ignores cflags
  701. - fixed SF #593: Poco 1.5.0 on FreeBSD: cannot find -ldl
  702. - added SF #542: SocketAddress() needs port-only constructor
  703. - fixed SF #215: Wrong return type in SocketConnector.h
  704. - applied SF Patch #97: fix c++0x / clang++ bugs
  705. - fixed GH32/SF596: Poco::JSON: Parsing long integer (int64) value fails.
  706. - added Net ifconfig sample (contributed by Philip Prindeville)
  707. - merged GH #34: add algorithm header (Roger Meier/Philip Prindeville)
  708. - fixed GH #26: Cannot compile on gcc
  709. - merged SF #111: FTP Client logging (Marian Krivos)
  710. - fixed GH #30: Poco::Path::home() throws when called from Windows Service
  711. - fixed GH #22: MySQL connection string lowercased
  712. - added MySQL support for Date/Time
  713. - upgraded SQLite to version 3.7.15.1 (2012-12-19)
  714. - improved SQLite execute() return (affected rows) value and added tests
  715. - added SQLite::Utility::isThreadSafe() function
  716. - added SQLite::Utility::setThreadMode(int mode) function
  717. - fixed GH #36: 'distclean' requires 3 traversals of project tree
  718. - fixed GH #41: Buffer::resize crash
  719. - fixed GH #42: Linux unbundled builds don't link
  720. - fixed GH #44: Problems with win x64 build
  721. - fixed GH #46: 1.5.1 build fails on OS X when using libc++
  722. - fixed GH #48: Need getArgs() accessor to Util::Application to retrieve start-up arguments
  723. - fixed GH #49: NetworkInterface::list doesn't return MAC addresses
  724. - fixed GH #51: Android should use isfinite, isinf, isnan and signbit from the std namespace
  725. - fixed GH #53: JSON unicode fixes and running tests on invalid unicode JSON
  726. - added ParallelAcceptor and ParallelReactor classes
  727. - added EOF and error to FIFOBuffer
  728. Release 1.5.0 (2012-10-14)
  729. ==========================
  730. - added JSON library
  731. - added Util::JSONConfiguration
  732. - added FIFOBuffer and FIFOBufferStream
  733. - fixed SF# 3522906: Unregistering handlers from SocketReactor
  734. - fixed SF# 3522084: AbstractConfiguration does not support 64-bit integers
  735. - HTTPServer::stopAll(): close the socket instead of just shutting it down, as the latter won't wake up a select() on Windows
  736. - added SMTPLogger
  737. - added cmake support
  738. - fixed SF#3538778: NetworkInterface enumeration uses deprecated API
  739. - fixed SF#3538779: IPAddress lacks useful constructors: from prefix mask, native SOCKADDR
  740. - fixed SF#3538780: SocketAddress needs operator < function
  741. - fixed SF#3538775: Issues building on Fedora/Centos, etc. for AMD64
  742. - fixed SF#3538786: Use size_t for describing data-blocks in DigestEngine
  743. - added IPAddress bitwise operators (&,|,^,~)
  744. - added IPAddress BinaryReader/Writer << and >> operators
  745. - modified IPAddress to force IPv6 to lowercase (RFC 5952)
  746. - fixed SF#3538785: SMTPClientSession::sendMessage() should take recipient list
  747. - added IPAddress::prefixLength()
  748. - UTF portability improvements
  749. - fixed SF#3556186: Linux shouldn't use <net/if.h> in Net/SocketDefs.h
  750. - added IPAddress RFC 4291 compatible site-local prefix support
  751. - fixed SF#3012166: IPv6 patch
  752. - added SF#3558085: Add formatter to MACAddress object
  753. - fixed SF#3552774: Don't hide default target in subordinate makefile
  754. - fixed SF#3534307: Building IPv6 for Linux by default
  755. - fixed SF#3516844: poco missing symbols with external >=lipcre-8.13
  756. - added SF#3544720: AbstractConfigurator to support 64bit values
  757. - fixed SF#3522081: WinRegistryConfiguration unable to read REG_QWORD values
  758. - fixed SF#3563626: For Win32 set Up/Running flags on NetworkInterface
  759. - fixed SF#3560807: Deprecate setPeerAddress() as this is now done in getifaddrs
  760. - fixed SF#3560776: Fix byte-ordering issues with INADDR_* literals
  761. - fixed SF#3563627: Set IP address on multicast socket from socket family
  762. - fixed SF#3563999: Size BinaryWriter based on buffer's capacity(), not size()
  763. - fixed SF#102 Fix building Poco on Debian GNU/kFreeBSD
  764. - fixed SF#321 Binding DatTime or Timestamp
  765. - fixed SF#307 Detect the SQL driver type at run time
  766. - added VS 2012 Projects/Solutions
  767. - enhanced and accelerated numeric parsing for integers and floats
  768. - fixed SF#590 Segfault on FreeBSD when stack size not rounded
  769. - added warn function and warnmsg macro in CppUnit
  770. - fixed SF# 3558012 Compilation fails when building with -ansi or -std=c++0x
  771. - fixed SF# 3563517 Get rid of loss-of-precision warnings on x64 MacOS
  772. - fixed SF#3562244: Portability fix for AF_LINK
  773. - fixed SF #3562400: DatagramSocketImpl comment is incorrect
  774. Release 1.4.7p1 (2014-11-25)
  775. ============================
  776. - Fixed Visual C++ 2010-2013 project files. Release builds now have optimization enabled.
  777. - Poco::URI: added constructor to create URI from Path.
  778. - fixed GH #618: OS X 10.10 defines PAGE_SIZE macro, conflicts with PAGE_SIZE in Thread_POSIX.cpp
  779. - Poco::Net::HTTPClientSession: added support for global proxy configuration
  780. - fixed GH #331: Poco::Zip does not support files with .. in the name.
  781. - fixed a memory leak in Poco::Net::Context constructor when it fails to load the certificate
  782. or private key files.
  783. - upgraded bundled SQLite to 3.8.7.2
  784. - fixed GH #229: added missing value() function
  785. - fixed GH #69: MySQL empty text/blob
  786. Release 1.4.7 (2014-10-06)
  787. ==========================
  788. - fixed GH #398: PropertyFileConfiguration: input != output
  789. - fixed GH #368: Build failure of Poco 1.4.6p2 on FreeBSD 9.2
  790. - fixed GH #318: Logger local time doesn't automatically account for DST
  791. - fixed GH #317: Poco::Zip does not support newer Zip file versions.
  792. - fixed GH #454: Fix: handle unhandled exceptions
  793. - fixed GH #463: XML does not compile with XML_UNICODE_WCHAR_T
  794. - fixed GH #282: Using Thread in a global can cause crash on Windows
  795. - fixed GH #424: Poco::Timer deadlock
  796. - fixed GH #465: Fix result enum type XML_Error -> XML_Status
  797. - fixed GH #510: Incorrect RSAKey construction from istream
  798. - fixed GH #332: POCO::ConsoleChannnel::initColors() assigns no color to
  799. PRIO_TRACE and wrong color to PRIO_FATAL
  800. - fixed GH #550: WebSocket fragmented message problem
  801. - Poco::Data::MySQL: added SQLite thread cleanup handler
  802. - Poco::Net::X509Certificate: improved and fixed domain name verification for
  803. wildcard domains
  804. - fixed a crash in Foundation testsuite with Visual C++ 2012
  805. - improved and fixed domain name verification for wildcard domains in
  806. Poco::Net::X509Certificate
  807. - updated TwitterClient sample to use new 1.1 API and OAuth
  808. - added Poco::Clock class, which uses a system-provided monotonic clock
  809. (if available) and is thus not affected by system realtime clock changes.
  810. Monotonic Clock is available on Windows, Linux, OS X and on POSIX platforms
  811. supporting clock_gettime() and CLOCK_MONOTONIC.
  812. - Poco::Timer, Poco::Stopwatch, Poco::TimedNotificationQueue and Poco::Util::Timer
  813. have been changed to use Poco::Clock instead of Poco::Timestamp and are now
  814. unaffected by system realtime clock changes.
  815. - added Poco::PBKDF2Engine class template
  816. - Poco::Net::HTTPCookie: added support for Priority attribute (backport from develop)
  817. - fixed makedepend.* scripts to work in paths containing '.o*'
  818. (contributed by Per-Erik Bjorkstad, Hakan Bengtsen)
  819. - Upgraded bundled SQLite to 3.8.6
  820. - Support for Windows Embedded Compact 2013 (Visual Studio 2012)
  821. - Project and solution files for Visual Studio 2013
  822. - Changes for C++11 compatibility.
  823. - fixed an issue with receiving empty web socket frames (such as ping)
  824. - improved error handling in secure socket classes
  825. - Poco::ByteOrder now uses intrinsics if available
  826. - added new text encoding classes: Latin2Encoding, Windows1250Encoding, Windows1251Encoding
  827. - Zip: Added CM_AUTO, which automatically selects CM_STORE or CM_DEFLATE based on file extension.
  828. Used to avoid double-compression of already compressed file formats such as images.
  829. Release 1.4.6p4 (2014-04-18)
  830. ============================
  831. - no longer use reverse DNS lookups for cert hostname validation
  832. - cert hostname validation is case insensitive and more strict
  833. - HTMLForm: in URL encoding, percent-encode more special characters
  834. - fixed thread priority issues on POSIX platforms with non-standard scheduling policy
  835. - XMLWriter no longer escapes apostrophe character
  836. - fixed GH #316: Poco::DateTimeFormatter::append() gives wrong result for Poco::LocalDateTime
  837. - fixed GH #305 (memcpy in Poco::Buffer uses wrong size if type != char)
  838. - Zip: fixed a crash caused by an I/O error (e.g., full disk) while creating a Zip archive
  839. Release 1.4.6p3 (2014-04-02)
  840. ============================
  841. - Fixed a potential security vulnerability in client-side X509
  842. certificate verification.
  843. Release 1.4.6p2 (2013-09-16)
  844. ============================
  845. - fixed GH #156: Possible buffer overrun in Foundation/EventLogChannel
  846. - XML: fixed an issue with parsing a memory buffer > 2 GB
  847. - upgraded to expat 2.1.0
  848. - Data/ODBC: added support for setting query timeout (via setProperty
  849. of "queryTimeout"). Timeout is int, given in seconds.
  850. - fixed a potential endless loop in SecureStreamSocketImpl::sendBytes()
  851. and also removed unnecessary code.
  852. - fixed GH #159: Crash in openssl CRYPTO_thread_id() after library libPocoCrypto.so
  853. has been unloaded.
  854. - fixed GH #155: MailOutputStream mangles consecutive newline sequences
  855. - fixed GH# 139: FileChannel::PROP_FLUSH is invalid (contains a tab character)
  856. - fixed GH# 173: HTTPClientSession::proxyConnect forces DNS lookup of host names
  857. - fixed GH# 194: MessageNotification constructor is inefficient.
  858. - fixed GH# 189: Poco::NumberParser::tryParse() documentation bug
  859. - fixed GH# 172: IPv6 Host field is stripped of Brackets in HTTPClientSession
  860. - fixed GH# 188: Net: SocketAddress operator < unusable for std::map key
  861. - fixed GH# 128: DOMWriter incorrectly adds SYSTEM keyword to DTD if PUBLIC is
  862. already specified
  863. - fixed GH# 65: Poco::format() misorders sign and padding specifiers
  864. - upgraded bundled SQLite to 3.7.17
  865. - upgraded bundled zlib to 1.2.8
  866. - fixed a potential memory leak in Poco::Net::HTTPClientSession if it is misused
  867. (e.g., sendRequest() is sent two times in a row without an intermediate call to
  868. receiveResponse(), or by calling receiveResponse() two times in a row without
  869. an intermediate call to sendRequest()) - GH #217
  870. - removed a few unnecessary protected accessor methods from Poco::Net::HTTPClientSession
  871. that would provide inappropriate access to internal state
  872. - fixed GH# 223 (Poco::Net::HTTPCookie does not support expiry times in the past)
  873. - fixed GH# 233: ServerSocket::bind6(Poco::UInt16 port, bool reuseAddress, bool ipV6Only)
  874. does not work
  875. - added ColorConsoleChannel and WindowsColorConsoleChannel classes supporting
  876. colorizing log messages
  877. - fixed GH# 259: Poco::EventLogChannel fails to find 64bit Poco Foundation dll
  878. - fixed GH# 254: UTF8::icompare unexpected behavior
  879. - Poco::UUID::tryParse() also accepts UUIDs without hyphens. Also updated documentation
  880. (links to specifications).
  881. - Added support for ARM64 architecture and iPhone 5s 64-bit builds
  882. (POCO_TARGET_OSARCH=arm64).
  883. Release 1.4.6p1 (2013-03-06)
  884. ============================
  885. - fixed GH# 71: WebSocket and broken Timeouts (POCO_BROKEN_TIMEOUTS)
  886. - fixed an ambiguity error with VC++ 2010 in Data/MySQL testsuite
  887. - Poco::Net::NetworkInterface now provides the interface index even for IPv4
  888. - added DNS::reload() as a wrapper for res_init().
  889. - On Linux, Poco::Environment::nodeId() first always tries to obtain the
  890. MAC address of eth0, before looking for other interfaces.
  891. - Poco::Net::HTTPSession now always resets the buffer in connect() to clear
  892. any leftover data from a (failed) previous session
  893. - fixed copysign namespace issue in FPEnvironment_DUMMY.h
  894. - fixed a warning in Poco/Crypto/OpenSSLInitializer.h
  895. - added a build configuration for BeagleBoard/Angstrom
  896. - fixed GH# 109: Bug in Poco::Net::SMTPClientSession::loginUsingPlain)
  897. - fixed compile errors with clang -std=c++11
  898. - fixed GH# 116: Wrong timezone parsing in DateTimeParse (fix by Matej Knopp)
  899. - updated bundled SQLite to 3.7.15.2
  900. Release 1.4.6 (2013-01-10)
  901. ==========================
  902. - changed FPEnvironment_DUMMY.h to include <cmath> instead of <math.h>
  903. - updated bundled SQLite to 3.7.15.1
  904. - fixed GH# 30: Poco::Path::home() throws
  905. - fixed SF Patch# 120 The ExpireLRUCache does not compile with a tuple as key on VS2010
  906. - fixed SF# 603 count() is missing in HashMap
  907. - Crypto and NetSSL_OpenSSL project files now use OpenSSL *MD.lib library files for
  908. static_md builds. Previously, the DLL import libs were used.
  909. - Poco::Environment::osDisplayName() now recognizes Windows 8/Server 2012
  910. Release 1.4.5 (2012-11-19)
  911. ==========================
  912. - added Visual Studio 2012 project files
  913. - buildwin.cmd now support building with msbuild for VS2010 and 2012.
  914. - added Poco::Optional class
  915. - fixed SF# 3558012 Compilation fails when building with -ansi or -std=c++0x
  916. - fixed SF# 3563517 Get rid of loss-of-precision warnings on x64 MacOS
  917. - fixed SF# 3562244: Portability fix for AF_LINK
  918. - fixed SF# 3562400: DatagramSocketImpl comment
  919. - fixed SF# 594: Websocket fails with small masked payloads
  920. - fixed SF# 588: Missing POCO_ARCH and POCO_ARCH_LITTLE_ENDIAN define for WinCE on SH4
  921. - fixed SF# 581: Out-of-bound array access in Unicode::properties() function.
  922. - fixed SF# 590: Segfault on FreeBSD when stack size not rounded
  923. - fixed SF# 586: Poco::DateTimeParser and ISO8601 issues when seconds fraction has more than 6 digits
  924. - Poco::Net::HTTPSSessionInstantiator::registerInstantiator() now optionally accepts a
  925. Poco::Net::Context object.
  926. - added Poco::XML::XMLWriter::depth() member function.
  927. - added Poco::XML::XMLWriter::uniquePrefix() and Poco::XML::XMLWriter::isNamespaceMapped().
  928. - Poco::FileChannel now supports a new rotateOnOpen property (true/false) which can be used
  929. to force rotation of the log file when it's opened.
  930. - fixed a bug in Poco::XML::XMLWriter::emptyElement(): need to pop namespace context
  931. - OS X builds now use Clang as default compiler
  932. - Updated SQLite to 3.7.14.1
  933. - POCO_SERVER_MAIN macro now has a try ... catch block for Poco::Exception and writes
  934. the displayText to stderr.
  935. - Poco/Platform.h now defines POCO_LOCAL_STATIC_INIT_IS_THREADSAFE macro if the compiler
  936. generates thread-safe static local initialization code.
  937. Release 1.4.4 (2012-09-03)
  938. ==========================
  939. - ZipStream now builds correctly in unbundled build.
  940. - added proxy digest authentication support to Net library
  941. - integrated MySQL BLOB fixes from Franky Braem.
  942. - use standard OpenSSL import libraries (libeay32.lib, ssleay32.lib) for Crypto and
  943. NetSSL_OpenSSL Visual Studio project files.
  944. - fixed a potential buffer corruption issue in Poco::Net::SecureStreamSocket if lazy
  945. handshake is enabled and the first attempt to complete the handshake fails
  946. - Poco::DateTimeParser::tryParse() without format specifier now correctly parses ISO8601
  947. date/times with fractional seconds.
  948. - Poco::Process::launch() now has additional overloads allowing to specify an initial
  949. directory and/or environment.
  950. - Poco::Net::FTPClientSession: timeout was not applied to data connection, only to
  951. control connection.
  952. - Fixed potential IPv6 issue with socket constructors if IPv6 SocketAddress is given
  953. (contributed by ??????? ????????? <milovidov@yandex-team.ru>).
  954. - Added an additional (optional) parameter to Poco::Thread::setOSPriority() allowing to
  955. specify a scheduling policy. Currently this is only used on POSIX platforms and allows
  956. specifying SCHED_OTHER (default), SCHED_FIFO or SCHED_RR, as well as other
  957. platform-specific policy values.
  958. - Added Poco::Crypto::DigestEngine class providing a Poco::DigestEngine interface to
  959. the digest algorithms provided by OpenSSL.
  960. - Fixed some potential compiler warnings in Crypto library
  961. - In some cases, when an SSL exception was unexpectedly closed, a generic Poco::IOException
  962. was thrown. This was fixed to throw a SSLConnectionUnexpectedlyClosedException instead.
  963. - Added Poco::ObjectPool class template.
  964. - Poco::Net::HTTPServer has a new stopAll() method allowing stopping/aborting of all
  965. currently active client connections.
  966. - The HTTP server framework now actively prevents sending a message body in the
  967. response to a HEAD request, or in case of a 204 No Content or 304 Not Modified
  968. response status.
  969. - fixed a DOM parser performance bug (patch by Peter Klotz)
  970. - fixed SF# 3559325: Util Windows broken in non-Unicode
  971. - updated iOS build configuration to use xcode-select for finding toolchain
  972. - Poco::Net::SecureSocketImpl::shutdown() now also shuts down the underlying socket.
  973. - fixed SF# 3552597: Crypto des-ecb error
  974. - fixed SF# 3550553: SecureSocketImpl::connect hangs
  975. - fixed SF# 3543047: Poco::Timer bug for long startInterval/periodic interval
  976. - fixed SF# 3539695: Thread attributes should be destroyed using the pthread_attr_destroy()
  977. - fixed SF# 3532311: Not able to set socket option on ServerSocket before bind
  978. Added Poco::Net::Socket::init(int af) which can be used to explicitely
  979. initialize the underlying socket before calling bind(), connect(), etc.
  980. - fixed SF# 3521347: Typo in UnWindows.h undef
  981. - fixed SF# 3519474: WinRegistryConfiguration bug
  982. Also added tests and fixed another potential issue with an empty root path passed to the constructor.
  983. - fixed SF# 3516827: wrong return value of WinRegistryKey::exists()
  984. - fixed SF# 3515284: RSA publickey format(X.509 SubjectPublicKeyInfo)
  985. - fixed SF# 3503267: VxWorks OS prio is not set in standard constructor
  986. - fixed SF# 3500438: HTTPResponse failure when reason is empty
  987. - fixed SF# 3495656: numberformater, numberparser error in mingw
  988. - fixed SF# 3496493: Reference counting broken in TaskManager postNotification
  989. - fixed SF# 3483174: LogFile flushing behavior on Windows
  990. Flushing is now configurable for FileChannel and SimpleFileChannel
  991. using the "flush" property (true or false).
  992. - fixed SF# 3479561: Subsequent IPs on a NIC is not enumerated
  993. - fixed SF# 3478665: Permission checks in Poco::File not correct for root
  994. - fixed SF# 3475050: Threading bug in initializeNetwork() on Windows
  995. - fixed SF# 3552680: websocket small frames bug and proposed fix
  996. - fixed a WebSocket interop issue with Firefox
  997. - added Poco::Net::MessageHeader::hasToken()
  998. - Poco::AtomicCounter now uses GCC 4.3 builtin atomics on more platforms
  999. - fixed SF# 3555938: NetSSL: socket closed twice
  1000. - socket exceptions now include OS error code
  1001. - fixed SF# 3556975: Need to fix Shared Memory for memory map
  1002. - Poco::Net::SecureSocketImpl::close() now catches exceptions thrown by its call to shutdown().
  1003. - fixed SF# 3535990: POCO_HAVE_IPv6 without POCO_WIN32_UTF8 conflict
  1004. - fixed SF# 3559665: Poco::InflatingInputStream may not always inflate completely
  1005. - added Poco::DirectoryWatcher class
  1006. - fixed SF# 3561464: Poco::File::isDevice() can throw due to sharing violation
  1007. - Poco::Zip::Compress::addRecursive() has a second variant that allows to specify the compression method.
  1008. - Upgraded internal SQLite to 3.7.14
  1009. Release 1.4.3p1 (2012-01-23)
  1010. ============================
  1011. - fixed SF# 3476926: RegDeleteKeyEx not available on Windows XP 32-bit
  1012. Release 1.4.3 (2012-01-16)
  1013. ==========================
  1014. - fixed a compilation error with Data/MySQL on QNX.
  1015. - fixed Util project files for WinCE (removed sources not compileable on CE)
  1016. - removed MD2 license text from Ackowledgements document
  1017. - fixed iPhone build config for Xcode 4.2 (compiler name changed to llvm-g++)
  1018. - Poco::Util::XMLConfiguration: delimiter char (default '.') is now configurable.
  1019. This allows for working with XML documents having element names with '.' in them.
  1020. - Poco::Util::OptionProcessor: Required option arguments can now be specified as
  1021. separate command line arguments, as in "--option value" in addition to the
  1022. "--option=value" format.
  1023. - Poco::Util::HelpFormatter: improved option help formatting if indentation has
  1024. been set explicitely.
  1025. - added Mail sample to NetSSL_OpenSSL, showing use of Poco::Net::SecureSMTPClientSession.
  1026. - added additional read() overloads to Poco::Net::HTMLForm.
  1027. - fixed SF# 3440769: Poco::Net::HTTPResponse doesn't like Amazon EC2 cookies.
  1028. - added support for requiring TLSv1 to Poco::Net::Context.
  1029. - added an additional constructor to Poco::Net::HTTPBasicCredentials, allowing
  1030. the object to be created from a string containing a base64-encoded, colon-separated
  1031. username and password.
  1032. - Poco::Zip::ZipStreamBuf: fixed a crash if CM_STORE was used.
  1033. - Added setContentLength64() and getContentLength64() to Poco::Net::HTTPMessage.
  1034. - added Poco::Environment::osDisplayName().
  1035. - fixed SF# 3463096: WinService leaves dangling handles (open() now does not reopen the
  1036. service handle if it's already open)
  1037. - fixed SF# 3426537: WinRegistryConfiguration can't read virtualized keys
  1038. - added Poco::Buffer::resize()
  1039. - fixed SF# 3441822: thread safety issue in HTTPClientSession:
  1040. always use getaddrinfo() instead of gethostbyname() on all platforms supporting it
  1041. - added version resource to POCO DLLs
  1042. - fixed SF# 3440599: Dir Path in Quotes in PATH cause PathTest::testFind to fail.
  1043. - fixed SF# 3406030: Glob::collect problem
  1044. - added Poco::Util::AbstractConfiguration::enableEvents()
  1045. - Poco::AtomicCounter now uses GCC builtins with GCC 4.1 or newer
  1046. (contributed by Alexey Milovidov)
  1047. - made Poco::Logger::formatDump() public as it may be useful for others as well
  1048. (SF# 3453446)
  1049. - Poco::Net::DialogSocket now has a proper copy constructor (SF# 3414602)
  1050. - Poco::Net::MessageHeader and Poco::Net::HTMLForm now limit the maximum number of
  1051. fields parsed from a message to prevent certain kinds of denial-of-service
  1052. attacks. The field limit can be changed with the new method setFieldLimit().
  1053. The default limit is 100.
  1054. - Poco::NumberFormatter, Poco::NumberParser and Poco::format() now always use the
  1055. classic ("C") locale to format and parse floating-point numbers.
  1056. - added Poco::StreamCopier::copyStream64(), Poco::StreamCopier::copyStreamUnbuffered64()
  1057. and Poco::StreamCopier::copyToString64(). These functions use a 64-bit integer
  1058. to count the number of bytes copied.
  1059. - upgraded internal zlib to 1.2.5
  1060. - upgraded internal sqlite to 3.7.9
  1061. - XML: integrated bugfix for Expat bug# 2958794 (memory leak in poolGrow)
  1062. - Added support for HTTP Digest authentication (based on a contribution by
  1063. Anton V. Yabchinskiy (arn at bestmx dot ru)). For information on how
  1064. to use this, see the Poco::Net::HTTPCredentials, Poco::Net::HTTPDigestCredentials
  1065. and Poco::Net::HTTPAuthenticationParams classes.
  1066. - Poco::Net::HTTPStreamFactory and Poco::Net::HTTPSStreamFactory now support Basic
  1067. and Digest authentication. Username and password must be provided in the URI.
  1068. - added Poco::Net::WebSocket, supporting the WebSocket protocol as described in RFC 6455
  1069. - NetSSL_OpenSSL: added client-side support for Server Name Indication.
  1070. Poco::Net::SecureSocketImpl::connectSSL() now calls SSL_set_tlsext_host_name()
  1071. if its available (OpenSSL 9.8.6f and later).
  1072. - added Poco::Net::HTTPClientSession::proxyConnect() (factored out from
  1073. Poco::Net::HTTPSClientSession::connect())
  1074. - added Poco::Process::kill(const Poco::ProcessHandle&) which is preferable to
  1075. kill(pid) on Windows, as process IDs on Windows may be reused.
  1076. - fixed SF# 3471463: Compiler warnings with -Wformat
  1077. - Poco::Util::Application::run() now catches and logs exceptions thrown in initialize()
  1078. - Fixed a WinCE-specific bug in Poco::Util::ServerApplication where uninitialize() would
  1079. be called twice.
  1080. - fixed SF# 3471957: WinRegistryKey::deleteKey() unable to delete alt views
  1081. - Added additional constructor to Poco::ScopedLock and Poco::ScopedLockWithUnlock
  1082. accepting a timeout as second argument.
  1083. - Added Poco::Logger::parseLevel()
  1084. - Poco::format(): an argument that does not match the format
  1085. specifier no longer results in a BadCastException. The string [ERRFMT] is
  1086. written to the result string instead.
  1087. - PageCompiler: added createSession page attribute.
  1088. Release 1.4.2p1 (2011-09-24)
  1089. ============================
  1090. - On Linux, the RTLD_DEEPBIND option is no longer passed to dlopen().
  1091. This change was introduced in 1.4.2 to solve a specific problem one customer
  1092. was having. Unfortunately, it leads to problems with RTTI.
  1093. - It's now possible to pass flags (SHLIB_GLOBAL, SHLIB_LOCAL) to
  1094. Poco::SharedLibrary::load() (and the constructor implicitly calling load()),
  1095. controlling the mode flags (RTLD_GLOBAL, RTLD_LOCAL) passed to dlopen().
  1096. On platforms not using dlopen(), these flags are ignored.
  1097. - fixed SF# 3400267: Path_WIN32.cpp bug
  1098. Release 1.4.2 (2011-08-28)
  1099. ==========================
  1100. - added Poco::DateTimeFormat::ISO8601_FRAC_FORMAT
  1101. - added new Poco::DateTimeFormatter and Poco::DateTimeParser format specifier:
  1102. %s for seconds with optional fractions of a second
  1103. - fixed a problem with ioctl() on BSD platforms (including OS X) where the
  1104. second argument to ioctl() is unsigned long instead of int, causing bad
  1105. things on a OS X 64-bit kernel.
  1106. - fixed a potential endless loop when enumerating IPv6 network addresses
  1107. (reported by Laurent Carcagno)
  1108. - new compile-time config option on Windows to set thread names in
  1109. debugger. Enable with -DPOCO_WIN32_DEBUGGER_THREAD_NAMES. Available
  1110. only in debug builds.
  1111. - Cipher can now create Base64 and HexBinary encoded output without linefeeds
  1112. (suitable for use in cookies, etc.)
  1113. - added Poco::Path::popFrontDirectory()
  1114. - improved VxWorks support
  1115. - IPv6 fixes: added proper scope id handling in IPAddress, SocketAddress
  1116. and related classes.
  1117. - Added Poco::Net::ServerSocket::bind6() which allows control over the
  1118. IPPROTO_IPV6/IPV6_V6ONLY socket option.
  1119. - Removed Poco::MD2Engine class due to licensing issues (the
  1120. license for the MD2 code from RSA only allows non-commercial
  1121. use). Note that the MD4 and MD5 code from RSA does not have
  1122. this issue.
  1123. - fixed a Net HTTP client testsuite issue where some tests might
  1124. have failed due to prematurely aborted connections by
  1125. the HTTPTestServer.
  1126. - Poco::Net::SocketAddress: when there is more than one address
  1127. returned by a DNS lookup for a name, IPv4 addresses will be
  1128. preferred to IPv6 ones.
  1129. - NetworkInterface::list() now also returns IPv4 interfaces on Windows when
  1130. built with -DPOCO_HAVE_IPv6
  1131. - XMLWriter: fixed a bug with attribute namespaces (no namespace prefix
  1132. written if attribute namespace is the same as element namespace)
  1133. - fixed SF# 3378588: Mismatched new[]/delete (in RSAEncryptImpl and RSADecryptImpl)
  1134. - fixed SF# 3212954 (OpenSSLInitializer::uninitialize() crash) and
  1135. SF# 3196862 (Static OpenSSLInitializer instance causes Windows deadlocks) by
  1136. removing the static Poco::Crypto::OpenSSLInitializer instance. Automatic OpenSSL
  1137. initialization is now done through Poco::Crypto::Cipher, Poco::Crypto::CipherKey,
  1138. Poco::Crypto::X509Certificate, Poco::Net::Context classes; however, it is still
  1139. recommended to call Poco::Crypto::initializeCrypto() and
  1140. Poco::Crypto::uninitializeCrypto() early at application startup, and late at
  1141. shutdown respectively (or Poco::Net::initializeSSL()/Poco::Net::uninitializeSSL()
  1142. if the NetSSL library is used) to avoid multiple full OpenSSL init/uninit cycles
  1143. during application runtime.
  1144. - Poco::Logger now also support a symbolic log level "none"
  1145. (for use with setLevel()) that disables logging completely
  1146. for that Logger (equivalent to setLevel(0)).
  1147. - Added experimental Android support, using the existing gmake-based
  1148. build system.
  1149. - fixed SF# 3288584: DateTimeFormatter link error
  1150. - fixed SF# 3187117: Typo in InflatingInputStream doc
  1151. - fixed SF# 3309731: _WIN32_WCE comparison should be with 0x600 not 600
  1152. - fixed SF# 3393026: RegularExpression.h identical enum value
  1153. - fixed SF# 3274222: AtomicCounter's postfix operators aren't atomic on Windows
  1154. - fixed SF# 3317177: Handle leak on windows
  1155. - fixed SF# 3181882: Poco::URI::getPathEtc() double-encodes query
  1156. - fixed SF# 3379935: ThreadPool Start Bug
  1157. - fixed SF# 3354451: Poco::Format::parsePrec never sets the precision to zero
  1158. - fixed SF# 3387258: _MAX_PATH used but unknown in Path_WIN32
  1159. - fixed a problem in RSAKeyImpl where direct access to the RSA in a EVP_PKEY
  1160. would no longer work in recent OpenSSL versions. Using EVP_PKEY_get1_RSA()
  1161. fixes the issue.
  1162. - added Poco::Crypto::EncryptingInputStream, Poco::Crypto::EncryptingOutputStream,
  1163. Poco::Crypto::DecryptingInputStream and Poco::Crypto::DecryptingOutputStream.
  1164. - fixed SF# 3148126: HTTPSClientSession destructor (!) throws an IOException
  1165. - fixed SF# 3178098: Add constructor to Poco::TemporaryFile to specify directory
  1166. - fixed SF# 3175310: Absolute path when device
  1167. - fixed SF# 3301207: Guided tour example contradicts apidoc (API doc was wrong)
  1168. - Poco::Net::HTTPMessage::setContentLength() and Poco::Net::HTTPMessage::getContentLength() now
  1169. use std::streamsize instead of int. This enables 64-bit Content-Length support at least
  1170. on 64-bit platforms.
  1171. - fixed SF# 3177530: TemporaryFile::tempName() + glob bug on xp
  1172. - fixed SF# 3177372: FileChannel documentation inconsistency
  1173. - added %E format specifier to Poco::PattermFormatter (epoch time in seconds
  1174. since midnight, January 1 1970)
  1175. - On Windows, Poco::Util::ServerApplication now supports a /description command
  1176. line argument for specifying a service description (together with /registerService)
  1177. - added Poco::Util::WinService::setDescription() and
  1178. Poco::Util::WinService::getDescription()
  1179. - fixed SF# 3155477: Incorrect URI path handling
  1180. - fixed SF# 3309736: Extended Exception macros to set default exception code
  1181. new macro is named POCO_DECLARE_EXCEPTION_CODE
  1182. - added getter functions for modulus and exponents to Poco::Crypto::RSAKey.
  1183. - added Poco::Net::SocketAddress::operator == () and
  1184. Poco::Net::SocketAddress::operator != ()
  1185. - fixed SF# 3182746: IPAddress.cpp IPv6 bug on big-endian
  1186. - fixed SF# 3196961: Unix daemon fails to loadConfiguration() if started from cwd
  1187. - fixed SF# 3393700: NotificationCenter may call a removed observer and crash.
  1188. - Reworked implementation of the events framework (Poco::BasicEvent and friends).
  1189. The framework is now completely multithreading save (even in the case that
  1190. an event subscriber object unsubscribes and is deleted while an event is
  1191. being dispatched). Also, the restriction that any object can only register
  1192. one delegate for each event has been removed. For most cases, dispatching
  1193. events should be faster, as dispatching an event now needs less dynamic memory
  1194. allocations.
  1195. - fixed SF# 3178109: getNodeByPath() changes:
  1196. getNodeByPath() and getNodeByPathNS() have been moved to Poco::XML::Node.
  1197. Furthermore, when invoked on a Poco::XML::Document, the behavior has changed
  1198. so that the document element is now included when traversing the path (previously,
  1199. traversal would start at the document element, now it starts at the document).
  1200. The path expression can now start with a double-slash, which results in a recursive
  1201. search for the path's first element in the DOM tree.
  1202. - fixed SF# 3382935: String data being truncated using ODBC, and
  1203. SF# 2921813: Wrong implementation of the ODBC string binding
  1204. Release 1.4.1p1 (2011-02-08)
  1205. ============================
  1206. - Poco::Mutex is now a recursive mutex again on Linux
  1207. (this was caused by an unfortunate feature test for
  1208. PTHREAD_MUTEX_RECURSIVE which did not work on Linux
  1209. as PTHREAD_MUTEX_RECURSIVE is an enum value and not
  1210. a macro)
  1211. - Poco::Net::SecureSocketImpl::abort() now only shuts
  1212. down the underlying socket connection and does not free
  1213. the SSL object, due to multithreading issues.
  1214. Release 1.4.1 (2011-01-29)
  1215. ==========================
  1216. - fixed SF# 3150223: Poco::BinaryReader cannot read std::vector correctly
  1217. - fixed SF# 3146326: SharedMemory issue
  1218. - made Poco::Net::HTTPSession::abort() virtual
  1219. - added Poco::Net::SecureStreamSocket::abort() to immediately close
  1220. a SSL/TLS connection without performing an orderly SSL/TLS shutdown.
  1221. - fixed SF# 3148126: HTTPSClientSession destructor (!) throws an IOException.
  1222. Added try/catch block to Poco::Net::SecureSocketImpl destructor.
  1223. - added additional constructor to Poco::Net::HTTPSClientSession, taking
  1224. both a socket and a session object.
  1225. - Poco::Net::HTTPSession::abort() now also can be used with a
  1226. Poco::Net::HTTPSClientSession.
  1227. - fixed SF# 3148045: make clean and distclean issues
  1228. - changed Data library names on Unix/Linux platforms to
  1229. match the names on Windows (PocoSQLite -> PocoDataSQLite,
  1230. PocoMySQL -> PocoDataMySQL, PocoODBC -> PocoDataODBC)
  1231. - added additional options to configure script
  1232. - added additional documentation to Poco::Net::HTTPClientSession
  1233. - Poco::Net::HTTPClientSession::receiveResponse() closes the connection
  1234. if an exception is thrown while reading the response header.
  1235. This ensures that a new connection will be set up for the next request
  1236. if persistent connections are used.
  1237. - improved Poco::Net::MultipartDecoder performance by reading directly from streambuf
  1238. - improved performance of Poco::Base64Encoder, Poco::Base64Decoder,
  1239. Poco::HexBinaryEncoder and Poco::HexBinaryDecoder by working directly with the
  1240. given stream's streambuf.
  1241. - improved performance of MessageHeader::read() by reading directly from streambuf
  1242. instead of istream.
  1243. - it is now possible to specify additional MIME part header fields
  1244. for a MIME part through the Poco::Net::PartSource class.
  1245. - upgraded SQLite to release 3.7.4
  1246. - added experimental VxWorks support for VxWorks 5.5.1/Tornado 2.2 and
  1247. newer. Please see the VxWorks Platform Notes in the reference documentation
  1248. for more information. Currently, the VxWorks is untested; full support
  1249. will be available in release 1.4.2.
  1250. - fixed SF# 3165918: Poco::DynamicAny fails to convert from string to float
  1251. - fixed SF# 3165910: Poco::Net::MessageHeader does not accept HTTP conforming header
  1252. - made Poco::Task::cancel() virtual so that tasks can implement custom
  1253. cancellation behavior.
  1254. - added optional argument to Poco::Util::WinRegistryKey constructor
  1255. to specify additional flags (in addition to KEY_READ and KEY_WRITE)
  1256. for the samDesired argument of RegOpenKeyEx() or RegCreateKeyEx().
  1257. - improved Poco::BasicEvent::notify() performance by avoiding an unnecessary heap
  1258. allocation.
  1259. - added additional well-known port numbers to Poco::URI: rtsp, sip, sips, xmpp.
  1260. - added Poco::Net::MediaType::matchesRange()
  1261. - improved invalid socket handling: a Poco::Net::InvalidSocketException is
  1262. now thrown instead of an assertion when an operation is attempted on a closed or
  1263. otherwise uninitialized socket.
  1264. Release 1.4.0 (2010-12-14)
  1265. ==========================
  1266. - SSLManager: documentation fixes, code cleanup
  1267. - SSLManager: renamed PrivateKeyPassPhrase event to PrivateKeyPassphraseRequired
  1268. - added HTTPServerRequestImpl::socket() to get access to the underlying socket
  1269. - added Socket::secure() to find out whether a given socket supports SSL/TLS
  1270. - added SecureStreamSocket::havePeerCertificate()
  1271. - NetSSL: added support for turning off extended certificate validation (hostname matching)
  1272. - fixed SF# 2941228: ICMPClient::ping() issues on Mac OS X
  1273. - fixed SF# 2941231: ICMPEventArgs out of bounds array access
  1274. - added PageCompiler sample
  1275. - added missing newline at end of xmlparse.c
  1276. - Poco::Glob can now be used with an empty pattern which will match nothing (patch from Kim Graesman)
  1277. - added support for HTTP proxy authentication (Basic authentication only)
  1278. - fixed SF# 2958959: XMLWriter must encode CR, LF and TAB in attribute values as character entities.
  1279. - HTMLForm now supports PUT requests as well (see <http://pocoproject.org/forum/viewtopic.php?f=12&t=2163&p=3930#p3930>)
  1280. - fixed SF# #2970521: FileOutputStream and file permissions.
  1281. (also fixed in File class)
  1282. - removed an unused (and wrong) default parameter from EventImpl constructor for WIN32.
  1283. - added full support for session caching to NetSSL_OpenSSL
  1284. - fixed SF# 2984454: Poco::Util::Timer::scheduleAtFixedRate() works incorrectly
  1285. - fixed a bug in Poco::Util::Timer that could lead to high CPU load if
  1286. the system clock is moved forward.
  1287. - added system.nodeId to SystemConfiguration
  1288. - added a note to Poco::Util::ServerApplication documentation regarding
  1289. creation of threads
  1290. - added Poco::Net::IPAddress::broadcast() and Poco::Net::IPAddress::wildcard() to
  1291. create broadcast (255.255.255.255) and wildcard (0.0.0.0) addresses.
  1292. - fixed SF# 2916154: Poco::Net::IPAddress::isLoopback() only works for 127.0.0.1.
  1293. - added build configuration for iPhone Simulator
  1294. - GNU Make based build system provides new variables: POCO_HOST_BINDIR, POCO_HOST_BINPATH,
  1295. POCO_HOST_LIBDIR, POCO_HOST_LIBPATH and POCO_TARGET_* equivalents.
  1296. - Application::initialize() and Application::uninitialize() will now be called from within run().
  1297. This solves various issues with uninitialize() not being called, or being called inappropriately
  1298. from the Application destructor.
  1299. Please note that this change will break applications that use the Application class,
  1300. but only call init() and not run().
  1301. - added /startup option to specify startup mode for Windows services (automatic or manual)
  1302. - fixed SF# 2967354: SecureSocketImpl shutdown/close problem
  1303. - fixed SF# 3006340: LinearHashTable grows even if key already exists
  1304. - fixed a particularly nasty Windows error handling issue that manifested itself on WinCE:
  1305. WSAGetLastError() would be called after a std::string was created. The string creation could result
  1306. in a heap operation which called a Windows API to allocate memory. This would reset the
  1307. GetLastError() error code. Since WSAGetLastError() is just an alias for GetLastError(), the actual
  1308. error code from the socket operation would be lost.
  1309. - upgraded SQLite to 3.7.3
  1310. - added --header-prefix option to PageCompiler
  1311. - fixed SF# 3003875: SQLite data binding is broken
  1312. - fixed SF# 2993988: Issue with multiple calls to open()/close() on File*Stream
  1313. - fixed SF# 2990256: HTMLForm and file uploads
  1314. - fixed SF# 2969227: DateTimeParser bug
  1315. - fixed SF# 2966698: Socket connect with timeout issue
  1316. - fixed SF# 2981041: Bind NULL to a query (patch supplied)
  1317. - fixed SF# 2961419: UTF8Encoding::convert() doesn't work properly in DEBUG mode
  1318. - fixed SF# 2957068: Timeout value not picked up by proxy in HTTPSClientSession
  1319. - fixed NetSSL_OpenSSL test runner for Poco::Util::Application class changes
  1320. - Poco::AbstractEvent, Poco::AbstractCache and related classes now accept a Mutex class as additional template argument.
  1321. Poco::NullMutex can be used if no synchronization is desired.
  1322. - Added Poco::AbstractEvent::empty() to check whether an event has registered delegates.
  1323. - Poco::URI now correctly handles IPv6 addresses.
  1324. - Added Poco::Nullable class template.
  1325. - Added Poco::NullMutex, a no-op mutex to be used as template argument for template classes
  1326. taking a mutex policy argument.
  1327. - Poco::XML::XMLWriter: fixed a namespace handling issue that occured with startPrefixMapping() and endPrefixMapping()
  1328. - Poco::Net::Context now allows for loading certificates and private keys from Poco::Crypto::X509Certificate objects
  1329. and Poco::Crypto::RSAKey objects.
  1330. - Poco::Crypto::RSAKey no longer uses temporary files for stream operations. Memory buffers are used instead.
  1331. - fixed SF# 2957865: added Poco::UUID::tryParse()
  1332. - All Zip classes now use Poco::File[Input|Output]Stream instead of std::[i|o]fstream.
  1333. UTF-8 filenames will now be handled correctly on Windows.
  1334. - fixed SF# 2902029: zlib flush support (Z_SYNC_FLUSH)
  1335. - added Poco::TextBufferIterator class
  1336. - fixed SF# 2977249: Use epoll instead select under Linux
  1337. Socket::select() and Socket::poll() will use epoll under Linux if the Net library is compiled
  1338. with -DPOCO_HAVE_FD_EPOLL. This is the default for the Linux build configuration (but not for
  1339. the various build configurations targeting embedded Linux platforms).
  1340. - fixed SF# 2941664: Memory leak in DeflatingStream with zero-length streams (also fixed some other potential,
  1341. but unlikely, memory leaks)
  1342. - fixed SF# 2946457: added RejectCertificateHandler
  1343. - fixed SF# 2946621: Poco::Path bug with POCO_WIN32_UTF8
  1344. - fixed SF# 2929805: Environment::nodeId() does not work if no eth0 device exists
  1345. - Environment::nodeId() no longer throws if no hardware ethernet address can be determined.
  1346. It returns an all-zero address instead.
  1347. - Added additional classification functions to Poco::Unicode class; made classification functions inline.
  1348. - added Ascii class for ASCII character classification.
  1349. Methods of the Ascii class are now used instead of the
  1350. standard library functions (std::isspace(), etc.) due to
  1351. possible inconsistent results or assertions when the
  1352. standard library functions are used with character codes
  1353. outside the ASCII range.
  1354. - Poco::Net::MailMessage: fixed a bug in StringPartHandler that resulted in incorrect handling of non-ASCII data if
  1355. char is signed.
  1356. - Improved Poco::Net::SMTPClientSession compatibility with various mail servers when using AUTH_LOGIN authentication.
  1357. - Added CRAM-SHA1 support to Poco::Net::SMTPClientSession
  1358. - Poco::Net::SMTPClientSession now also supports login with AUTH PLAIN.
  1359. - Added Poco::Net::SecureSMTPClientSession class, supporting STARTTLS for secure SMTP connections.
  1360. - fixed an issue with SharedMemory on POSIX systems, where a shared memory region would be deleted
  1361. despite the server flag set to true (see http://pocoproject.org/forum/viewtopic.php?f=12&t=3494).
  1362. - PageCompiler: added a new page context directive, to allow passing custom context objects to the
  1363. request handler.
  1364. - fixed StreamSocketImpl::sendBytes() for non-blocking sockets
  1365. - added Poco::Net::DialogSocket::receiveRawBytes(), which should be used instead of receiveBytes() due to internal
  1366. buffering by DialogSocket.
  1367. - DOMParser: FEATURE_WHITESPACE has been renamed to FEATURE_FILTER_WHITESPACE (which now matches the underlying URI)
  1368. and is now handled correctly (previously we did the exact reverse thing)
  1369. - added Poco::Util::AbstractConfiguration::remove() to remove a configuration property; added removeRaw() implementations
  1370. to all implementations (contributions by Daniel Hobi and Alexey Shults).
  1371. - fixed NetSSL_OpenSSL compilation error on Windows with OpenSSL 1.0
  1372. - Added optional FIPS mode support to NetSSL_OpenSSL (contributed by Lior Okman).
  1373. If OpenSSL has been configured and built with FIPS support, then FIPS support can
  1374. be enabled by calling Poco::Crypto::OpenSSLInitializer::enableFIPSMode(true); or
  1375. by setting the fips property in the OpenSSL configuration to true (see Poco::Net::SSLManager
  1376. for details).
  1377. - fixed SF# 3031530: Ping and possible no timeout
  1378. - added Poco::Net::SocketReactor::onBusy(), called whenever at least one notification will
  1379. be dispatched.
  1380. - fixed SF# 3034863: Compiler warning in net/IPAddress.h with poco 1.3.2
  1381. - added support for CRAM-SHA1 authentication to SMTPClientSession
  1382. - Poco::format(): arguments can now be addressed by their index, e.g. %[2]d
  1383. - Poco::Util::Timer::cancel() now accepts an optional boolean argument.
  1384. If true is passed, cancel() waits until the task queue has been purged.
  1385. Otherwise, it returns immediately and works asynchronously, as before.
  1386. - Poco::Net::HTTPServerResponse::redirect() now accepts an optional additional
  1387. argument to specify the HTTP status code for the redirection.
  1388. - fixed a warning (BinaryReader.cpp) and error (ThreadLocal.cpp) in Foundation when compiling with Visual Studio 2010
  1389. - fixed a wrong exception in Poco::Net::POP3ClientSession
  1390. - Poco::Net::FTPClientSession and Poco::Net::SMTPClientSession now set the error code in exceptions they throw
  1391. - fixed a potential race condition with terminating a Windows service based on Poco::Util::ServerApplication
  1392. - fixed a bug in global build configuration file: explicitly setting POCO_CONFIG did not work on Solaris platforms,
  1393. as it was always overridden by the automatically determined configuration.
  1394. - Added support for MinGW cross builds on Linux.
  1395. - Changed location of statically linked build products in the gmake-based build system.
  1396. Statically linked executables are now in bin/$(OSNAME)/$(OSARCH)/static and no longer
  1397. have the _s suffix
  1398. - The POCO_VERSION macro now is in its own header file, "Poco/Version.h". It is no longer
  1399. available through "Poco/Foundation.h".
  1400. - added Poco::Net::HTTPCookie::escape() and Poco::Net::HTTPCookie::unescape().
  1401. - fixed SF# 3021173: Thread (POSIX) returns uninitialised value for OS priority
  1402. - fixed SF# 3040870: ThreadPool has no function to get assigned name
  1403. - fixed SF# 3044303: Can't use own config file on Solaris & OSARCH_64BITS ignored
  1404. - fixed SF# 2943896: AsyncChannel::log blocks
  1405. - fixed a bug in Poco::Util::WinRegistryKey::getInt():
  1406. The size variable passed to RegQueryValueExW() should be initialized to the size
  1407. of the output buffer.
  1408. - Added rudimentary support for compiling with Clang 2.0 (Xcode 4) on Mac OS X.
  1409. - New build configurations for Mac OS X: Darwin32 and Darwin64 for explicit
  1410. 32-bit and 64-bit builds. Note that the default Darwin build configuration
  1411. will build 64-bit on Snow Leopard and 32-bit on Leopard, but will always place
  1412. build products in Darwin/i386. The new Darwin32 and Darwin64 configurations
  1413. will use the correct directories.
  1414. - fixed SF# 3051598: Bug in URL encoding
  1415. - Poco::ThreadPool::stopAll() (and thus also the destructor) will now wait for each
  1416. pooled thread to terminate before returning. This fixes an issue with creating
  1417. and orderly shutting down a thread pool in a plugin. Previously, a pooled thread
  1418. in a thread pool created by a dynamically loaded library might still be running
  1419. when the plugin's shared library was unloaded, resulting in Bad Things happening.
  1420. This can now no longer happen. As a downside, a pooled thread that fails to
  1421. finish will block stopAll() and the destructor forever.
  1422. - NetSSL_OpenSSL: for a SecureStreamSocket, available() now returns the number of bytes that
  1423. are pending in the SSL buffer (SSL_pending()), not the actual socket buffer.
  1424. - Added Poco::Net::HTTPClientSession::secure() to check for a secure connection.
  1425. - Poco::Net::HTTPRequest::setHost() now does not include the port number in the Host header
  1426. if it's either 80 or 443.
  1427. - log messages can now optionally include source file path and line number
  1428. - Poco::PatternFormatter can format source file path and line number (%U, %u)
  1429. - logging macros (poco_information(), etc.) now use __LINE__ and __FILE__
  1430. - new logging macros that incorporate Poco::format(): poco_information_f1(logger, format, arg) with up to 4 arguments
  1431. - added Poco::Net::HTTPSession::attachSessionData() and Poco::Net::HTTPSession::sessionData()
  1432. to attach arbitrary data to a HTTP session.
  1433. - added additional constructors to zlib stream classes that allow passing
  1434. a windowBits parameter to the underlying zlib library.
  1435. - fixed a potential error handling issue in Poco::Net::SecureSocketImpl.
  1436. - fixed SF# 3110272: RSACipherImpl bug.
  1437. - fixed SF# 3081677: ConfigurationView's getRaw not retrieving xml attributes.
  1438. - added basic support for Canonical XML and better pretty-printing support to Poco::XML::XMLWriter.
  1439. - Poco::Util::AbstractConfiguration now supports events fired when changing or
  1440. removing properties.
  1441. - XML: added support for finding DOM nodes by XPath-like
  1442. expressions. Only a very minimal subset of XPath is supported.
  1443. See Poco::XML::Element::getNodeByPath(), Poco::XML::Element::getNodeByPathNS()
  1444. and the same methods in Poco::XML::Document.
  1445. - Poco::Timer: If the callback takes longer to execute than the
  1446. timer interval, the callback function will not be called until the next
  1447. proper interval. The number of skipped invocations since the last
  1448. invocation will be recorded and can be obtained by the callback
  1449. by calling skipped().
  1450. - Poco::BinaryReader and Poco::BinaryWriter now support reading and
  1451. writing std::vectors of the supported basic types. Also, strings
  1452. can now be written in a different encoding (a Poco::TextEncoding
  1453. can be optionally passed to the constructor).
  1454. - Poco::UUID::nil() and Poco::UUID::isNil() have been renamed to
  1455. Poco::UUID::null() and Poco::UUID::isNull(), respectively, to avoid
  1456. issues with Objective-C++ projects on Mac OS X and iOS where nil is
  1457. a system-provided macro.
  1458. - Crypto bugfixes: RSACipherImpl now pads every block of data, not just the
  1459. last (or last two).
  1460. - Improved Crypto testsuite by adding new tests
  1461. - Added new Visual Studio project configurations: debug_static_mt and release_static_mt
  1462. (linking with static runtime libraries). The existing configurations debug_static
  1463. and release_static have been renamed to debug_static_md and release_static_md, respectively.
  1464. The suffixes of the static libraries have also changed. The static_md configurations
  1465. now build libraries with suffixes md[d], while the libraries built by the static_mt
  1466. configurations have mt[d] suffixes.
  1467. - Added Visual Studio project files for 64-bit builds.
  1468. - Added Visual Studio 2010 project files.
  1469. - Removed the use of local static objects in various methods due to
  1470. their construction not being threadsafe (and thus leading to
  1471. potential race conditions) on Windows/Visual C++.
  1472. - Fixed some warning on 64-bit Windows builds.
  1473. - The name of the Data connector libraries have changed. They are now
  1474. named PocoDataMySQL, PocoDataODBC and PocoDataSQLite.
  1475. - fixed SF# 3125498: Linux NetworkInterface::list() doesn't return IPv6 IPs
  1476. - fixed SF# 3125457: IPv6 IPAddress tests are wrong
  1477. - Added initialization functions for the NetSSL_OpenSSL and Crypto libraries.
  1478. These should be called instead of relying on automatic initialization,
  1479. implemented with static initializer objects, as this won't work with
  1480. statically linked executables (where the linker won't include the
  1481. static initializer object).
  1482. The functions are Poco::Crypto::initializeCrypto(), Poco::Crypto::uninitializeCrypto(),
  1483. Poco::Net::initializeSSL() and Poco::Net::uninitializeSSL().
  1484. Applications using Crypto and/or NetSSL should call these methods appropriately at
  1485. program startup and shutdown.
  1486. Note: In release 1.3.6, similar functions have been added to the Net library.
  1487. Release 1.3.6p2 (2010-01-15)
  1488. ============================
  1489. - fixed an issue in the Windows implementation Poco::RWLock, where
  1490. tryReadLock() sometimes would return false even if no writers
  1491. were using the lock (fix contributed by Bjrn Carlsson)
  1492. - added Poco::Environment::libraryVersion().
  1493. - fixed SF# 2919461: Context ignores parameter cypherList
  1494. - removed an unused enum from RSACipherImpl.cpp (Crypto)
  1495. - integrated a new expat patch for CVE-2009-3560.
  1496. - fixed SF# 2926458: SSL Context Problem. The Poco::Net::Context
  1497. class now makes sure that OpenSSL is properly initialized.
  1498. - updated iPhone build configuration (contributed by Martin York)
  1499. - fixed SF# 1815124 (reopened): XML Compile failed on VS7.1 with
  1500. XML_UNICODE_WCHAR_T
  1501. - fixed SF# 2932647: FTPClientSession::getWorkingDirectory() returns a bad result
  1502. Release 1.3.6p1 (2009-12-21)
  1503. ============================
  1504. - added support for using external zlib, pcre, expat and sqlite3 instead of
  1505. bundled ones (-DPOCO_UNBUNDLED, configure --unbundled)
  1506. - fixed SF# 2911407: Add sh4 support
  1507. - fixed SF# 2912746: RSAKey::EXP_LARGE doesn't work
  1508. - fixed SF# 2904119: abstractstrategy uses std::set but do not includes it
  1509. - fixed SF# 2909946: localtime NULL pointer
  1510. - fixed SF# 2914986: potential expat DoS security issues (CVE-2009-3560 and CVE-2009-3720)
  1511. - fixed SF# 2916305: SSL Manager crashes
  1512. - fixed SF# 2903676: Tuple TypeHander does not handle composites.
  1513. Release 1.3.6 (2009-11-24)
  1514. ==========================
  1515. - added Environment::processorCount()
  1516. - added POCO_VERSION macro to Poco/Foundation.h
  1517. - fixed SF# 2807527: Poco::Timer bug for long startInterval/periodic interval
  1518. - fixed a bug similar to SF# 2807527 in Poco::Util::Timer.
  1519. - fixed SF# 2795395: Constructor doesn't treat the params "key" and "iv"
  1520. - fixed SF# 2804457: DateTime::checkLimit looks wrong
  1521. - fixed SF# 2804546: DateTimeParser requires explicit RFC1123 format
  1522. - added ReleaseArrayPolicy to Poco::SharedPtr
  1523. - upgraded to SQLite 3.6.20
  1524. - fixed SF# 2782709: Missing semicolons in "Logger.h" convenience
  1525. - fixed SF# 2526407: DefaultStrategy.h ++it instead of it++ in a loop
  1526. - fixed SF# 2502235: Poco STLPort patch
  1527. - fixed SF# 2186643: Data::Statement::reset() not implemented in 1.3.3
  1528. - fixed SF# 2164227: Allow File opened read only by FileInputSteam to be writable
  1529. - fixed SF# 2791934: use of char_traits::copy in BufferedStreamBuf::underflow
  1530. - fixed SF# 2807750: Support additional SQL types in SQLite
  1531. - fixed documentation bugs in Timed/PriorityNotificationQueue
  1532. - fixed SF# 2828401: Deadlock in SocketReactor/NotificationCenter (also fixes patch# 1956490)
  1533. NotificationCenter now uses a std::vector internally instead of a std::list, and the mutex is
  1534. no longer held while notifications are sent to observers.
  1535. - fixed SF# 2835206: File_WIN32 not checking aganist INVALID_HANDLE_VALUE
  1536. - fixed SF# 2841812: Posix ThreadImpl::sleepImpl throws exceptions on EINTR
  1537. - fixed SF# 2839579: simple DoS for SSL TCPServer, HTTPS server
  1538. No SSL handshake is performed during accept() - the handshake is delayed until
  1539. sendBytes(), receiveBytes() or completeHandshake() is called for the first time.
  1540. This also allows for better handshake and certificate validation when using
  1541. nonblocking connections.
  1542. - fixed SF# 2836049: Possible handle leak in FileStream
  1543. If sync() fails, close() now simply set's the stream's bad bit.
  1544. In any case, close() closes the file handle/descriptor.
  1545. - fixed SF# 2814451: NetSSL: receiveBytes crashes if socket is closed
  1546. - added a workaround for Vista service network initialization issue
  1547. (an Windows service using the Net library running under Vista will
  1548. crash in the call to WSAStartup() done in NetworkInitializer).
  1549. Workaround is to call WSAStartup() in the application's main().
  1550. Automatic call to WSAStartup() in the Net library can now be disabled
  1551. by compiling Net with -DPOCO_NET_NO_AUTOMATIC_WSASTARTUP. Also
  1552. the new Poco::Net::initializeNetwork() and Poco::Net::uninitializeNetwork()
  1553. functions can be used to call WSAStartup() and WSACleanup(), respectively,
  1554. in a platform-independent way (on platforms other than Windows, these
  1555. functions will simply do nothing).
  1556. - added VCexpress build script support (contributed by Jolyon Wright)
  1557. - fixed SF# 2851052: Poco::DirectoryIterator copy constructor is broken
  1558. - fixed SF# 2851197: IPAddress ctor throw keyword missing
  1559. - added Poco::ProtocolException
  1560. - PageCompiler improvements: new tags, support for buffered output, etc.
  1561. - better error reporting in Data MySQL connector (patch #2881270 by Jan "HanzZ" Kaluza)
  1562. - fixed SF# 1892462: FTPClient:Choose explicitely between EPSV and PASV
  1563. - fixed SF# 2806365: Option for PageCompiler to write output to different dir
  1564. - fixed a documentation bug (wrong sample code) in Process::launch() documentation
  1565. - added --header-output-dir option to PageCompiler
  1566. - fixed SF# 2849144: Zip::Decompress notifications error
  1567. - SAXParser has a new feature: "http://www.appinf.com/features/enable-partial-reads".
  1568. See ParserEngine::setEnablePartialReads() for a description of what this does.
  1569. - fixed SF# 2876179: MySQL Signed/Unsigned value bug
  1570. - fixed SF# 2877970: possible bug in timer task
  1571. - fixed SF# 2874104: wrong parsing empty http headers
  1572. - fixed SF# 2860694: Incorrect return code from SecureStreamSocketImpl::sendBytes
  1573. - fixed SF# 2849750: Possible bug with XMLWriter?
  1574. - added MailMessage::encodeWord() to support RFC 2047 word encoded
  1575. mail header fields when sending out mail containing non-ASCII
  1576. characters.
  1577. - fixed SF# 2890975: SMTPClientSession bug with 7BIT encoding
  1578. - fixed an issue with retrieving the value of socket options on Windows 7.
  1579. Before obtaining the value of a socket, we now initialize the variable receiving the
  1580. socket option value to zero.
  1581. - fixed SF# 2836141: Documentation errors
  1582. - fixed SF# 2864232: Socket::select() does not detect closed sockets on windows
  1583. - fixed SF# 2812143: Socket::select() should check socket descriptors...
  1584. - fixed SF# 2801750: NetworkInterface <iface-Obj>forName returns wrong subnetMask
  1585. - fixed SF# 2816315: Problem with POSIX Thread::sleepImpl
  1586. - fixed SF# 2795646: IPv6 address parsing bug
  1587. - fixed #0000092: ServerApplication::waitForTerminationRequest(), SIGINT and GDB.
  1588. Poco::Util::ServerApplication::waitForTerminationRequest() no longer registers a
  1589. signal handler for SIGINT if the environment variable POCO_ENABLE_DEBUGGER
  1590. is defined.
  1591. - fixed SF# 2896070: Poco::Net::Context with non-ASCII paths
  1592. - added Unicode Surrogate support to Poco::UTF16Encoding.
  1593. See Poco::TextEncoding::queryConvert() and Poco::TextEncoding::sequenceLength()
  1594. for how this is implemented. Contributed by Philippe Cuvillier.
  1595. - fixed SF# 2897650: [branch 1.3.6] Net.SocketAddress won't compile for CYGWIN
  1596. - fixed SF# 2896161: Building on Windows fails when basedir has space in it
  1597. - fixed SF# 2864380: Memory leak when using secure sockets
  1598. - NetSSL_OpenSSL: the SSL/TLS session cache is now disabled by default and
  1599. can be enabled per Context using Poco::Net::Context::enableSessionCache().
  1600. - fixed SF# 2899039: Wrong DST handling in LocalDateTime
  1601. - added RWLock::ScopedReadLock and RWLock::ScopedWriteLock (contributed by Marc Chevrier)
  1602. - added Thread::TID type, as well as Thread::tid() and Thread::currentTid() to obtain the native
  1603. thread handle/ID
  1604. - added Zip file comment support
  1605. - On Windows, Poco::SharedLibrary::load() now uses LoadLibraryEx instead of LoadLibrary
  1606. and uses the LOAD_WITH_ALTERED_SEARCH_PATH if an absolute path is specified. This will
  1607. add the directory containing the library to the search path for DLLs that the
  1608. loaded library depends upon.
  1609. - Mac OS X build settings now match those used by default Xcode projects, making linking the
  1610. POCO libs to Xcode projects easier
  1611. - Replaced use of std::valarray in Poco::Net::ICMPEventArgs with std::vector due to issues with
  1612. std::valarray together with STDCXX debug mode on OS X
  1613. Release 1.3.5 (2009-05-11)
  1614. ==========================
  1615. - fixed SF# 2779410: Poco::Data::ODBC::HandleException impovement
  1616. - fixed wrong exception text for Poco::UnhandledException
  1617. - Fixed a problem with SSL shutdown that causes clients (web browsers)
  1618. to hang when the server attempts to perform a clean SSL shutdown. We now call
  1619. SSL_shutdown() once, even if the shutdown is not complete after the first call.
  1620. - added Poco::Crypto::X509Certificate::save()
  1621. - fixed a bug in Poco::Zip::Decompress that results in wrong paths for extracted files
  1622. - fixed a bug in Poco::Zip::ZipManipulator where the Zip file was opened in text format
  1623. on Windows.
  1624. - added Poco::Crypto::X509Certificate::issuedBy() to verify certificate chain.
  1625. - fixed 0000089: Thread::sleep() on Linux is extremely inaccurate
  1626. - added methods to extract the contents of specific fields from the
  1627. subject and issuer distinguished names of a certificate.
  1628. Release 1.3.4 (2009-04-21)
  1629. ==========================
  1630. - fixed SF# 2611804: PropertyFileConfiguration continuation lines
  1631. - fixed SF# 2529788: ServerApplication::beDaemon() broken
  1632. - fixed SF# 2445467: Bug in Thread_WIN32.cpp
  1633. - Improved performance of HTTP Server by removing some
  1634. string copy operations
  1635. - fixed SF# 2310735: HTTPServer: Keep-Alive only works with send()
  1636. - fixed appinf.com IP address in Net testsuite
  1637. - fixed RFC-00188: NumberFormatter and float/double numbers
  1638. - added --pidfile option to ServerApplication on Unix
  1639. - fixed SF# 2499504: Bug in Win32_Thread when using from dll (fixed also for POSIX threads)
  1640. - fixed SF# 2465794: HTTPServerRequestImpl memory leak
  1641. - fixed SF# 2583934: Zip: No Unix permissions set
  1642. - the NetSSL_OpenSSL library has been heavily refactored
  1643. - added NumberFormatter::append*() and DateTimeFormatter::append() functions
  1644. - use NumberFormatter::append() and DateTimeFormatter::append() instead of format() where
  1645. it makes sense to gain some performance
  1646. - added system.dateTime and system.pid to Poco::Util::SystemConfiguration
  1647. - added %F format specifier (fractional seconds/microseconds) to DateTimeFormatter,
  1648. DateTimeParser and PatternFormatter.
  1649. - fixed SF# 2630476: Thread_POSIX::setStackSize() failure with g++ 4.3
  1650. - fixed SF# 2679279: Handling of -- option broken
  1651. - added compile options to reduce memory footprint of statically linked applications
  1652. by excluding various classes from automatically being linked.
  1653. See the POCO_NO_* macros in Poco/Config.h.
  1654. - fixed SF# 2644940: on Windows the COMPUTER-NAME and the HOSTNAME can be different
  1655. - added DNS::hostName() function
  1656. - added build configuration for iPhone (using Apple's SDK)
  1657. - basic support for AIX 5.x/xlC 8
  1658. - fixed a bug resulting in a badly formatted exception message with IOException
  1659. thrown due to a socket-related error
  1660. - fixed SF# 2644718: NetworkInterface name conflict in MinGW
  1661. - added a missing #include to CryptoTransform.h
  1662. - fixed SF# 2635377: HTTPServer::HTTPServer should take AutoPtr<HTTPServerParams>
  1663. - replaced plain pointers with smart pointers in some interfaces
  1664. - upgraded to sqlite 3.6.13
  1665. - improved Data::SQLite error reporting
  1666. - Poco::Glob now works with UTF-8 encoded strings and supports case-insensitive comparison.
  1667. This also fixes SF# 1944831: Glob::glob on windows should be case insensitve
  1668. - added Twitter client sample to Net library
  1669. - Fixed SF# 2513643: Seg fault in Poco::UTF8::toLower on 64-bit Linux
  1670. - Poco::Data::SessionPool: the janitor can be disabled by specifying a zero idle time.
  1671. - added Poco::Data::SessionPool::customizeSession()
  1672. - added support for different SQLite transaction modes (DEFERRED, IMMEDIATE, EXCLUSIVE)
  1673. - fixed a few wrong #if POCO_HAVE_IPv6 in the Net library
  1674. - added support for creating an initialized, but unconnected StreamSocket.
  1675. - added File::isDevice()
  1676. - added family() member function to SocketAddress,
  1677. - Data::SQLite: added support for automatic retries if the database is locked
  1678. - XMLConfiguration is now writable
  1679. - fixed an IPv6 implementation for Windows bug in HostEntry
  1680. - Timer class improvement: interval between callback is no longer influenced by the
  1681. time needed to execute the callback.
  1682. - added PriorityNotificationQueue and TimedNotificationQueue classes to Foundation.
  1683. These are variants of the NotificationQueue class that support priority and
  1684. timestamp-tagged notifications.
  1685. - added Poco::Util::Timer class. This implements a timer that can schedule different
  1686. tasks at different times, using only one thread.
  1687. - the signatures of Poco::NotificationQueue and Poco::NotificationCenter member functions
  1688. have been changed to accept a Poco::Notification::Ptr instead of Poco::Notification*
  1689. to improve exception safety. This change should be transparent and fully backwards
  1690. compatible. The signature of the methods returning a Poco::Notification* have not been
  1691. changed for backwards compatibility. It is recommended, that any Notification* obtained
  1692. should be immediately assigned to a Notification::Ptr.
  1693. - SQLite::SessionImpl::isTransaction() now uses sqlite3_get_autocommit() to find out
  1694. about the transaction state.
  1695. - refactored Crypto library to make it independent from NetSSL_OpenSSL.
  1696. - added support for RSA-MD5 digital signatures to Crypto library.
  1697. - removed SSLInitializer from NetSSL library (now moved to Crypto library)
  1698. - added build configs for static libraries to Crypto library
  1699. - OpenSSL now depends on Crypto library (which makes more sense than
  1700. vice versa, as it was before). Poco::Net::X509Certificate is now
  1701. a subclass of Poco::Crypto::X509Certificate (adding the verify()
  1702. member function) and the Poco::Net::SSLInitializer class was
  1703. moved to Poco::Crypto::OpenSSLInitializer.
  1704. - added build configs for static libraries to Zip
  1705. - added batch mode to CppUnit::WinTestRunner.
  1706. WinTestRunnerApp supports a batch mode, which runs the
  1707. test using the standard text-based TestRunner from CppUnit.
  1708. To enable batch mode, start the application with the "/b"
  1709. or "/B" command line argument. Optionally, a path to a file
  1710. where the test output will be written to may be given:
  1711. "/b:<path>" or "/B:<path>".
  1712. When run in batch mode, the exit code of the application
  1713. will denote test success (0) or failure (1).
  1714. - testsuites now also work for static builds on Windows
  1715. - The IPv6 support for Windows now basically works (Net library compiled with POCO_HAVE_IPv6)
  1716. - fixed a potential error when shutting down openssl in a statically linked application
  1717. - added static build configs to Data library
  1718. - added Poco::AtomicCounter class, which uses OS-specific APIs for atomic (thread-safe)
  1719. manipulation of counter values.
  1720. - Poco::RefCountedObject and Poco::SharedPtr now use Poco::AtomicCounter for
  1721. reference counting
  1722. - fixed SF# 2765569: LoadConfiguration failing from current directory
  1723. Release 1.3.3p1 (2008-10-09)
  1724. ============================
  1725. - Fixed SF# 2153031: 1.3.3 Crypto won't compile on 64-bit Linux
  1726. - Fixed a warning in MySQL connector
  1727. - Updated README
  1728. - The global Makefile in the Zip archive is no longer broken
  1729. Release 1.3.3 (2008-10-07)
  1730. ==========================
  1731. - Threads now have optional user-settable stack size (if the OS supports that feature)
  1732. - Events now support simplified delegate syntax based on delegate function template.
  1733. See Poco::AbstractEvent documentation for new syntax.
  1734. - Cache supports new access expire strategy.
  1735. - Upgraded to SQLite 3.6.2
  1736. - Upgraded to PCRE 7.8
  1737. - added HttpOnly support to Poco::Net::HTTPCookie
  1738. - NetworkInterface now has displayName() member (useful only on Windows)
  1739. - Poco::Util::WinRegistryKey now has a read-only mode
  1740. - Poco::Util::WinRegistryKey::deleteKey() can now recursively delete registry keys
  1741. - Poco::File::created() now returns 0 if the creation date/time is not known, as
  1742. it's the case on most Unix platforms (including Linux).
  1743. On FreeBSD and Mac OS X, it returns the real creation time.
  1744. - Time interval based log file rotation (Poco::FileChannel) now works
  1745. correctly. Since there's no reliable and portable way to find out the creation
  1746. date of a file (Windows has the tunneling "feature", most Unixes don't provide
  1747. the creation date), the creation/rotation date of the log file is written into
  1748. the log file as the first line.
  1749. - added Environment::nodeId() for obtaining the Ethernet address of the system
  1750. (this is now also used by UUIDGenerator - the corresponding code from UUIDGenerator
  1751. was moved into Environment)
  1752. - added a release policy argument to SharedPtr template
  1753. - Socket::select() will no longer throw an InvalidArgumentException
  1754. on Windows when called with no sockets at all. If all three socket
  1755. sets are empty, Socket::select() will return 0 immediately.
  1756. - SocketReactor::run() now catches exceptions and reports them via
  1757. the ErrorHandler.
  1758. - SocketReactor has a new IdleNotification, which will be posted when
  1759. the SocketReactor has no sockets to handle.
  1760. - added referenceCount() method to Poco::SharedPtr.
  1761. - POCO now builds with GCC 4.3 (but there are some stupid warnings:
  1762. "suggest parentheses around && within ||".
  1763. - Solution and project files for Visual Studio 2008 are included
  1764. - The Zip library is now officially part of the standard POCO release.
  1765. - The Crypto library (based on OpenSSL) has been added. The original code
  1766. was kindly contributed by Ferdinand Beyer.
  1767. - A Data Connector to MySQL, contributed by Sergey Kholodilov, is now part
  1768. of the POCO release.
  1769. - fixed SF# 1859738: AsyncChannel stall
  1770. - fixed SF# 1815124: XML Compile failed on VS7.1 with XML_UNICODE_WCHAR_T
  1771. - fixed SF# 1867340: Net and NetSSL additional dependency not set - ws2_32.lib
  1772. - fixed SF# 1871946: no exception thrown on error
  1773. - fixed SF# 1881113: LinearHashTable does not conform to stl iterators
  1774. - fixed SF# 1899808: HTMLForm.load() should call clear() first
  1775. - fixed SF# 2030074: Cookie problem with .NET server
  1776. - fixed SF# 2009707: small bug in Net/ICMPPacketImpl.cpp
  1777. - fixed SF# 1988579: Intel Warning: invalid multibyte character sequence
  1778. - fixed SF# 2007486: Please clarify license for Data/samples/*
  1779. - fixed SF# 1985180: Poco::Net::DNS multithreading issue
  1780. - fixed SF# 1968106: DigestOutputStream losing data
  1781. - fixed SF# 1980478: FileChannel loses messages with "archive"="timestamp"
  1782. - fixed SF# 1906481: mingw build WC_NO_BEST_FIT_CHARS is not defined
  1783. - fixed SF# 1916763: Bug in Activity?
  1784. - fixed SF# 1956300: HTTPServerConnection hanging
  1785. - fixed SF# 1963214: Typo in documentation for NumberParser::parseFloat
  1786. - fixed SF# 1981865: Cygwin Makefile lacks ThreadTarget.cpp
  1787. - fixed SF# 1981130: pointless comparison of unsigned integer with zero
  1788. - fixed SF# 1943728: POCO_APP_MAIN namespace issue
  1789. - fixed SF# 1981139: initial value of reference to non-const must be an lvalue
  1790. - fixed SF# 1995073: setupRegistry is broken if POCO_WIN32_UTF8 enabled
  1791. - fixed SF# 1981125: std::swap_ranges overloading resolution failed
  1792. - fixed SF# 2019857: Memory leak in Data::ODBC Extractor
  1793. - fixed SF# 1916761: Bug in Stopwatch?
  1794. - fixed SF# 1951443: NetworkInterface::list BSD/QNX no netmask and broadcast addr
  1795. - fixed SF# 1935310: Unhandled characters in Windows1252Encoding
  1796. - fixed SF# 1948361: a little bug for win32
  1797. - fixed SF# 1896482: tryReadLock intermittent error
  1798. - workaround for SF# 1959059: Poco::SignalHandler deadlock
  1799. the SignalHandler can now be disabled globally by adding a
  1800. #define POCO_NO_SIGNAL_HANDLER to Poco/Config.h
  1801. - fixed SF# 2012050: Configuration key created on read access
  1802. - fixed SF# 1895483: PCRE - possible buffer overflow
  1803. - fixed SF# 2062835: Logfile _creationDate is wrong
  1804. - fixed SF# 2118943: out_of_bound access in Poco::Data::BLOB:rawContent
  1805. - fixed SF# 2121732: Prevent InvalidArgumentException in SocketReactor
  1806. - fixed SF# 1891132: Poco::Data::StatementImpl::executeWithLimit is not correct
  1807. - fixed SF# 1951604: POCO refuses to compile with g++ 4.3.0
  1808. - fixed SF# 1954327: CYGWIN's pthread does not define PTHREAD_STACK_MIN
  1809. - fixed SF# 2124636: Discrepancy between FileWIN32(U)::handleLastError
  1810. - fixed SF# 1558300: MinGW/MSYS Builds
  1811. - fixed SF# 2123266: Memory leak under QNX6 with dinkum library
  1812. - fixed SF# 2140411: ScopedUnlock documentation bug
  1813. - fixed SF# 2036460: UUID regression tests are failing on Linux with g++ 4.3.1
  1814. - fixed SF# 2150438: Tuple TypeHandler position increment size is wrong
  1815. Release 1.3.2 (2008-02-04)
  1816. ==========================
  1817. Foundation, XML, Net, Util:
  1818. - added POCO_NO_SHAREDMEMORY to Config.h
  1819. - POCO_NO_WSTRING now really disables all wide string related calls
  1820. - added template specialization for string hashfunction (performance)
  1821. - XML parser performance improvements (SAX parser is now up to 40 % faster
  1822. - added parseMemoryNP() to XMLReader and friends
  1823. - URIStreamOpener improvement: redirect logic is now in URIStreamOpener.
  1824. this enables support for redirects from http to https.
  1825. - added support for temporary redirects and useproxy return code
  1826. - added getBlocking() to Socket
  1827. - added File::isHidden()
  1828. - better WIN64 support (AMD64 and IA64 platforms are recognized)
  1829. - added support for timed lock operations to [Fast]Mutex
  1830. - SharedLibrary: dlopen() is called with RTLD_GLOBAL instead of RTLD_LOCAL
  1831. (see http://gcc.gnu.org/faq.html#dso)
  1832. - Poco::Timer threads can now run with a specified priority
  1833. - added testcase for SF# 1774351
  1834. - fixed SF# 1784772: Message::swap omits _tid mem
  1835. - fixed SF# 1790894: IPAddress(addr,family) doesn't fail on invalid address
  1836. - fixed SF# 1804395: Constructor argument name wrong
  1837. - fixed SF# 1806807: XMLWriter::characters should ignore empty strings
  1838. - fixed SF# 1806994: property application.runAsService set too late
  1839. - fixed SF# 1828908: HTMLForm does not encode '+'
  1840. - fixed SF# 1831871: Windows configuration file line endings not correct.
  1841. - fixed SF# 1845545: TCP server hangs on shutdown
  1842. - fixed SF# 1846734: Option::validator() does not behave according to doc
  1843. - fixed SF# 1856567: Assertion in DateTimeParser::tryParse()
  1844. - fixed SF# 1864832: HTTP server sendFile() uses incorrect date
  1845. - HTTPServerResponseImpl now always sets the Date header automatically
  1846. in the constructor.
  1847. - fixed SF# 1787667: DateTimeFormatter and time related classes
  1848. (also SF# 1800031: The wrong behavior of time related classes)
  1849. - fixed SF# 1829700: TaskManager::_taskList contains tasks that never started
  1850. - fixed SF# 1834127: Anonymous enums in Tuple.h result in invalid C++
  1851. - fixed SF# 1834130: RunnableAdapter::operator= not returning a value
  1852. - fixed SF# 1873924: Add exception code to NetException
  1853. - fixed SF# 1873929: SMTPClientSession support for name in sender field
  1854. - logging performance improvements (PatternFormatter)
  1855. - fixed SF# 1883871: TypeList operator < fails for tuples with duplicate values
  1856. - CYGWIN build works again (most things work but Foundation testsuite still fails)
  1857. - new build configuration for Digi Embedded Linux (ARM9, uclibc)
  1858. - new build configuration for PowerPC Linux
  1859. Data:
  1860. - fixed SF# 1724388: ODBC Diagnostics
  1861. - fixed SF# 1804797: ODBC Statement multiple execution fails
  1862. - fixed SF# 1803435: SessionPool onJanitorTimer called too often?
  1863. - fixed SF# 1851997: Undefined Behavior in ODBC::Preparation
  1864. - updated SQlite to 3.5.5
  1865. Release 1.3.1 (2007-08-08)
  1866. ==========================
  1867. Foundation, XML, Net, Util:
  1868. - DynamicAny fixes for char conversions
  1869. - fixed SF# 1733362: Strange timeout handling in SocketImpl::poll and Socket::select
  1870. - fixed SF patch# 1728912: crash in POCO on Solaris
  1871. - fixed SF# 1732138: Bug in WinRegistryConfiguration::getString
  1872. - fixed SF# 1730790: Reference counting breaks NetworkInterface::list()
  1873. - fixed SF# 1720733: Poco::SignalHandler bug
  1874. - fixed SF# 1718724: Poco::StreamCopier::copyStream loops forever
  1875. - fixed SF# 1718437: HashMap bug
  1876. - changed LinearHashTable iterator implementation. less templates -> good thing.
  1877. - fixed SF# 1733964: DynamicAny compile error
  1878. - UUIDGenerator: fixed infinite loop with non ethernet interfaces
  1879. - updated expat to 2.0.1
  1880. - fixed SF# 1730566: HTTP server throws exception
  1881. - Glob supports symbolic links (additional flag to control behavior)
  1882. - fixed a problem with non blocking connect in NetSSL_OpenSSL
  1883. (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)
  1884. - fixed a problem with SSL renegotiation in NetSSL_OpenSSL (thanks to Sanjay Chouksey for the fix)
  1885. - fixed SF# 1714753: NetSSL_OpenSSL: HTTPS connections fail with wildcard certs
  1886. - HTTPClientSession: set Host header only if it's not already set (proposed by EHL)
  1887. - NetworkInterface (Windows): Loopback interface now has correct netmask;
  1888. interfaces that do not have an IP address assigned are no longer reported.
  1889. - Fixes for VC++ W4 warnings from EHL
  1890. - SharedMemory: first constructor has an additional "server" parameter
  1891. Setting to true does not unlink the shared memory region when the SharedMemory object is destroyed. (Alessandro Oliveira Ungaro)
  1892. - fixed SF# 1768231: MemoryPool constructor
  1893. Data:
  1894. - fixed SF# 1739989: Data::RecordSet::operator = () (in 1.3 branch)
  1895. - fixed SF# 1747525: SQLite, Transactions and Session Pooling (in 1.3 branch)
  1896. - upgraded to SQLite 3.4.1
  1897. Release 1.3.0 (2007-05-07)
  1898. ==========================
  1899. - added HashMap, HashSet classes
  1900. - the HashFunction class template has been changed in an incompatible
  1901. way. The member function formerly named hash() is now the function
  1902. call operator. If you have defined your own HashFunction classes,
  1903. you have to update your code. Sorry for the inconvenience.
  1904. - added Poco::Tuple
  1905. - added AbstractCache::getAllKeys(), improved performance of the get operation
  1906. - fixed AbstractCache::size() to do cache replacement before returning the size
  1907. - added additional match() method to RegularExpression and documented the fact that the simple
  1908. match() method internally sets RE_ANCHORED and RE_NOTEMPTY.
  1909. - added ExpirationDecorator template. Decorates data types so that they can be used with UniqueExpireCaches
  1910. - added operator ! to AutoPtr and SharedPtr
  1911. - Buffer uses std::size_t instead of int
  1912. - Exception::what() now returns exception name instead of message
  1913. - added poco_ndc_dbg() macro (same as poco_ndc(), but only enabled in debug builds)
  1914. - added Environment::get(name, defaultValue);
  1915. - Foundation.h now includes Config.h at the very beginning.
  1916. - added replace() and replaceInPlace() to Poco/String.h
  1917. - added AutoPtr::assign() and SharedPtr::assign()
  1918. - added operator () to AbstractEvent
  1919. - gcc Makefiles now strip release builds
  1920. - Void now has a == and != operator
  1921. - Base64Encoder and HexBinaryEncoder now support an unlimited line length
  1922. (no newlines written), by specifying a line length of 0
  1923. - NumberParser now has stricter syntax requirements: garbage following a number leads to a SyntaxException
  1924. (Thanks to phireis@gmail.com for the suggestion)
  1925. - fixed SF# 1676830: Don't use -rpath in libraries
  1926. - fixed SF# 1670279: AbstractConfiguration::unckeckedExpand crash
  1927. - fixed a warning in Hashtable
  1928. - HTTPClientSession now uses a keepAliveTimeout for better persistent connection handling
  1929. - added DateTime::makeUTC() and DateTime::makeLocal()
  1930. - added another constructor to LocalDateTime
  1931. - POCO_WIN32_UTF8 is ignored on non-Windows platforms
  1932. - fixed a timeout bug (with NetSSL) in HTTPSession
  1933. - AsyncChannel is automatically opened with first log()
  1934. - minor fix to NotificationQueue sample (reported by Laszlo Keresztfalvi)
  1935. - added File::canExecute() and File::setExecutable()
  1936. - added SharedMemory class to Foundation
  1937. - added FileStream, FileInputStream, FileOutputStream to Foundation
  1938. - added NodeAppender class to XML for faster DOM tree creation
  1939. - HTTPServerRequest and HTTPServerResponse are now abstract base classes,
  1940. actual functionality has moved into HTTPServerRequestImpl and
  1941. HTTPServerResponseImpl. This allows us to plug other HTTP servers
  1942. into POCO.
  1943. - added DynamicAny class to Foundation
  1944. - replaced std::fstream with Poco::FileStream across POCO.
  1945. - added Poco::Checksum class to Foundation.
  1946. - fixed SF# 1700811: conflict in threadpool
  1947. - bugfix: File::moveTo() does not work if the target is a directory
  1948. - File::copyTo() and File::moveTo() now copy/move directories recursively
  1949. - refactored NetworkInterface (now using pimpl idiom);
  1950. added broadcast address and netmask support
  1951. - fixed SF# 1688982: POP3ClientSession fails when retrieving mails with attachment
  1952. - fixed SF# 1655104: Enhance Poco::TextEncoding functionality
  1953. - added Poco::Condition class, implementing a POSIX-style condition variable
  1954. - fixed a bug in File::create() for Windows
  1955. - added poco_static_assert (imported from boost)
  1956. - added Thread::join(timeout) and Thread::tryJoin()
  1957. - ClassLoader support for named manifests (see ClassLibrary.h - POCO_EXPORT_NAMED_MANIFEST)
  1958. - POCO_WIN32_UTF8: UNICODE #define is no longer required (and no longer
  1959. automatically defined in POCO_WIN32_UTF8 is defined)
  1960. - PCRE: upgraded to PCRE version 7.1
  1961. - fixed SF# 1682162: Suggestion on thread priority
  1962. - fixed SF# 1613460: MSVC/STLPort warnings
  1963. - fixed SF# 1709358: Format double percent std::String bug
  1964. - added WindowsConsoleChannel class to Foundation
  1965. - added AutoPtr::unsafeCast<>() and SharedPtr::unsafeCast<>()
  1966. - fixed SF# 1708552: Failed to build on arm and powerpc
  1967. - fixed SF$ 1708529: Failed to build using GCC 4.3: missing #includes
  1968. - fixed SF# 1710053: LogStream proposal
  1969. - fixed a bug involving empty root directories in Windows DirectoryIterator implementation
  1970. (see http://www.appinf.com/poco/wiki/tiki-view_forum_thread.php?comments_parentId=343&forumId=6)
  1971. - robustness improvements to ActiveMethod - removed the opportunity for memory leaks in
  1972. case something goes while invoking the method
  1973. - made C library usage more C++-like - use C++ headers (e.g. <cstring>) instead of
  1974. C ones (<string.h>). Also, use C library functions in std namespace.
  1975. - added Unicode and UTF8String for improved Unicode support.
  1976. The Unicode class can be used to obtain the Unicode properties of a character.
  1977. The UTF8 class provides case insensitive comparison and case conversion
  1978. for UTF-8 encoded strings.
  1979. - added UnWindows.h header file, replaced all #include <windows.h> with #include "Poco/UnWindows.h".
  1980. See the Poco/UnWindows.h header file for a rationale and explanations.
  1981. - fixed SF# 1713820: StreamSocketImpl::sendBytes sends too many bytes
  1982. - File::copyTo(): on Windows, the copy now always has the read-only flag reset, to be consistent
  1983. with other platforms.
  1984. - With Microsoft Visual C++, the necessary POCO libraries are now implicitly linked when
  1985. the corresponding header files are included (#pragma comment(lib, "PocoXYZ.lib") is used).
  1986. To disable this, compile POCO with the preprocessor symbol POCO_NO_AUTOMATIC_LIBS #define'd
  1987. (see Poco/Foundation.h and Poco/Config.h).
  1988. - The Visual Studio project files for the POCO libraries now include configurations
  1989. for building static libraries.
  1990. Release 1.2.9 (2007-02-26)
  1991. ==========================
  1992. - fixed a formatting problem in Util::HelpFormatter
  1993. - HTTPClientSession::sendRequest() now attempts to send the complete request in one network packet.
  1994. - improved network performance of ChunkedOutputStream: chunk size and chunk data
  1995. are sent in one network packet if possible
  1996. - fixed SF# 1655035: Wrong expires field calculation in HTTPCookie
  1997. (thanks to Sergey N. Yatskevich for this and other fixes)
  1998. - fixed SF# 1655049: Fix discrepancy of a code to the description
  1999. - fixed SF# 1655170: Poco::Timezone::standardName() problem on WIN32
  2000. - fixed SF# 1629095: POCO_WIN32_UTF8 problem
  2001. There is a new function Path::transcode() that can be used to convert a path (or any other string)
  2002. from UTF-8 to the current Windows code page. This string can the be passed as a filename
  2003. to an fstream or fopen(). This function only does the conversion on Windows,
  2004. and only, if POCO_WIN32_UTF8 is defined. Otherwise, it simply returns the unmodified argument.
  2005. - fixed SF# 1659607: Probably a bug in Poco::Net::DialogSocket
  2006. - HTTPServer network performance improvement: responses that fit into a single network packet
  2007. sent with HTTPServerResponse::sendFile() or the new HTTPServerResponse::sendBuffer() are
  2008. sent in only one packet.
  2009. - added HTTPServerResponse::sendBuffer()
  2010. - HTTPServer now sends a Bad Request response if it fails to parse the HTTP request header.
  2011. - HTTPServer now sends an Internal Server Error response if the request handler throws an
  2012. exception prior to sending a response.- enabled TCP_NODELAY per default on TCPServer/HTTPServer
  2013. - fixed a bug in HTTP persistent connection handling
  2014. (server does not send Connection: close when it reaches connection maximum)
  2015. - HTMLForm - POST submission of URL encoded form no longer uses chunked transfer encoding
  2016. (thus improving interoperability with certain web servers)
  2017. - integrated Environment.cpp from Main (missing get(var, default))
  2018. - added missing AutoPtr include to Util/Application
  2019. (and using Poco::AutoPtr is no longer necessary for POCO_APP_MAIN macro)
  2020. - fixed SF# 1635420: Per Regents of the University of Calfornia letter,
  2021. remove advertising from BSD licensed parts
  2022. - fixed SF# 1633133: MultipartWriter writes superluous CR-LF at beginning
  2023. Release 1.2.8 (2007-01-04)
  2024. ==========================
  2025. - fixed SF# 1613906: Util/Application.h and GCC 3.3
  2026. - fixed a byte order issue (failed test) in IPv6 address formatting
  2027. - fixed SF# 1626640: Poco::Net::SocketReactor bug
  2028. - fixed client side chunked transfer encoding handling
  2029. - fixed client side persistent connection handling
  2030. - fixed SF# 1623536: HTTP Server Chunked Transfer Encoding Bug
  2031. - improved HTTP server exception text
  2032. - fixed SF# 1616294: KeepAlive HTTPServerSession patch
  2033. - fixed SF# 1616296: Trivial Poco::TaskCustomNotification patch
  2034. - fixed SF# 1619282: PurgeStrategy bug fix
  2035. - fixed SF# 1620855: Format problem
  2036. there is a new format specifier %z for std::size_t, as well as a new
  2037. flag ? for %d, %i, %o, %x meaning any signed or unsigned integer
  2038. Release 1.2.7 (2006-12-07)
  2039. ==========================
  2040. - Poco::File: fixed root directory handling
  2041. - fixed UUIDGenerator documentation
  2042. - clarified Application::setUnixOptions() documentation
  2043. - fixes for issue [SOAPLite Transport 0000023]: SOAP Transport Listener should be able to use existing HTTPServer instance
  2044. - fixing mantis issues 13, 14, 15, 16, 17, 18, 19, 21
  2045. - fixed SF# 1597022: Signed/unsigned warning in StringTokenizer::operator[]
  2046. - fixed SF# 1598601: Message::op= leaks
  2047. - fixed SF# 1605960: PatternFormatter crashes on custom property
  2048. - fixed SF# 1605950: Memory leak in Logger sample code
  2049. - fixed SF# 1591635: Copy Paste Error in sample code
  2050. - fixed SF# 1591512: SMTPClientSession response stream
  2051. - fixed SF #1592776: LayeredConfiguration: getRaw should enumerate in reverse order
  2052. - SF Patch # 1599848 ] VS 2005 Util build fails
  2053. - Logger::dump() now uses std::size_t instead of int for buffer size
  2054. - LayeredConfiguration now supports a priority value for each configuration.
  2055. Also, it's possible to specify for each configuration added whether it
  2056. should be writeable.
  2057. - ServerApplication: cd to root directory only if running as a daemon
  2058. - added Message::swap()
  2059. - improvements to build system:
  2060. global Makefile has correct dependencies for samples
  2061. on Windows, samples build after libraries are ready
  2062. configure supports --no-wstring and --no-fpenvironment flags
  2063. build system supports POCO_FLAGS environment variable for compiler flags
  2064. - RemoteGen: fixed error handling for write protected files (SystemException)
  2065. fixing integral constant overflow messages with large cache expiration, m_ support for type serializers,
  2066. case-insensitive comparison added
  2067. Release 1.2.6 (2006-11-19)
  2068. ==========================
  2069. - added additional match() method to RegularExpression and documented the fact that the simple
  2070. match() method internally sets RE_ANCHORED and RE_NOTEMPTY.
  2071. - added ExpirationDecorator template. Decorates data types so that they can be used with UniqueExpireCaches
  2072. - added operator ! to AutoPtr and SharedPtr
  2073. - Buffer uses std::size_t instead of int
  2074. - added poco_ndc_dbg() macro (same as poco_ndc(), but only enabled in debug builds)
  2075. - Foundation.h now includes Config.h at the very beginning.
  2076. - added AutoPtr::assign() and SharedPtr::assign()
  2077. - added operator () to AbstractEvent
  2078. - gcc Makefiles now strip release builds
  2079. - documentation improvements
  2080. Release 1.2.5 (2006-10-23)
  2081. ==========================
  2082. - Improved LoggingConfigurator: channel creation and configuration is now a two-step process.
  2083. This means that the previous problems with PropertyFileConfiguration and IniFileConfiguration when referencing other channels are solved.
  2084. - improved options handling: better handling of (non) ambiguities.
  2085. If both an option named "help" and one named "helper" is specified, this no longer causes ambiguity errors.
  2086. - added check for duplicate option definition
  2087. - ThreadPool bugfix: fixed a crash that occurs on Linux multiprocessor machines
  2088. (caused by an thread unsafe string assignment corrupting the heap...)
  2089. (SF# 1575315)
  2090. - improved ThreadPool performance
  2091. - XML now compiles with -DXML_UNICODE_WCHAR_T (SF# 1575174)
  2092. - fixed SF# 1572757: HTML forms can have more than one key/value pair with the same name
  2093. - got rid of the dynamic casts in Events, Events/Cache: simpler/faster Delegate < operator,
  2094. prevents some rare dynamic casts error from occuring when using StrategyCollection with Caches
  2095. - improvements to Logger and LoggingConfigurator:
  2096. * added Logger::unsafeGet()
  2097. * added Logger::setProperty(loggerName, propertyName, value)
  2098. * LoggingConfigurator now correctly (re)configures existing Loggers
  2099. (prior to this change, if a Logger named "a.b.c" existed before
  2100. the LoggingConfigurator started its work, and the LoggingConfigurator
  2101. configured a Logger named "a.b", then "a.b.c" would not inherit
  2102. the new configuration).
  2103. - improvements to SplitterChannel and EventLogChannel configuration
  2104. - improved LoggingRegistry exception messages
  2105. - MessageHeader::read() is more liberal with malformed message headers.
  2106. This fixes problems with certain network cameras sending malformed HTTP headers.
  2107. Release 1.2.4 (2006-10-02)
  2108. ==========================
  2109. - some code beautifying and improvements to comments
  2110. - DOMParser now automatically sets FEATURE_NAMESPACE_PREFIXES
  2111. - fixed SF #1567051: DOMBuilder/DOMParser/NamespaceStrategy bug
  2112. - fixed SF #1567364: POCO_APP_MAIN
  2113. - added Document::getElementById() (two-argument) and getElementByIdNS()
  2114. - added another test for DOMParser
  2115. - added AutoPtr::isNull() (to be consistent with SharedPtr)
  2116. - this release again compiles on PA-RISC HP-UX systems with aCC
  2117. - added CMAKE support files contributed by Andrew J. P. Maclean
  2118. Release 1.2.3 (2006-09-14)
  2119. ==========================
  2120. - configure script now checks if (auto)selected configuration is supported
  2121. - fixed SF #1552904: NamedEvent bug?
  2122. - fixed SF #1552787: POCO not handling EINTR
  2123. - fixed SF #1552846: Random::~Random uses scalar delete
  2124. - fixed SF #1552987: TLSSlot should explicitly default-construct _value
  2125. - IPAddress no longer accepts an empty address string
  2126. - split up Observer.h into AbstractObserver.h and Observer.h
  2127. - added NObserver class template which supports an AutoPtr
  2128. argument for the notification callback
  2129. - changed EchoServer sample to use NObserver
  2130. - some Windows-specific files were missing in the tarballs
  2131. Release 1.2.2 (2006-09-01)
  2132. ==========================
  2133. - fixed SF # 1549973: NotificationCenter::hasObservers() returns wrong result
  2134. - fixed a memory leak in EchoServer sample
  2135. - fixed SocketReactor TimeoutNotification bug (SF #1549365, SocketNotifier::addObserver() incorrect behavior)
  2136. - fixed SF# 1549513: MultipartReader does not work with Unix-style linefeeds
  2137. - MailMessage and HTMLForm: processing of multipart messages will no longer fail if a PartHandler does not read all data from the part stream.
  2138. - added additional test case (Unix-style line ends) to MultipartReaderTest
  2139. Release 1.2.1 (2006-08-29)
  2140. ==========================
  2141. - fixed Config.h header (no more #undefs)
  2142. Release 1.2.0 (2006-08-29)
  2143. ==========================
  2144. - DateTime fixes: Julian Day is no longer stored internally.
  2145. Times (hours, minutes, seconds, ...) are now always taken from an utcValue (if available) and not from the Julian day.
  2146. The Julian day is only used for calculating year, month and day (except when the Julian day is the only thing we have)
  2147. This helps us get rid of rounding errors that the Julian Day arithmetic introduced.- on Windows, UUIDGenerator no longer uses Netbios, but GetAdaptersInfo instead
  2148. - The main Makefile now has correct dependencies
  2149. - updated poco-doc.pl with latest version by Caleb Epstein
  2150. - fixed SF #1542722: InflatingInputStream: buffer error
  2151. - improved Windows UTF-8 support
  2152. - added Logger::names()
  2153. - added configure script and make install target
  2154. - XMLWriter bugfix: pretty-print bug with characters() and rawCharacters()
  2155. - improvements to build system: support builds outside of source tree
  2156. - added header doc conversion tool contributed by Caleb Epstein
  2157. - fixed SF #1542618 (build/config/Linux patch)
  2158. - bugfix: BinaryReader/BinaryWriter BOM is now 16 bits, as documented
  2159. - fixed SF #1542247 (Compiler warning from OptionCallback)
  2160. - fixed SF #1542253 (ServerApplication::handleOption doesn't call Application::handleOption)
  2161. - added Application::stopOptionsProcessing()
  2162. - updated samples
  2163. - Util::Application command line handling now supports:
  2164. * argument validation (Option::validator(); see Validator, IntValidator, RegExpValidator)
  2165. * binding of argument values to config properties (Option::binding())
  2166. * callbacks for arguments (Option::callback())
  2167. * checking of required parameters
  2168. - changed header file locations:
  2169. Foundation headers are now in Poco (#include "Poco/Foundation.h")
  2170. XML headers are now in Poco/XML, Poco/SAX and Poco/DOM (#include "Poco/XML/XML.h")
  2171. Util headers are now in Poco/Util (#include "Poco/Util/Util.h")
  2172. etc.
  2173. Unfortunately, this change will break existing code. However, fixing the code is
  2174. a matter of a few global search/replace operations and can be done quickly.
  2175. On the plus side, POCO is now a much better citizen when used with other
  2176. libraries.
  2177. - changed namespaces:
  2178. Foundation is now Poco
  2179. XML is now Poco::XML
  2180. Util is now Poco::Util
  2181. Net is now Poco::Net
  2182. - removed namespace macros
  2183. - fixed some warnings reported by gcc -Wall -Wextra
  2184. - fixed AutoPtr and LayeredConfiguration documentation
  2185. - improved StreamSocket::receiveBytes() doc
  2186. - added Pipe and PipeStream classes
  2187. - added support for I/O redirection (pipes) to Process::launch()
  2188. - added LogStream class (ostream interface to Logger)
  2189. - improved Makefiles (no more double-building if clean all is specified)
  2190. - added CppUnit and DateTime testsuite contributions by Andrew Marlow
  2191. - improved Cygwin and minimal MinGW support
  2192. - FileChannel: gzip compression if archived files now runs in a background thread (SF #1537481)
  2193. - POCO now compiles with large (64-bit) file support on Linux (SF #1536634)
  2194. - added format() function, which provides typesafe sprintf-like functionality (SF #1327621)
  2195. - added File::isLink()
  2196. - bugfix: dangling symbolic links in a directory no longer cause recursive remove to fail with file not found error
  2197. - added Void class (useful as argument to ActiveMethod)
  2198. - ActiveResult now supports exceptions
  2199. - bugfix: Timezone::utcOffset() and Timezone::dst() returned wrong values on Unix platforms (SF #1535428)
  2200. - added ActiveDispatcher class
  2201. - added ActiveStarter class, which is a policy used by ActiveMethod for starting methods
  2202. - ActiveRunnable moved to its own header file
  2203. - ThreadPool: added startWithPriority(), which allows for running threads with a different priority
  2204. - added error handling to dir sample
  2205. - 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)
  2206. - clarified HTMLForm documentation
  2207. - HTMLForm bugfix: uploaded files no longer end up in value; PartHandler is called instead
  2208. - NameValueCollection: added get(name, defaultValue)
  2209. - added HTTPFormServer sample
  2210. - added Foundation::HashTable and SimpleHashTable
  2211. - added Net::HTTPSessionFactory
  2212. - improvements to AutoPtr and SharedPtr
  2213. - improvements to namespaces handling in XMLWriter
  2214. - Foundation Cache: fixed add implementation to match the docu: a 2nd add will now simply overwrite existing entries
  2215. - added DateTime::isValid()
  2216. - added Exception::rethrow() (virtual, must be overridden by all subclasses)
  2217. - Timer can now use a user-supplied ThreadPool
  2218. - added rethrow() to exception classes
  2219. - Net: made some constructors explicit
  2220. - Net: added SocketAddress constructor to HTTPClientSession
  2221. - Net: added HTTPSession::networkException() to check for exceptions swallowed by stream classes
  2222. - Net: added single string argument constructor to SocketAddress.
  2223. - Net: improved HTTPClientSession error handling (no more "Invalid HTTP version string" exceptions when the server prematurely closes the connection due to too much load)
  2224. - 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.
  2225. - Net: added HTTPLoadTest sample
  2226. - fixed a bug when opening logfiles on Unix platforms causing an existing logfile to be truncated
  2227. - bugfix: log file purge intervals given in months did not work, due to a stupid typo
  2228. - added RawSocket and ICMP classes
  2229. - UUID: fixed a doc formatting bug
  2230. - NetworkInterface::list() now includes loopback interface on Windows (SF #1460309)
  2231. - made Exception::message() and Exception::nested() inline
  2232. - added Net::UnsupportedRedirectException
  2233. - HTTPStreamFactory throws an UnsupportedRedirectException if it encounters a redirect to https
  2234. - HTTP: fixed bad 100 Continue handling in client and server code
  2235. - added CONTRIBUTORS file
  2236. Release 1.1.2 (2006-07-07)
  2237. ==========================
  2238. - Changed license to Boost license
  2239. - DBlite and NetSSL have been removed from the Boost-licensed release.
  2240. Please contact Applied Informatics (info@appinf.com) if you're interested in them.
  2241. Release 1.1.1 (2006-04-03)
  2242. ==========================
  2243. - NetSSL_OpenSSL now supports separate certificate verification
  2244. settings for client and server.
  2245. - fixed SF #1460309 (enumerating network interfaces failed on 64bit Linux)
  2246. - TCPServer no longer crashes if accept() fails
  2247. Release 1.1.0 (2006-03-23)
  2248. ==========================
  2249. - events no longer require awkward += new syntax
  2250. - source code and documentation cleanups
  2251. - basic support for new compilers and platforms
  2252. Release 1.1b2 (2006-03-04)
  2253. ==========================
  2254. - made NetSSL threadsafe (added locking callbacks for OpenSSL)
  2255. - improved OpenSSL initialization (random generator seeding)
  2256. - various changes to improve compatibility with various platforms
  2257. Release 1.1b1 (2006-03-03)
  2258. ==========================
  2259. - New Events package in Foundation. The package supports C#-style event handling
  2260. - New Cache package in Foundation: a templates-based caching framework
  2261. - added Any class to Foundation
  2262. - added DBLite library
  2263. - fixed a memory leak with layered configurations in the application
  2264. - made POCO_DLL the default (unless POCO_STATIC is #defined)
  2265. It is no longer necessary to specify POCO_DLL in projects that use Poco
  2266. (SourceForge Patch #1408231 and Feature Request #1407575).
  2267. - added Buffer template class to Foundation
  2268. - added the UnicodeConverter utility class. This is mainly used for Windows Unicode support and probably of little use for anything else.
  2269. - added Path::resolve()
  2270. - added Windows Unicode support. This calls the Unicode variant of the Windows API functions.
  2271. For this to work, all strings must be UTF-8 encoded and POCO_WIN32_UTF8 must be defined in all compilation units.
  2272. - added StreamCopier::copyToString()
  2273. - added URIStreamOpener::unregisterStreamFactory() and new variants of URIStreamOpener::open() that also work with filesystem paths.
  2274. This fixes SourceForge Bug #1409064 and Feature Request #1409062.
  2275. - added NodeIterator::currentNodeNP() to XML library
  2276. - added some sanity checks to UTF8Encoding::convert()
  2277. - added NetSSL - SSL support for Net library, based on OpenSSL
  2278. - console output of processes launched with Process::launch() is now visible
  2279. Release 1.0.0 (2006-01-19)
  2280. ==========================
  2281. - removed unnecessary console output from ProcessTest
  2282. - documentation fixes
  2283. Release 1.0b2 (2006-01-16)
  2284. ==========================
  2285. - added ProcessHandle class
  2286. - Process::launch() now returns a ProcessHandle instead of a process ID.
  2287. This fixes a potential problem on Windows with Process::wait() when
  2288. the process terminates before wait() is called.
  2289. - added SplitterChannel::close()
  2290. - added Logger::destroy()
  2291. - added POP3ClientSession::deleteMessage()
  2292. - added test for Process::launch()
  2293. - documentation fixes
  2294. Release 1.0b1 (2006-01-09)
  2295. ==========================
  2296. - improved recognition of Windows paths in Path::parseGuess()
  2297. - added setCurrentLineNumber()/getCurrentLineNumber() to CountingStreamBuf
  2298. - improvememts to StreamTokenizer and Token; fixed documentation
  2299. - added a workaround for some strange istream behaviour with VS 2005 and FTPClientSessionTest
  2300. - improved exception/error reporting in cppunit
  2301. - added POP3ClientSession
  2302. - added Process::launch() and Process::wait()
  2303. - added Mail sample
  2304. - added MailStream and SMTPClientSession classes
  2305. - renamed some methods in DialogSocket to make them more general
  2306. - NullPartHandler has moved out of HTMLForm.cpp into a separate file
  2307. - Base64Encoder now always writes \r\n line ends
  2308. - MessageHeader::quote has an optional addition arg controlling the treatment of whitespace
  2309. - bugfix: MultipartReader had a problem with empty lines (\r\n sequences) in a part
  2310. - added MailMessage and MailRecipient classes
  2311. - added text encoding support for Windows-1252 codepage
  2312. Release 1.0a1 (2006-01-03) [internal]
  2313. =====================================
  2314. - mediaType is used consistently to refer to a MIME media type (some occurences of contentType and mimeType have been replaced)
  2315. - moved MediaType::quote() to MessageHeader and made it public
  2316. - added MultipartWriter::stream()
  2317. - Renamed AttachmentSource to PartSource and AttachmentHandler to PartHandler
  2318. - SIGPIPE is always blocked in main thread on Unix systems
  2319. - added EchoServer sample
  2320. - fixed a bug in SocketImpl::setBlocking() - did exactly the opposite (value to ioctl was wrong)
  2321. - fixed a memory leak in NotificationQueue sample
  2322. - added comparison operators to Socket so that Sockets can be used as keys in maps
  2323. - added Socket::setBlocking()
  2324. - added StreamSocket::connectNB() (non-blocking connect)
  2325. - added Observer::accepts()
  2326. - added SocketReactor, SocketConnector and SocketAcceptor classes to support event-based socket programming
  2327. - NamespacePrefixesStrategy now uses expat's XML_SetReturnNSTriplet().
  2328. The previously used separate namespace handling code has been removed.
  2329. This improves performance if NamespacePrefixesStrategy is used (both the n
  2330. amespaces and namespace-prefixes SAX2 features are used)
  2331. - upgraded expat to 2.0 pre-release (2005-12-27) snapshot
  2332. - added TeeInputStream and TeeOutputStream classes
  2333. - added download sample for URIStreamOpener
  2334. - renamed registerOpener() to registerFactory() in HTTPStreamFactory and FTPStreamFactory
  2335. - added LineEndingConverter streams
  2336. - added FTPClientSession
  2337. - code and documentation clean-up
  2338. - added DialogSocket class
  2339. - reorganized HTTP test suites
  2340. - added FTPClientSession and FTPStreamFactory
  2341. - added DialogSocket class
  2342. Release 0.96.1 (2005-12-28)
  2343. ===========================
  2344. - fixed a memory leak caused by a bug in Microsoft's stream implementation (see the comment in Foundation/StreamUtil.h for an explanation)
  2345. - added samples for Net library
  2346. - added uptime() and startTime() to Util::Application
  2347. - added DateTimeFormatter::format() for Timespan
  2348. - added ErrorHandler class and better exception handling for threads
  2349. - added poco_debugger() and poco_debugger_msg() macros
  2350. - added project and solution files for Visual Studio 2005 (due to some bugs/leaks in Microsofts standard library - see
  2351. http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=e08bd793-3fef-40ff-adda-ed313e0eafcc
  2352. we do not recommend using this for production purposes)
  2353. - fixed two problems with out-of-range string iterator in Path (the testsuite triggered an assertion in VC++ 8.0)
  2354. - fixed mac line endings in a few files
  2355. - 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.
  2356. - added buffer allocator argument to buffered stream buffer templates
  2357. - added buffer pools to HTTP to reduce memory fragmentation and to improve performance
  2358. - added Net to Windows build.cmd script
  2359. - added swap() to various classes that already support assignment
  2360. - added a null pointer check in DOMWriter::writeNode()
  2361. - fixed documentation in BinaryWriter.h and BinaryReader.h
  2362. - added explicit support for network byte order to BinaryReader and BinaryWriter
  2363. - added basic support for FreeBSD (needs more testing)
  2364. - BinaryReader: renamed readRawData() to readRaw() to be consistent with BinaryWriter::writeRaw()
  2365. - added support for uppercase output to HexBinaryEncoder.
  2366. - added MediaType class
  2367. - added QuotedPrintableEncoder and QuotedPrintableDecoder classes
  2368. - renamed ObjectFactory to Instantiator. This should prevent the confusion caused by DynamicFactory and ObjectFactory. Sorry for the inconvenience if you are already using this.
  2369. - AttachmentSource::filename() now returns const string&
  2370. - added StringAttachmentSource
  2371. - replaced old-style C casts with C++ casts in NetworkInterface.cpp
  2372. - MutexImpl (WIN32): replaced InitializeCriticalSection with InitializeCriticalSectionAndSpinCount, which should increase performance on multiprocessor or multicore systems when many locks are used.
  2373. - fixed a problem with STLport 5.0 when compiling StreamTokenizer
  2374. - HTTPStreamOpener now also works with no-path URIs (like http://www.appinf.com)
  2375. - fixed wrong delete usage (plain delete instead of delete [] was used in a few cases)
  2376. - fixed a handle leak in WinTestRunner
  2377. Release 0.95.4 (2005-11-07)
  2378. ===========================
  2379. - fixed #1348006 and #1348005
  2380. Release 0.95.3 (2005-10-28) [internal]
  2381. ======================================
  2382. - updated build scripts (patch #1339015)
  2383. - added support for AMD64 platforms (patch #1339015)
  2384. - MultipartWriter creates its own boundary if an empty string is passed in as boundary
  2385. - made MultipartWriter::createBoundary() public
  2386. - fixed wrong documentation for DateTimeFormat::HTTP_FORMAT
  2387. - added support for HTTP Basic authentication
  2388. - added support for HTTP Cookies
  2389. - added support for HTML forms
  2390. Release 0.95.2 (2005-10-22) [internal]
  2391. ======================================
  2392. - fixed a potential problems with streams when close in destructor fails (added try..catch block around close in destructors)
  2393. - added HTTPServer & friends
  2394. - added hasIdleThreads() method to NotificationQueue
  2395. - added TCPServer and friend
  2396. - added support for HTTP proxies to HTTPClientSession and HTTPStreamOpener
  2397. - fixed documentation bugs (Mutex.h, ClassLoader.h)
  2398. Relesae 0.95.1 (2005-10-15) [internal]
  2399. ======================================
  2400. - Tasks can now throw custom notifications (contributed by Alex Fabijanic)
  2401. - renamed URIFileStreamFactory to FileStreamFactory
  2402. - added a few methods to URI (setPathEtc(), getPathEtc(), getPathAndQuery())
  2403. - added new exception classes
  2404. - fixed some documentation
  2405. - added basic checks when reading a MessageHeader from a stream
  2406. - added HTTP classes (testsuite still incomplete)
  2407. - added MessageHeader, NameValueCollection, MultipartReader and MultipartWriter classes
  2408. - added Timespan::useconds()
  2409. - added ClassLoader::isLibraryLoaded()
  2410. - Socket classes use Timespan::useconds() to fill struct timeval
  2411. - added DatagramSocket, MulticastSocket and NetworkInterface classes
  2412. - added socket classes and related basic stuff
  2413. - added additonal constructor/assign to Timespan- added BasicBufferedBidirectionalStreamBuf
  2414. - fixed a potential MT issue in Base64Decoder
  2415. - code beautifying in [Un]BufferedStreamBuf
  2416. - more improvements to ClassLoader
  2417. - code cleanup and naming convention fixes (changed all *Imp classes to *Impl for consistency)
  2418. Release 0.94.1 (2005-09-30) [internal]
  2419. ======================================
  2420. - added MetaSingleton (based on a contribution by Alex Fabijanic)
  2421. - added ClassLoader::create()
  2422. - added ClassLoader::instance()
  2423. - code clean-ups in FileChannel and related classes
  2424. - added SimpleFileChannel
  2425. - RotateAtTimeStrategy:
  2426. ::getNextRollover() rewritten (buggy)
  2427. - DateTime
  2428. microseconds assert corrected
  2429. asserts in computeGregorian() (except for year - see comment in computeGregorian())
  2430. milliseconds calculation modified in computeGregorian()
  2431. microseconds assigned in computeGregorian()
  2432. normalize() and checkLimit() private functions to correct cases of overflow for milli/microseconds
  2433. - LocalDateTime: added timestamp() method
  2434. - FileChannel:
  2435. added "times" property (used to determine whether to use UTC or local time with RotateAtTimeStrategy)
  2436. ::setProperty() modified (whenever "times" property is set, methods setRotation and setArchive are
  2437. reinvoked to reflect the change)
  2438. - FileChannel: added support for archived file compression and archived file purging
  2439. - FileChannel tests modified
  2440. - FileChannel: put LogFile, RotateStrategy and ArchiveStrategy into their own files
  2441. - Message: added thread id field
  2442. - PatternFormatter: added %I specifier for thread id
  2443. - ThreadPool: PooledThread can be assigned a name
  2444. - TaskManager: task name is reflected in thread name
  2445. - fixed LocalDateTime::operator - (const Timespan&) [#0000004]
  2446. - upon startup all loggers' channels are set to a console channel
  2447. - improved search for application configuration files (see loadConfiguration()).
  2448. - added Glob class (fixes #1249700)
  2449. - upgraded to zlib 1.2.3 (fixes #1261712)
  2450. - added Logger::dump()
  2451. - fixed a wrong condition in Logger::log(const Message&)
  2452. - Path::find() now also works with relative paths in addition to plain file names
  2453. - added Path(const Path&, const Path&) constructor
  2454. - added SharedPtr template
  2455. - added Path::tryParse()
  2456. - SAXParser::parse()/EntityResolverImpl now works for both URIs and local filesystem paths (fixes #1254812)
  2457. Release 0.93.1 (2005-08-01)
  2458. ===========================
  2459. This release contains various new features, improvements and bugfixes:
  2460. - bugfix: UUIDGenerator throws an exception if no connected ethernet adapter can
  2461. be found (and thus no MAC address can be obtained)
  2462. - added UUIDGenerator::createOne() method
  2463. - added error handling to UUID sample application
  2464. - added relational (==, !=, <, <=, >, >=) and arithmetic operators (+, -, +=, -=) to DateTime
  2465. - added LocalDateTime class
  2466. - added support for LocalDateTime to DateTimeParser and DateTimeFormatter
  2467. - added enqueueUrgentNotification() to NotificationQueue
  2468. - added support for timezone specifiers (%z, %Z) to PatternFormatter
  2469. - added [] operator and count() to StringTokenizer
  2470. - added elapsed() and isElapsed() to Timestamp
  2471. - added tzd() to Timezone
  2472. - added WinRegistryKey and WinService classes (Windows only)
  2473. - added index operator and count() to StringTokenizer
  2474. - added day/time-based log rotation (thanks to Alex Fabijanic), minor improvements to DateTimeParser
  2475. - support for Mac OS X 10.4/gcc 4.0.0
  2476. - added NamedMutex and NamedEvent
  2477. - added Process::kill()
  2478. - added NoPermissionException
  2479. - added Task and TaskManager classes
  2480. - added ServerApplication class
  2481. - bugfix: EventLogChannel - _logFile was not properly initialized in one constructor
  2482. - bugfix: File::createDirectories did not work for hierarchies deeper than three
  2483. - added Util::FilesystemConfiguration
  2484. - documented logging policy: log() must open channel if it hasn't been opened yet
  2485. - FileChannel::log() opens channel if necessary
  2486. - the application reference passed to initialize() and reinitialize() is no longer const
  2487. - improved application logging initialization
  2488. - fixed a problem with configuration view and property placeholders
  2489. - fixed Util build configuration for Visual Studio
  2490. - improved application samples
  2491. - fixed documentation for Semaphore class
  2492. Release 0.92.1 (2005-05-09)
  2493. ===========================
  2494. This release introduces the Util library that provides support for
  2495. configuration file parsing (different file formats), command line
  2496. argument processing, logging configuration and a framework for
  2497. command line/server applications.
  2498. There have also been various changes to the Foundation library:
  2499. - a new RefCountedObject class that acts as a base class for
  2500. various classes that use reference counting
  2501. - some missing members have been added to the AutoPtr template
  2502. - various improvements and bugfixes to the Logging framework, as well as
  2503. new LoggingFactory and LoggingRegistry classses, and a NullChannel class
  2504. - the SignalHandler class (Unix platforms only)
  2505. - ObjectFactory and DynamicFactory template classes
  2506. - the Path::find method for searching a file in a list of directories
  2507. - various new Exception classes
  2508. Release 0.91.4 (2005-04-11)
  2509. ===========================
  2510. This is mainly a maintenance release that adds support for QNX Neutrino
  2511. and OpenVMS. There are also minor bugfixes and improvements.
  2512. The Unix build system has been modified to work on QNX Neutrino.
  2513. The OpenVMS build system has been fixed and works now.
  2514. Some missing #include's have been added for QNX Neutrino.
  2515. Foundation/String.h: icompare now supports comparison with const char*;
  2516. the classic C version of isspace() has been used in a few places instead of the
  2517. C++ <locale> version, this has been fixed.
  2518. Foundation/Exception.h: IllegalStateException added.
  2519. Release 0.91.3 (2005-03-19)
  2520. ===========================
  2521. This is a maintenance release that adds support for Solaris/Sun Forte C++.
  2522. No new features have been added.
  2523. An implementation of FPEnvironment for Solaris has been included.
  2524. All stream classes have been modified to work around an initialization
  2525. problem that surfaced with Sun's C++ compiler when using STLport.
  2526. Source-code compatibility with the previous release is not affected. Various
  2527. minor changes, mostly adding missing #include's for Solaris.
  2528. Release 0.91.2 (2005-02-27)
  2529. ===========================
  2530. Minor improvements to the Unix build system. No actual changes in the
  2531. libraries.
  2532. Release 0.91.1 (2005-02-21)
  2533. ===========================
  2534. This is the first public release of the C++ Portable Components.
  2535. The release does not contain all features planned for the later 1.0 release
  2536. (the NET library is missing, for example), but is already quite usable.
  2537. Please refer to the README file for more information and instructions for
  2538. building the libraries.