1791 Commits

Author SHA1 Message Date
Ben Wolsieffer
4b8f0a36a6 CMake: make utf8proc, PCRE2, zlib and expat private dependencies
In the unbundled build, utf8proc, PCRE2, zlib and expat were all
included as part of the CMake link interface, and therefore the CMake
config file required find_dependency() calls for each.

These libraries are internal implementation details of Poco and are not
exposed in any public API. Therefore, we can make them private
dependencies and avoid the find_dependency() calls and their associated
find scripts.
2025-05-12 08:23:45 +02:00
Matej Kenda
f437630085 enh(Environment): Windows: report strings for all PROCESSOR_ARCHITECTURE_* constants (#4928). 2025-05-11 18:44:13 +02:00
Günter Obiltschnig
0b782f3c2f chore: fix test failures when ran from a VS solution build 2025-03-28 19:29:00 +01:00
Günter Obiltschnig
2fb28fac49 chore: add clean target to trace Makefile 2025-03-25 08:46:56 +01:00
Aleksandar Fabijanic
4b093d8f89 fix(VarHolder): MSVC warning #4886 (#4903)
* fix(VarHolder): MSVC warning #4886

* fix(VarHolder): do not convert unsigned #4886

* chore(SocketImpl): eliminate MSVC warning

* fix(VarHolder): do not convert unsigned (extract unpreserveSign()) #4886

* chore(testsuite): eliminate MSVC warnings

* chore(VarHolder): simplify unpreserveSign using constexpr.

---------

Co-authored-by: Matej Kenda <matejken@gmail.com>
2025-03-20 12:35:48 +01:00
Matej Kenda
66399faafc Fix dynamic var conversion precision check (#4886) (#4894)
* Take the absolute value of the value in numValDigits to fix the precision loss check for negative values.

* fix(VarHolder): Correct numValDigits to properly convert to signed integer.

* Potential fix for code scanning alert no. 1075: Declaration hides variable

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

---------

Co-authored-by: Mias <mias@innoventix.co.za>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-03-11 13:30:50 +01:00
Günter Obiltschnig
4b52cc6b25 chore: branch for 1.14.2 2025-02-27 14:06:26 +01:00
Günter Obiltschnig
726a9b6349 doc: workaround for PocoDoc failure to parse Any.h 2025-02-14 17:15:29 +01:00
Matej Kenda
12d78aa68f chore(release): Update release and version files. 2025-02-11 15:39:04 +01:00
Günter Obiltschnig
529783952e enh(Foundation): Windows Eventviewer not able to find PocoFoundation DLL #3304 2025-02-11 12:34:19 +01:00
Matej Kenda
f155ba3957 fix(cmake): Add back missing compiler definitions for static_build in the generated CMake files 2025-02-10 08:32:54 +01:00
Günter Obiltschnig
0ec643a0a8 fix(Foundation): Poco::icompare(str, pos, ptr) out of bounds error if pos > str.size() #4866 2025-02-10 08:32:26 +01:00
Matej Kenda
eeb31fa1d0 fix(Foundation): detection of CXXABI is based on presence of the header file, simplify conditions. 2025-02-07 12:18:01 +01:00
Matej Kenda
b28b3c719c fix(NumberParser): tryParseHex shall not throw, but return boolean 2025-02-04 12:32:03 +01:00
Matej Kenda
674e2bae97 fix(templates): Corrected explicit template instantiations to avoid multiple instances. 2025-01-14 15:13:49 +01:00
Matej Kenda
af36c9badf fix(Any): Modifications to fix OSS Fuzz report (#4818)
Changes triggered by the OSS Fuzz report: https://issues.oss-fuzz.com/issues/42538385?pli=1

* fix(Any): set pHolder to nullptr in destruct()

* enh(Any): modernised source code.

* enh(Any): introduce allocation type (empty, local, external).

* chore(Any): Apply suggestions from code review.
2025-01-08 17:01:54 +01:00
Matej Kenda
3971ad2b00 fix(CMake): Select MSVC runtime library with variable CMAKE_MSVC_RUNTIME_LIBRARY (fixes #4817) (#4823)
* fix(CMake): Select MSVC runtime library with variable CMAKE_MSVC_RUNTIME_LIBRARY instead of modifying compiler flags.

* enh(CI): Add static and MT MSVC builds.

* fix(CMake): Correct TestLibrary DLL name when building with MSVC
2024-12-27 12:49:07 +01:00
Matej Kenda
b5873caae5 CMake: fix for missing utf8proc with unbundled build, resolves #4798 (#4816)
* fix(cmake): Add missing install and find dependency for utf8proc in unbundled build.

* chore(gitignore): Corrected path to Qt creator generated build files.
2024-12-11 16:19:33 +01:00
Alex Fabijanic
eabfbf14b0 fix(cmake): remove libatomic dependency 2024-12-11 16:14:46 +01:00
Günter Obiltschnig
c55fccaf5a chore: bump version 2024-12-01 21:24:20 +01:00
nyashbox
16c267dc47
test(ByteOrder): add 8-bit integer tests 2024-11-30 21:18:40 +02:00
nyashbox
212aa073be
fix(ByteOrder): correctly process 8-bit integers 2024-11-30 21:15:36 +02:00
Günter Obiltschnig
e732c50f96 enh: added Poco::ResourceLimitException 2024-11-28 08:32:22 +01:00
Günter Obiltschnig
cecccf7b74 enh(Foundation): add Poco::Process::timesMicroseconds() 2024-11-21 08:50:49 +01:00
Matej Kenda
52959b91da
DB logger sample (#4759)
* sample(DBLogger): New sample to demonstrate DB logging to a file. (#4750)

* sample(DBLogger): Create messages via SQL logger in a thread (#4750)

* sample(DBLogger): Save messages from SQL files to an SQL database (works with SQLite) (#4750)

* chore(Makefile): Data samples depend on PocoUtil (#4750)

* sample(DBLogger): Refactored DBLogger with std::filesystem::directory_iterator and std::thread.

* sample(DBLogger): Add missing include <condition_variable>

* sample(DBLogger): Extracted log scanning and inserting functionality to class SQLLogInserter.

* sample(DBLogger): Create new logging table only when using demo messages option.

* feat(DBLogger): VS projects

* sample(DBLogger): Acquire options from configuration file.

* feat(DBLogger): regenerate VS projects (progen file change)

* sample(DBLogger): Add example DBLogger.properties file.

* sample(DBLogger): Process as much as possible when stopping processing.

* sample(DBLogger): Meaningful defaults in properties file.

* sample(DBLogger): Verify validity of database session on startup.

* sample(DBLogger): Configure demo SQL channel in properties file.

* chore(DBLogger): style and warnings

---------

Co-authored-by: Aleksandar Fabijanic <aleks-f@users.noreply.github.com>
Co-authored-by: Alex Fabijanic <alex@pocoproject.org>
2024-11-18 17:06:20 +01:00
Matej Kenda
cb91880bfb fix(cmake): properly define POCO_DLL and POCO_STATIC based on BUILD_SHARED_LIBS. 2024-11-14 08:14:08 +01:00
Aleksandar Fabijanic
9530a77347
Insert NULL using BULK #4001 (#4755)
* fix(ODBC): Insert NULL using BULK #4001
resolve bound types and sizes at compile time

* fix: remove string suffix for static_assert

* Insert NULL using BULK #4001

* fix: typo

* fix(SQLite): missing functions; consolidate extract calls

* chore(SQLite): remove unnecessary typedef

* fix(SQLite): remove duplicate functions

* fix(SQLite): compile errors and warnings

* fix(SQLite): extract implementation signatures

* fix(SQLite): long64 platforms compile errors

* fix(SQLite): long64 platforms compile errors, part ii

* fix(ODBC): windows build

* fix(ODBC): MSSQL big string on windows

* fix(Data): psql and mysql compile errors

* fix(PostgreSQL): add missing functions

* fix(ODBC): revert column size discovery (breaks Oracle)

* fix(PostgreSQL): Nullable extraction #4001

* fix(MySQL): Nullable extraction #4001

* chore(Data): code tidy up

* fix(ODBC): add missing changes
2024-11-11 18:23:21 +01:00
nitram96
6dadf9adc5
Activity now sets _running flag to false when it finishes (#4748)
Activity _running flag is now set to false when the activity finishes or throws, previously it was only set if wait had been called. Added test for this scenario
2024-10-30 16:59:08 +01:00
Eric Eichhorn
82c17ea813 fix: aix build #4742 2024-10-23 13:51:06 +02:00
Matej Kenda
c735162abc
fix(NamedEvent): Release semaphore ID in dtor when created with semget (fixes #2971) (#4357)
* fix(NamedEvent): Release semaphore ID in dtor when created with semget (#2971)

* Temporary: trying to solve for non-Linux semaphores.

* chore(NamedEvent): Cleanup of Posix NamedEvent and fixes of unit test.
2024-10-20 10:05:50 +02:00
Aleksandar Fabijanic
e5752a5c6d
File lock (#4734)
* add RWLock implementation for file [posix]

* add implementation FileStreamRWLock for windows
replace FileStreamRWLock to the Process package

* add files FileStreamRWLock* into makefile and vcproj

* remove unnecessary file from makefile

* use absolute path to the TesApp with ProcessRunner

* fix vc*.proj

* add new test files into vc.proj.filters

* fix comments

* fix spelling fo PR #4723
add atomic_bool _locked and check if FileStreamRWLock is locked on
destruction for force unlock

* add atomic header

* File lock (#4740)

* throw error on any errno not only on EDEADLK

* fix function naming

* fix windows build

* fix windows build

---------

Co-authored-by: Alexander B <ale.bychuk@gmail.com>
Co-authored-by: bas524 <bas524@ya.ru>
2024-10-16 23:58:00 +02:00
Aleksandar Fabijanic
71a085c1dc
chore(JSON): add stringify unicode tests #4707 (#4720)
* chore(JSON): add stringify unicode tests #4707

* enh(Mutex): Error code for pthread_mutex_lock failure #4712
2024-10-14 13:48:45 +02:00
Aleksandar Fabijanic
8e958f685f
2808 data nullable (#4729)
* chore(CppUnit): disable MSVC secure warning

* chore(Data): regenerate VS projects

* chore(DataTest): regenerate VS projects

* chore(Data/testsuite): regenerate VS projects

* chore(DataTest): fix VS90 project

* fix(ODBC): Failed to insert Poco::Nullable< Poco::Data::Date> data into MSSQL using ODBC #2808

* chore(Foundation): add Trace to VS project

* chore(Trace): add Trace VS projects #4692

* fix: g++ and clang build #2808
2024-10-12 20:42:39 +02:00
tyler92
aa0faed54f
test: move fuzzing tests from google/oss-fuzz repository (#4719) 2024-10-10 13:30:10 +02:00
Matej Kenda
c038b52f36 chore(Poco): Resolve a lot of warnings, reported by g++ 13. 2024-10-10 10:41:24 +02:00
Aleksandar Fabijanic
eaabd3ff8d
Stack trace (#4691)
* 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>
2024-10-10 10:36:13 +02:00
Matej Kenda
a1efeaa72d
GitHub runner ubuntu 24.04 and resolve some issues (#4727) 2024-10-09 21:53:49 +02:00
Günter Obiltschnig
a3cb7cc4b2 chore: remote unused getNode() declaration 2024-10-07 13:08:30 +02:00
Matej Kenda
3c01eec7cf fix(Exception): static assert to make sure that _HAS_EXCEPTIONS is set (#4668). 2024-10-04 13:01:29 +02:00
Matej Kenda
aab4058bae
Hide zlib and expat libs from the user of Poco libraries (replaces #4579) (#4724)
* foundation: Remove unused ucp.h

Nothing use this and it is not even included in Visual Studio project
files. Remove it so it will not confuse any more.

* foundation: Hide zlib from user

Hide zlib completly from user. This way we do not need to publish zlib.h
or zconfig.h.

As we now have two different pointer initalizing in constructor I choose
to use unique pointers so it is more obvious those are safe. I also
choose to use make_unique which default initalize z_stream_t. This makes
code more readable as we do not need to specifie every field of
z_stream_t. It really should not matter much if we initialize couple
field for nothing. If does we should add comment about that. Still
keeping _buffer without inializing as it is quite big.

* xml: Hide expat and ParserEngine from user

Hide expat completly from user. This way we do not need to publish
expat.h or expat_external.h.

I move also headers to orignal locations so diff is smaller compared to
original.

* chore(Foundation): Compression level constants

---------

Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
2024-10-04 09:50:39 +02:00
Aleksandar Fabijanic
af3b3b1902
Poco::DateTime uses assertions for validation #1540 (#4640)
* Poco::DateTime uses assertions for validation #1540

* fix(DateTime): fix ASAN buf overflow

* fix(DateTime): allow negative year (TODO: 0 Julian day Gregorian year value)
2024-10-03 10:58:13 +02:00
vfjpl
64c751f3a3
Add missing relational operators to VarIterator (#4714)
* Add missing relational operators to VarIterator

* Add tests for relational operators of VarIterator
2024-10-03 10:52:45 +02:00
Matej Kenda
f3975eba96
pcre2: Version 10.44 (#4478) (#4678)
* update(pcre2): Version 10.44 (#4478)

* update(pcre2): Add new file to VS project files (version 10.44) (#4478)

* fix(RegEx): Use generic pcre2 function names (without suffix _8).

* update(pcre2): Fix configuration (define PCRE2_STATIC) (#4478)
2024-10-03 10:49:27 +02:00
Günter Obiltschnig
04fe04e3a4 chore: add test case for replaceInPlace() 2024-09-28 12:05:08 +02:00
Günter Obiltschnig
0300b42dbc enh: respect POCO_NO_WSTRING in String.h 2024-09-28 11:51:04 +02:00
Günter Obiltschnig
a5d6034ab9 fix: replaceInPlace() std::wstring #4713 2024-09-28 11:38:35 +02:00
Günter Obiltschnig
32bf4e6368 chore: update VS project files for JSONFormatter 2024-09-27 21:12:32 +02:00
Günter Obiltschnig
91b9ae8f29 feat(Foundation): added JSONFormatter, supporting JSON-formatted logging 2024-09-27 20:58:05 +02:00
Guenter Obiltschnig
970c8108b7 fix: unbundled build for utf8proc 2024-09-27 14:16:40 +02:00
Günter Obiltschnig
3d0b9d7338 chore: remove unneeded iostreams header 2024-09-27 13:53:56 +02:00