* chore(Trace): add dev env settings
* add(Trace): init add Poco::trace and libbacktrace files
* feat(Exception): generate stack trace if enabled at compile time
* chore(DNSSD): remove binaries from git
* fix(Trace): build
* chore(ci): exclude exception text tests for trace build; add debug test script params
* chore(build): mac (dl)
* chore(cmake): Changes to build Trace with CMake.
* chore(cmake): Changes to build Trace on Windows
* chore(cmake): Improvements to include trace sample.
* chore(cmake): Fixes to properly build/link Trace on Linux
* chore(cmake): add_definitions --> add_compile_definitions
* chore(cmake): Build Trace as static and don't export it.
* chore(make): Link Trace with built-in libbacktrace on Linux
* chore(Trace): remove unnecessary sources for libbacktrace.
* chore(github): enable trace on a few github checks
* chore(cmake): Build Trace with clang++ on Linux.
* chore(cmake): Properly set POCO_ENABLE_TRACE globally when needed.
* fix(cmake): Trace: corrected include for clang on Linux
---------
Co-authored-by: Matej Kenda <matejken@gmail.com>
* make Poco::ActiveThreadPool easy to use (#4544)
* code format
* Fix ThreadSanitizer thread leak error
* enh(ActivePooledThread): Change pointers to references
* enh(ActivePooledThread): remove unused method
* enh(Poco::ActiveThreadPool): Use std::unique_ptr instead of raw pointer
* enh(Poco::ActiveThreadPool): Use C++ static_cast instead of C casting
* enh(Poco::ActiveThreadPool): Use standard containers instead of implementing own
* enh(Poco::ActiveThreadPool): Change pointer to reference
* enh(Poco::ActiveThreadPool): Use smart pointers instead of bare pointers
* enh(Poco::ActiveThreadPool): Fix codeql warning: A stack address which arrived via a may be assigned to a non-local variable.
* enh(Poco::ActiveThreadPool): More test case
* enh(Poco::ActiveThreadPool): std::optional::value unavailable on earlier macOS versions
* enh(Poco::ActiveThreadPool): Fix compare function for make heap
* enh(Poco::ActiveThreadPool): Add more test case
* enh(Poco::ActiveThreadPool): Add more test case
* enh(Poco::ActiveThreadPool): Code style
* enh(Poco::ActiveThreadPool): Test case
* enh(Poco::ActiveThreadPool): Test case
* enh(Poco::ActiveThreadPool): Fix test case error
* Revert "enh(Poco::ActiveThreadPool): std::optional::value unavailable on earlier macOS versions"
This reverts commit cba4673b47.
* enh(macOS): require min deployment macOS version 10.15 which has full support for C++17
* enh(Poco::ActiveThreadPool): Remove useless "{}"
* enh(Poco::ActiveThreadPool): Rename member variable m_impl to _impl
---------
Co-authored-by: Matej Kenda <matejken@gmail.com>
* feat(format): Add string_view format type spec #4409
* chore(Types): add demangle
* fix(Data): Oracle failing ODBC tests #4368
* fix some CQL and fuzz warnings; add Var::typeName()
* fix(build): -std=c++17 and c11
* fix windows build
* fix(Foundation): test apps vs projects c++17
* chore(build): remove uneeded compiler flag
* fix(VarHolder): number of digits range check for int->float conversion (reported by CIFuzz)
* fix(test): CIFuzz
* fix(CIFuzz): another attempt
* fix(progen): add LanguageStandard (stdcpp17, stdc11); regenerate vs170 projects
* fix(CiFuzz): add int->float precision loss barrier; fix erroneous number of digits logic
* enh(Var): silent loss of precision on int->float conversion #4423
* enh(Var): silent loss of precision on int->float conversion #4423
* chore(build): remove old build files
* chore: fix missing parens warning
* enh(Thread_POSIX): prevent double-joining; add error description to exceptions
* fix(Data): unresolved Column<long> linkage in test
* fix(demangle): determine type name from template parameter; add eror diagnostic for demangling failures
* chore(buildwin): remove old vs versions from build and progen scripts; update documentation
* chore(buildwin): remove leftover closing curly
* fix(ActiveRecord): missing ActiveRecordLib_API definitions for clang/gcc.
* fix(FPEnvironment): export FPEnvironmentImpl classes (#4393, #3331)
* fix(Crypto): export *Impl classes used from inlines (#4393, #3331)
* fix(Dynamic): explicitly instantiate and export Dynamic::Struct for string and int (-fvisibility=hidden) (#4393, #3331)
* fix(JSON): explicitly instantiate and export SharedPtr for JSON::Array and JSON::Object (-fvisibility=hidden) (#4393, #3331)
* enh(CMake): Set symbol visibility to hidden (#4393, #3331)
* enh(configure): user c++17 standard for iphone, Darwin and ARM-Linux.
* fix(UTF): explicitly instantiate and export 16 and 32-bit strings (-fvisibility=hidden) (#4393, #3331)
* fix(RecordSet): make Extraction.h internal and instantiate RecordsSet::column template functions only for supported types. (-fvisibility=hidden) (#4393, #3331)
* fix(UTF): fix explicitly instantiation on Windows (-fvisibility=hidden) (#4393, #3331)
* enh(CMake): Add github jobs for macOS with visibility set to hidden (#4393, #3331)
* fix(CppParser): Add missing declarations for CppParser_API (#4393, #3331)
* enh(CMake): Enable more options in github jobs for macOS with visibility set to hidden (#4393, #3331)
* fix(MongoDB): Add missing MongoDB_API (#4393, #3331)
* add sendfile method for streamsocket
* add mswsock.lib to the project files and templates
* remove /DPOCO_NO_AUTOMATIC_LIBS for cmake windows build
* merge from upstream
* merge from upstream
* fix code stile
add NotImplemented exception for unsupported platforms
exculude <sys/sendfile.h> for POCO_EMSCRIPTEN, because https://
github.com/emscripten-core/emscripten/pull/16234
* add iostream include for std::cout
* fix compilation for emscripten (wrap sendfile)
* fix shellcheck warnings; add some ci ignore test entries
* fix(make): Redirect build stderr to a file #4112
* enh(dev): add vscode run script and launch items for tests
* As of C++11, std::swap is noexcept. #2386
* fix(Any): remove throw on swap
* fix(Any): As of C++11, std::swap is noexcept. #2386
* fix(Any): make size const #2386
* fix(SimpleRowFormatter): clang won't compile noexcept #2386
* a couple of arm fixes
* fix(Any): As of C++11, std::swap is noexcept. #2386
* fix(AnyTest): local() for POCO_NO_SOO# 2386
* test(RSACipher): RSA encryption without private key #2367
* chore(RSACipherTest): delete ciphers #2367
* updated README.md
* Create close-inactive-issues.yml
* Add --ldflags configure option
Add --ldflags configure option to allow the user to provide additional
flags to the linker such as -latomic. This will avoid the following
build failure with ActiveRecord on sparc v8:
/home/peko/autobuild/instance-1/output-1/host/opt/ext-toolchain/bin/../lib/gcc/sparc-buildroot-linux-uclibc/10.3.0/../../../../sparc-buildroot-linux-uclibc/bin/ld: /home/peko/autobuild/instance-1/output-1/build/poco-1.11.1/ActiveRecord/Compiler/obj/Linux/sparc/release_shared/Compiler.o: in function `Poco::RefCountedObject::release() const':
Compiler.cpp:(.text._ZNK4Poco16RefCountedObject7releaseEv[_ZNK4Poco16RefCountedObject7releaseEv]+0xc): undefined reference to `__atomic_fetch_sub_4'
Fixes:
- http://autobuild.buildroot.org/results/b01/b014d6fcb8fdf28984d7ce606db2347b0265bc6a/build-end.log
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
Co-authored-by: Aleksandar Fabijanic <aleks-f@users.noreply.github.com>
* 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>