* fix(PollSet): #3248#3249
* bump version to 1.11.0
* updated changelog|
* #3299: NetSSL: Allow per-Context InvalidCertificateHandler
* #3022: Process::isRunning(PID pid) causes handle leak on Windows
* #3022: fix for WinCE
* upgrade bundled pdjson to latest master
* update build configs - add support for Apple Silicon
* #2906, #2904: Support environments without hardware floating point
* #3130: fix error handling: report original error before close()
* #3107: remove unused variable
* #3219: SMTPClientSession: invalid SMTP command if empty recipients list in MailMessage
* Poco::trim*() code cleanup - use ptrdiff_t instead of int; additional test cases
* #3182 Poco::Process:launch on MacOS BigSur: limit maximum number of file descriptors to close before exec() to 100000
* #3278: Fixing no hardware floating point support - Part II
* #3090: Do not initialize value with undefined behavior
* #3163: Correct Var::parse null value
* #3196: std::forward for Poco::Optional ctor with rvalue
* #3068: Documented ENABLE_JWT option
* #3041: PostgreSQL and TEXT column type
* #3099: Fixed Postgres extraction into Dynamic::Var
* #3138: Add support of arch riscv32
* #2825: riscv: Enable double operations when using double float abi
* #3166: Fix PostgresSQL BLOB extractor
* #3237: An error in the documentation for Poco/JSON/Parser.h
* #3193: ServerApplication::registerService() unquoted path security vulnerability
* #3266: Order of Util::Application::uninitialize() is not in reverse as documented
* #3215: XML parser returns item from different element in a array
* #3282: Update constant in setContentType documentation
* #3089: HTTPSessionFactory does not support HTTPClientSession::ProxyConfig
* #2418: SecureServerSocket doesn't work with IpV6
* fix warnings
* #3019: ObjectPool wait on borrow condition fix
* #3224: Remove SSL23 support from Poco/Crypto
* #3191: Fixing a bug in the NetSSL_Win module (Host name verification failed error)
* disallow SSLv3
* #3269: Poco::Net::Context initialization with empty certificateFile
* #3307: Poco::Crypto::X509Certificate: obtain certificate fingerprint
* #3260: Memory leak in EVPPKey::loadKey used with files & wrong password
* #3157: fix(openssl): add missing dependency to OpenSSL components
* #3066: CMake warning about MYSQL casing
* #3135: Poco::Data::SQLite::Utility::fileToMemory unsuccessful if journal exists
* #3217: CMake: warning message with -DPOCO_STATIC confusing
* #3274: Fix localtime_r for VxWorks 6.9 and later
* #2746, #3169: Fix race condition on TCPServerDispatcher stop
* #3092: add more detailed error description when LoadLibrary fails|
* #3074: Fix sessions may not return back to the pool
* #3309: optimize parsing from stream (no copying of entire JSON to memory); limit maximum depth to avoid stack overflow with malicious documents (fuzzing - #3285); code cleanup
* JSON Parser performance improvements
* #3310: Upgrade bundled SQLite to 3.35.5
* fix UB/bad cast in TCPServerTest.cpp
* add comment regarding potential UB in AnyTest::testCastToReference()
* support sanitizers in build configs
* bump version
* fix 'catching polymorphic type by value' warnings
* fix 'catching polymorphic type by value' warnings
* fix 'catching polymorphic type by value' warnings
* remove failing Android build; add sanitizer builds
* update postgres version
* fix warning
* fix warning
* add GitHub workflow
* fix ci.yml
* fix ci.yml
* additional ci builds
* fix ci.yml for macos and windows
* fix(double-conversion): Upgrade bundled double-conversion #3313
* ci fixes
* #3314: NetSSL_OpenSSL: any.pem certificate error: ca md too weak
* testReuseSession: remove bad checks for session reuse
* investigate failing test
* investigate failing test
* investigate failing test
* investigate failing test
* ci
* remove travis and appveyor
* ci, readme
* ci fixes
* fix ci
* fix ci
* fix ci
* fix memory leak when ignoring test error/failure
* fix ci
* don't define UNREACHABLE as poco_bugcheck as it triggers 'control reaches end of non-void function' warning
* add Linux cross build, build Data libs on macos
* fix ci
* add MySQL include/lib search paths for Homebrew
* ci fixes
* ci fixes
* ci fixes
* ci fixes
* fix indluce paths for brew mysql
* #3317: Data::MySQL MySQL headers and library search paths
* fix ARM-Linux build config
* fix MySQL.make
* update FindMySQL.cmake
* fix(SocketReactor): fix dataCollection test
* chore: remove troubleshooting help leftovers
* #3302: MSVC: Poco hides warnings (C4996) for the C++14 attribute [[deprecated]]
* fix potential crash in testAsyncNotify: don't delete event object while async notification is still in progress
* fix(PollSetTest): change connect to blocking
* added ActiveRecord library and compiler
* added dependencies file
* update copyright dates
* ActiveRecord: project files and fixes for MSVC
* ci: enable ActiveRecord on Windows
* fix(PollSetTest): remove poll timing check (fails on msvc ci)
* fix ActiveRecord CMake build and configuration
* feat(build): add gen directory (for generated sources) and macchina lib link dirs (if needed)
* #3318: Data: Support Poco::UUID for data binding
* ODBC tests for UUID, updated ActiveRecord projects
* ActiveRecord user guide
* update ActiveRecord documentation
* documentation fixes
* #3321: manually merge ODBC text encoding support
* CppParser: merge changes from internal repository
* updated Makefile
* AbstractObserver::accepts() - add optional name parameter
* fix SharedPtr::makeSharedArray() [merge from devel]
* remove blank line
* #2895, #2935: support OCSP stapling
* style
* clang support (merge from devel)
* #3322: remove useless struct
* link libmariadb instead of libmysql if headers indicate MariaDB
* fix nullptr passed to memcmp/memcpy reported by ubsan
* fix nullptr passed to memcmp/memcpy reported by ubsan
* fix PageCompiler cross-compile; fix Content-Security-Policy header
* remove Data release notes page
* style, remove unused var
* update docs
* improve BLOB handling, clean-up code
* fix(ICMPv4Packet): [asan] Undefined behavior in ICMPv4PacketImpl.cpp #3326
* fix(NumericString): Bug in NumericString with decSep != '.' #3159
* fix(HostEntry): DNS HostEntry returns multiple entries #3303
* fix(PollSet): #3248#3249
* fix(NetworkInterface): Unterminated string possible in NetworkInterfaceImpl::setPhyParams() #3301
* style/whitespace
* fix warnings
* add version resources to executables
* style
* whitespace
* update changelog
* cpproj: also copy testsuite/include if it's there
* branch off 1.11.1
* #3335: XML error when build 1.11.0
* #3353: add POCO_NO_FORK_EXEC CMake option
* #3381: DNS::hostByAddress not thread-safe
* #3400: fix std::localtime not thread safe
* #3221: Crash reported on Windows in X509Certificate verification
* #3344: [bug] MacOS bundle destination path is not set
* #3360: Add POCO_PGSQL_{INCLUDE,LIB} variables
* #3363: Fixed compilation error with MongoDB::Connection and Util::Application
* #3377: Correct Poco::Path::configHome() and dataHome() documentation for Windows
* #2823: error: implicit conversion from 'int' to 'float' changes value from 2147483647 to 2147483648
* #3425: Fixed suspend/resumeEvents pair in DirectoryWatcher
* #2966: SocketReactor loads one core of CPU up to 100%
* #3330: Poco::Data::ODBC::ODBCStatementImpl causes crash
* use OpenSSL 1.1.1 on macOS
* add missing include search path
* upgrade bundled PCRE to 8.45
* upgrade bundled SQLite to 3.36.0
* updated changelog
* fix brew OpenSSL version
* branch off poco-1.11.2
* #3506: Upgrade bundled expat to 2.4.4
* manually merge #3448, part 1 (Crypto)
* manually merge #3448, part 1 (NetSSL)
* #3515: NetSSL_OpenSSL Testsuite: testInterop() and testProxy() fail due to changed certificate
* #3448: fix version check
* #3465: NetSSL_Win: bad error handling when decodeMessage() fails
* #3458: encryptString() crash on redhat/centos 8 with FIPS enabled using md5 default digest
* #3505: JSON::PrintHandler.value(bool) prints incorrect value
* #3527: Upgrade bundled expat to 2.4.5
* #3470: bug in JSON ParseHandler.cpp (RFC 7159 should be valid)
* #3507: Reference counting for bound configuration in Util::Option is broken
* #3518: Expat version check in #defines incorrect
* #3338: NamedMutex does not work on Linux distributions where fs.protected_regular=1
* CI: don't build PageCompiler in ARM cross build
* detect ARM64 on Windows
* updated README.md
* ProGen: support generation of VS 2022 project files
* ci: add windows 2022
* fix library name
* remove unused CppUnit headers
* added VS2022 project files
* #3530: Upgrade bundled expat to 2.4.6
* #3538: Upgrade bundled expat to 2.4.7
* Add back NIOS2 double conversion detection to fix compile errors
The commit
558324f672
removed the nios2 support, which was originally added in
e7b91e8125
This commit add it back.
Signed-off-by: Julien Olivain <ju.o@free.fr>
* #3466: DefinePlatformSpecific.cmake: handle RelWithDebInfo and MinSizeRel configurations
* #3524: remove XML and Util dependencies in Zip/SevenZip
* #3483: Adds Windows 11 and Server 2022 to Environment::osDisplayName()
* #3495: Array::operator[] should not throw
* #3268: Poco redis command set have a bug when you want to set nx ex or expireTime
* #3509: fix dst and utcOffset handling for Dublin time zone
* #2882: another attempt at fixing it that should also work on other platforms
* remove unused method in Timezone_WIN32.cpp
* use tm_gmtoff on Linux
* Basic support for OpenSSL 3.0.0 (#3448)
* updated README.md
* Create close-inactive-issues.yml
* check return codes of EVP_CIPHER_CTX_new and EVP_CipherInit
Especially with OpenSSL 3, it is possible that EVP_CipherInit may fail even when
passed a non-null cipher[1]. Without the checking, it will finally get to a
segfault.
[1] https://github.com/openssl/openssl/issues/16864
* Automatically load default and legacy providers with OpenSSL 3
Without the legacy provider [1], some ciphers are not available. For example,
the 'des-ecb' one used by test sutie is missed and the test will fail.
[1] OSSL_PROVIDER-LEGACY(7ossl)
* Make p12 ca order the same as pem
OpenSSL < 3 returns p12 ca order in reversed order. This is fixed
in OpenSSL 3. We work around it with old OpenSSL.
See:
https://github.com/openssl/openssl/issues/16421https://github.com/openssl/openssl/pull/12641f5eb85eb0f
* Implement SSL abort handling on OpenSSL 3
On an unexpected EOF, versions before OpenSSL 3.0 returned SSL_ERROR_SYSCALL,
nothing was added to the error stack, and errno was 0. Since OpenSSL 3.0 the
returned error is SSL_ERROR_SSL with a meaningful error on the error stack.[1]
[1] SSL_GET_ERROR(3ossl)
Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
Co-authored-by: Robin Lee <cheeselee@fedoraproject.org>
Co-authored-by: Aleksandar Fabijanic <aleks-f@users.noreply.github.com>
* fix(Socket): shutdown fixes from pull #3448
* #3500: Sandbox all iFrames in PocoDoc
* #3549; replace assert with assertTrue
* #3553: Upgrade bundled zlib to 1.2.12
* #3525: Bad management of file in case of OpenSSLException in X509Certificate::readPEM and X509Certificate::writePEM
* disable OpenSSL deprecation warnings
* chore: cleanup
* fix(X509Certificate): add missing string format
* #3559: Poco::Data::PostgreSQL - DateTime extraction truncates fractional seconds
* feat(EVP): 3.0 support
- add EVPCipher
- additional EVPPKey constructors
- tests
- fix and improve openssl-related exceptions
Transition towards 3.0 support;
deprecating direct EC and RSA interface portions.
* fix(openssl): pre 3.0 compile
* feat(Envelope): Add envelope to crypto #3561
* fix(Envelope): mac/clang compile
* fix(Any): #3297#3514
* #3562: fixed OpenSSL setup/shutdown
* fix exception text
* #3563: Remove support for OpenSSL < 1.0
* ci jobs for OpenSSL 1.1 and 3
* updated CHANGELOG
* updated .vscode
* Refactor/any soo (#3564)
* refactor(Any): SOO
- encapsulate data holders
- add missing gets and ops
- eliminate g++ warnings with enable_if's
- default enable SOO
* refactor(Placeholder): encapsulate SOO memory management and fix leaks; cf. #3297#3514
* fix(Placeholder): asan errors and add tests
cf. #3297#3514
* fix(SSLManager): Race condition in SSLManager #3558
* remove unused include
* updated copyright date
* PocoDoc: fix iframe sandboxing
* fix(SHA2Engine): cannot use HMACEngine with SHA2Engine #3421
* refactor(Placeholder): ifdef POCO_NO_SOO only in Placeholder and remove it anywhere else (#3566)
* refactor(Placeholder): more SOO consolidation and optimization
* fix(FPEnvironment): Visual Studio Warning C4244 #3543
* fix(Extractor): move extraction decoding to AbstractExtractor #3396
* Netssl/openssl3 (#3575)
* feat(Context): DH init openssl3 port (1/2 hardcoded params)
* create poco-1.11.3 branch, bump version
* update copyright date
* #3567: check legacy provider existence for legacy exception #3567
* fix(Placeholder): comparison for zero value
* feat(Context): DH init openssl3 port (2/2 params from file)
* test(HTTPSClientSession): try/catch to understand CI failure
* chore(cmake): copy the DH parameters file
* fix(OpenSSLInitializer): unload provider on uninitialize
* chore(HTTPSClientSessionTest): remove try/catch
* fix(OpenSSLInitializer): fix provider unloading
* feat(CppUnit): make tests exceptions more descriptive
* chore(CppUnit): a more descriptive name for callback
Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
* fix(Foundation): update VS 2019 platform version
* chore(Data): update VS project files (add Transcoder #3396)
* fix(Data): Poco::Data::ODBC-dbEncoding property not used for insert/update #3396
* fix(Data): add transcoder to Makefile #3396
* fix(JWT): remove duplicate test functions after merge
Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
Co-authored-by: Julien Olivain <ju.o@free.fr>
Co-authored-by: Robin Lee <robinlee.sysu@gmail.com>
Co-authored-by: Robin Lee <cheeselee@fedoraproject.org>
* Increase PostgreSQL version number
* Take changes from develop for Define Platform Specific cmake
* Take changes from develop for find MySQL modul
* Take changes from develop for find ODBC modul
* Cleanup standard language compile features
* Fix cmake compile features
* Improve to find ODBC on windows
* Enable 64-bit build on AppVeyor
* Switch MySQL off on AppVeyor because of error LNK2038: mismatch detected for _MSC_VER: value 1800 doesnt match value 1900
* Move LCC define to MySQL
* Some cleanup in the root CMakeLists.txt
* Cleanup cmake targets
* Add find openssl modul for older cmake version
* Set proper scope
* Change crypto default to off
* Fix openssl default to on
* Remove global setting of C99 standard
* Set from C11 to C99
* Fix for NetSSL win build
* Set C99 compile features
* Fix Windows build
* Fix windows build
* Cleanup poco unbundle definition
* Fix PDF build
* Remove unused set affinity
* Add _CRT_SECURE_NO_WARNINGS as target compile definitions
* Add _AFXDLL as target compile definitions
* Remove commented out line
* Refactor add_definitions to target_compile_definitons in Util
* Refactor add_definitions to target_compile_definitons in XML
* Remove THREADSAFE in data sql cmake build
* Refactor add_definitions to target_compile_definition in cmake mysql
* Refactor add_definitions to target_compile_definition in cmake odbc
* Refactor add_definitions to target_compile_definition in cmake sqlite
* Refactor add_definitions to target_compile_definitions in platform specific cmake
* Add _DEBUG as compile definition
* Add build dependencies between Foundation-testrunner and TestApp, TestLibrary in cmake build
* Use cmake property to build shared libs
* Cleanup POCO_NO_AUTOMATIC_LIBS. Set only for Windows in cmake build system
* cleanup LIB_MODE_DEFINITIONS in cmake buld system
* Add POCO_STATIC for CppUnit
* Cleanup target link libraries and add option dependencies.
* Add dependencies management in cmake
* Update cmake documentation
* Squashed commit of the following:
commit 38c233f93fc8e9ad6e24d686c905eb18c86e19a7
Fix "invalid new-expression of abstract class type ApacheServerRequest" (#2231)
- abstract method "bool secure() const" defined in HTTPServerRequest was implemented in ApacheServerRequest, one of its derived classes
- a ap_log_error had one of its parameters changed for fixing a warning "passing NULL to non-pointer argument"
- minor indentation problems corrected
commit 4cbdfbe828943871618172f9e042176f115d61d8
Fix build dependencies
* Improve database cmake build dependencies
* Update doc
* Update doc
* Update cmake build commands
* Set public on target link libraries in cmake build system
* Fix PostgreSQL build
* Fix PostgreSQL build in cmake
* Fix PostgreSQL from SQL to Data
* Squashed commit of the following:
commit 1ba7d5dcbfb8d07860dd4efda33b31bedf6184c4
Add missing cmake file
* Set path to PostgresSQL in AppVoyer
* Try to fix AppVeyor build
* show dir in appvoyer
* Disable PostgreSQL build on Appvoyer
* Refactor add_definitions to target_compile_definitions
* Add build for android in travis CI.
* Fix review findings. Change from __ANDORID__ to POCO_ANDROID
* Add android test
* Fix compile issue after rebase
* Ignore test big ping when its failing
Some platforms do not have -ldl, specifically in this case freebsd.
The CMAKE_DL_LIBS is part of standard cmake and is supported
in the cmake_minimum_required() in the top level CMakeLists.txt
CMAKE_DL_LIBS will be -ldl on platforms that support it, or empty.
This fixes problems when a project adds a directory to
CMAKE_PREFIX_PATH, then calls find_package(Poco ...) and afterwards
calls find_package() for another project located in one of the
directories of the original CMAKE_PREFIX_PATH variable.
- Add missing CMakeLists.txt
- Use POCO_ macros to improve code structure in XCode/VisualStudio
- Better ODBC detection
- Remove unnecessary commented out code
The CMake documentation recommends explicitly listing source files, but because CMake is not the primary build system GLOB patterns are used for the moment.
By convention CMake project files are placed on a folder called "cmake" and then called from the build system by appending the CMAKE_MODULE_PATH variable