Commit Graph

5321 Commits

Author SHA1 Message Date
Aleksandar Fabijanic
d8611a5f1c
Change CI to macos11 and comment other jobs (#3761)
* Change CI to macos11
2022-08-19 08:23:44 -05:00
Francis ANDRE
5c612d80a7 Error C2664: unable to convert the argument 1 from 'const EVP_PKEY *' to 'EVP_PKEY *'
Signed-off-by: Francis ANDRE <francis.andre.kampbell@orange.fr>
2022-08-19 07:38:22 +02:00
haorui wang
a41d802ccd
fix(CppUint) : RepeatedTest compile error (#3759)
* chore(CppUnit) : style format and revise comment

fix(CppUnit) : RepeatedTest compile error

* chore(CppUnit) : remove TestResult forward declare in RepeatedTest.h
2022-08-18 11:37:35 -05:00
Alex Fabijanic
c252b744f6 fix(ODBC): bindImplLOB zero size (or NULL) HY104 'Invalid precision value' #3744 2022-08-18 08:39:23 +02:00
Kevin Dick
f02088d218
buildwin.ps1 script error building the x64 version of Poco (#3749)
buildwin.ps1 failed to build x64 #3740

If build x64 the scripts looks for the _x64.vcproj Files which no longer exists. By removing this the Build is possible.
If only the Build Tools for Visual Studio are available the script does not run because those are not recognized by the Select-VSSetupInstance Script.
Adding the parameter `-product *` also recognizes the Build Tools.

* Removed unused Parameter `platformName`

* Added New CI targets for building poco with the buildwin.ps1 script

Co-authored-by: Jan Kevin Dick <Jan.Dick@de.bosch.com>
Co-authored-by: Aleksandar Fabijanic <aleks-f@users.noreply.github.com>
2022-08-18 00:58:58 -05:00
Hernan Martinez
a7ffdb91eb
Fix optional JSON support for MySQL (#3753)
* Fix optional JSON support for MySQL

* Fix optional JSON support for MySQLTest
2022-08-16 23:07:25 -05:00
haorui wang
22d2865de2
chore(Foundation) : correct spelling (#3750) 2022-08-14 07:39:03 -05:00
Alex Fabijanic
46d5d58bc8 chore: 1.12.3 version 2022-08-10 15:32:29 +02:00
Alex Fabijanic
59eac3f38f feat: add SocketBufVecSize function 2022-08-10 14:11:25 +02:00
Alex Fabijanic
2006327198 fix(Event): Poco EventImpl for Win32 breaks INFINITE wait #3737 2022-08-10 14:10:12 +02:00
Alex Fabijanic
d6f38dba05 release 1.12.2 2022-08-07 12:07:03 +02:00
Alex Fabijanic
4f5f30936b chore: 1.12.2 versions and notes 2022-08-07 11:54:22 +02:00
Alex Fabijanic
d7ced77529 release 1.12.1 2022-08-07 11:52:21 +02:00
Alex Fabijanic
78b87b48e0 fix(CI): skip MySQL tests for c++20 2022-08-07 07:19:40 +02:00
Alex Fabijanic
437fa66892 core(CI): add c++20 2022-08-06 23:22:01 +02:00
Alex Fabijanic
dbb7b5f8e2 fix: g++ C++20 warnings #3734 2022-08-06 22:28:45 +02:00
Alex Fabijanic
42b6d3ace4 fix(format): Poco::format and C++20 #3733 2022-08-06 22:24:41 +02:00
Alex Fabijanic
cedb34d3c3 fix(Platform): LoongArch support #3460 2022-08-02 18:19:40 +02:00
Uilian Ries
92152c8796
Add how to install using Conan section on README (#3727)
Signed-off-by: Uilian Ries <uilianries@gmail.com>
2022-08-01 07:42:12 -05:00
Hernan Martinez
0a9a521efe
Crypto: Progen again to add new files and bring back ARM64 configuration (#3724)
* Progen Crypto to re-add ARM64

* Add new files
2022-08-01 01:42:45 -05:00
Alex Fabijanic
ec1fa5aaf0 fix(Crypto): fails to build with Visual Studio projects #3721 2022-07-29 05:28:26 -04:00
Byungjun Lee
90e3a2907f
Added missing Crypto Header to ProGen source (#3722) 2022-07-29 04:19:31 -05:00
Byungjun Lee
004f906784
Update max MSVC version information (#3720)
add visual studio 2022 support
2022-07-29 01:01:40 -05:00
Alex Fabijanic
b134696343 fix(MSVC): PocoNet Project File does not support Visual Studio 2022 #3719 2022-07-28 17:57:06 -04:00
Hernan Martinez
0f63862059
Only support extracting JSON fields when the SDK supports it (#3717)
* Added preprocessor defined to detect support for JSON

* Only support extracting JSON fields when the SDK supports it

* Fix version comparison
2022-07-27 15:23:34 -05:00
Alex Fabijanic
459f1ea19c chore(Net): fix some warnings and tests 2022-07-27 16:21:55 -04:00
Alex Fabijanic
10dfe9fe92 fix(SpinlockMutex): VS2022 compilation issues #3693 2022-07-27 16:19:06 -04:00
Alex Fabijanic
3a39fa5319 fix(PollSet): Compiling with clang_cl_x64_x64 on Visual Studio 2022 failed #3716 2022-07-27 16:15:42 -04:00
Aleksandar Fabijanic
86a4f0045e
Fix/posix sleep (#3705)
* fix(Thread_POSIX): sleep() poor performance #3703

* chore(vscode): add file associations

* fix(TaskManager): waits for all threads in the ThreadPool #3704

* fix(Thread): call std::this_thread::sleep_for() to sleep #3703

* fix(PollSet): wakeup fd is never read #3708

* feat(Thread): Add Thread::set/getAffinity() #3709

* doc(Thread): Thread::trySleep() assertion #3710

* fix(PollSet): wakeup fd is never read (windows portion and some other optimizations) #3708

* feat(SocketReactor): improvements #3713

* chore(ThreadTest): add missing include

* fix(PollSet): wakeup fd is never read #3708

* fix(Any): #3682 #3683 #3692 #3712

* fix(mingw): lowercase winsock2 and iphlpapi to allow cross compile #3711

* feat(Thread): Add Thread::set/getAffinity() #3709

* chore(SocketReactor): one-liners inlined, removed redundant try/catch in dospatch, remove unused onBusy()

* feat(SocketReactor): add socket to ErrorNotification

* fix(SocketReactor): pollTimeout assignment and ConnectorTest leak
2022-07-26 06:54:56 -05:00
Alex Fabijanic
d1b398ddc6 Merge branch 'devel' of https://github.com/pocoproject/poco into devel 2022-07-20 13:47:55 +02:00
Alex Fabijanic
7989d961d6 feat(SocketReactor): post ErrorNotification on exception #3702 2022-07-20 13:47:03 +02:00
Alex Fabijanic
652f79319c fix(SocketReactor): Remove not useful handlers calls #3701 2022-07-20 12:31:26 +02:00
Günter Obiltschnig
852ef63bdd #3700: Release script must include build_vs170.cmd 2022-07-20 12:26:26 +02:00
Alex Fabijanic
05598faab8 fix(OpenSSLInitializer): SIGABRT in OSSL_PROVIDER_unload with static OpenSSL3 #3698 2022-07-19 18:03:14 +02:00
Alex Fabijanic
d9ea0f5d75 fix(Event): POSIX Event state need not be atomic #3699 2022-07-19 17:58:13 +02:00
Alex Fabijanic
0817b256b5 fix(): Linking Crypto-testrunner fails #3688 2022-07-18 13:05:51 +02:00
Alex Fabijanic
081563abb3 chore(CMake): add databases to the printout list 2022-07-18 13:04:57 +02:00
Rosen Penev
a93be3ed1c
fix compilation without deprecated OpenSSL APIs (#3690)
Missing headers and function.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2022-07-18 05:58:22 -05:00
JackyWoo
1d28d2d42d
set thread name (#3664)
* set thread name

* fix dead lock

* fix code style & return fake name

* fix code style

* fix code style

Co-authored-by: Aleksandar Fabijanic <aleks-f@users.noreply.github.com>
2022-07-18 05:21:33 -05:00
junwufan
2a36359bc7
Update Var.h (#3684)
Add `Poco` namespace for `format` function, because it conficts with std::format.
2022-07-14 08:09:44 -05:00
Alex Fabijanic
c976c32e52 fix(OpenSSLInitializer): remove providers unitialization #3562 #3567 2022-07-13 12:53:52 +02:00
Alex Fabijanic
f049898c8b fix(cmake): PocoFoundationConfig.cmake should now check for PCRE2 #3677 2022-07-09 19:13:04 +02:00
Alex Fabijanic
050ed1dd1b Merge branch 'poco-1.12.0' into devel 2022-07-09 19:00:39 +02:00
Aleksandar Fabijanic
85e8b89061
Release 1.12.0 (#3676)
* updated README.md

* Create close-inactive-issues.yml

* PocoDoc: fix iframe sandboxing

* create poco-1.11.3 branch, bump version

* update copyright date

* #3567: check legacy provider existence for legacy exception #3567

* fix(OpenSSLInitializer): unload provider on uninitialize (#3567)

* fix(OpenSSLInitializer): fix provider unloading (#3567)

* fix(OpenSSLInitializer): revert unload provider on uninitialize (#3567)

* fix(MySQL): MySQL UUID binding temporary string #3587

* update CI link in README.md

* #3632: add overloads to ctor and connect() to allow passing a Poco::Net::StreamSocket/Poco::Net::SecureStreamSocket to enable TLS connections without introduding a direct dependency to NetSSL.

* updated changelog

* devel-release-1.12.0 (#3673)

* Fix percent-encoded fragment modification in Poco::URI

Before this commit using Poco::URI class to parse specific URIs that had
percent-encoded fragment identifier resulted in the loss of information
concerning the way the fragment identifier was encoded. There could be the cases
when the  result of Poco::URI object serialization to string did not match the
original URI string Poco::URI object was created from.

In this commit we change the internal logic of fragment processing in Poco::URI,
so that the fragment is stored inside the class in raw form (the same way as
query string). The methods getFragment and setFragment work the old way (with
percent-decoded fragment values), new methods getRawFragment and setRawFragment
are added to get access to the original fragment representation.

* Remove SDK version from VS2022 test projects (#3607)

* Remaining changes for Windows on ARM64 support (#3608)

* Add ARM64 to Foundation

* Changed lib, and bin folders of ARM64 builds

* Updated buildwin.cmd

* Added missing closing </File> tags (#3610)

* feat(Platform): LoongArch support #3460

* fix(PollSet): default enable epoll on linux

* default disable new state on move

* fix(UDPHandler): data race #3613; clean up all Net tsan warnings

* ProGen vs170 projects with Win32,x64,ARM64 (#3612)

* fix(TCPServer): #1884 #1965

* fix(LogFile): LogFile_STD (LogFileImpl) fails to recover from getting out of space #2084

* Avoid clang 10 -Wimplicit-int-float-conversion warning/error when converting int into float (#2943)

Example of warning (error when using -Werror) we get with clang 10:

/remote/intdeliv/components/osp/Poco/Foundation/19-0-0-6/include/Poco/Dynamic/VarHolder.h:444:14: error: implicit conversion from 'int' to 'float' changes value from 2147483647 to 2147483648 [-Werror,-Wimplicit-int-float-conversion]
                if (from > std::numeric_limits<T>::max())
                         ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/remote/intdeliv/components/osp/Poco/Foundation/19-0-0-6/include/Poco/Dynamic/VarHolder.h:332:4: note: in instantiation of function template specialization 'Poco::Dynamic::VarHolder::checkUpperLimitFloat<float, int>' requested here
                        checkUpperLimitFloat<F,T>(from);
                        ^
/remote/intdeliv/components/osp/Poco/Foundation/19-0-0-6/include/Poco/Dynamic/VarHolder.h:2175:3: note: in instantiation of function template specialization 'Poco::Dynamic::VarHolder::convertToSmaller<float, int>' requested here
                convertToSmaller(_val, val);
                ^

* chore(ci): run ci on pull requests

* #2569: Added TIMESTAMP data type support on MySQL (#3471)

* Unit test for TIMESTAMP data type in MySQL.

* Added support for TIMESTAMP data type.

Co-authored-by: Hector Toledo Soto <hsoto@transperfect.com>

* MongoDB::Array: int --> size_t in get for consistency with size(), new helper functions to add elements to an array. (#3016)

* fix(CppUnit): enable_if disarm numeric notEqualsMessage

* fix(CppUnit): CppUnit notEqualsMessage causing compile errors #3615

* Syslog: Include Facility to Syslog Message (#3452)

* Fixed indentation

* Added Facility to Message in RemoteSyslogListener

* Net: make MessageHeader limits configurable (#3404)

* Add Message::getAll (#3104)

* chore(Message): fix formatting for #3104

* Output to stderr in Poco::WindowsConsoleChannel (#3058)

- Fixes #3056

* HTTPDigestCredentials added support for RFC7616 algorithms (#3026)

* chore(SHA2Engine): fix formatting for #3026

* Added support for SQLite transaction types using Session property (#3018)

* chore(SQLite): fix enum names case for #3018

* fix(HTTPResponse): Add 425 / HTTP_TOO_EARLY to HTTPResponse::HTTPStatus #3592

* fix(SQLite): windows build (global var does not link) #3018

* Added missing SocketProactor class to ProGen source (#3616)

* Added missing SocketProactor class to ProGen source

* ProGen'd VS2022 Net project

* chore(Net): regenerate VS 140,150,160 projects #3614

* Handle MariaDB JSON columns since they are stored as `longtext` (#3621)

* Also extract BLOBs when reading longtext columns as std::string

* Fix error message in unit test

* Added unit test to read longtext columns as std::string

* Use `tx_isolation` when connected to MariaDB regardless of version (#3622)

* Use `tx_isolation` when connected to MariaDB regardless of version

* Rename variable

* Handle MariaDB server info in the middle of the string

* Updated to PCRE version 8.45  (#3623)

* Add missing changes from zlib update

* Updated to PCRE version 8.45

Build on Win32 and Linux, RegularExpressionTest was successful

* Fix/tsan (#3617)

* fix(Foundation): tsan warnings fixes

* fix(Thread_POSIX): tsan warnings fixes; add tsan.suppress

* fix(Util): tsan fixes

* fix(netSSL_OpenSSL): tsan fixes

* fix(Data): tsan warnings fixes

* feat(ci): add tsan job

* feat(ci): add tsan job, another attempt

* feat(ci): add tsan job, 3rd attempt

* fix(Foundation): tsan warnings fixes

* fix(Thread_POSIX): tsan warnings fixes; add tsan.suppress

* fix(Util): tsan fixes

* fix(netSSL_OpenSSL): tsan fixes

* fix(Data): tsan warnings fixes

* feat(ci): add tsan job

* feat(ci): add tsan job, another attempt

* feat(ci): add tsan job, 3rd attempt

* fix(ResultMetadata): memory leak #3474

* feat(ci): disable ActiveDispatcher tests for tsan runs

* feat(ci): try to fix tsan options file detection (again)

* chore(TestLibrary: correct spelling

* fix(ci): fix tsan run; add -y to apt; disable samples build for some jobs

* fix(ci): add mysql ports

* feat(ci): add VS asan

* feat(double-conversion): Upgrade double-conversion to v3.2.0 #3624

* chore(asan): disable msvc asan build (dll not found)

* chore(double-conversion): move NumericString.h before double-conversion includes to prevent min/max collision; reinstate lost loongarch64

* chore(JSON): sync pdjson with upstream

* fix(Statement): Poco::Data::Statement becomes unusable after exception #2287

* added facility to SyslogChannel (#3453)

* TCPServerDispatcher.h: missing <atomic> (#2961)

Fixes: b8af168151fe0147fb06557029002ae226dcc549
Fixes: #1965

* Windows embedded OpenSSL: Fixed bogus warning during compilation (External OpenSSL defined but internal headers used - possible mismatch!) (#3627)

* fix(double-conversion): nios2 and riscv defines

* fix(double-conversion): riscv defines

* fix(cmake): TestLibrary debug postfix

* fix(cmake): add WebNotifier to samples #3184

* doc(Crypto): Fix error in find_package example #3088

* fix(Event): Event data race #3629

* fix(AsyncChannel): race condition in AsyncChannel close/log #1039

* fix(Zip): Zip 64-bit extensions not set #2590 (tentative) (#3604)

* PocoDoc: fix handling of font-style tags if tag is immediately followed by punctuation

* Static code analyzer warnings #2688

* MinGW: fatal error: kernelspecs.h: No such file #2691

* Poco::Data::SessionPool change connection timeout #3241

* Makefile: space(s) following target name will break build (during link) #3062

* json format PrintHandler #2678

* indicate compiler that functions will never return (#3639)

* fix warning C4717: 'format<std::vector<std::any,std::allocatorstd::an… (#3640)

* fix warning C4717: 'format<std::vector<std::any,std::allocatorstd::any > >': recursive on all control paths, function will cause runtime stack overflow

* keep origin format.

* fix(format): scope

* fix(Crypto): libPocoCrypto.so: undefined reference to pthread_atfork when linking statically with OpenSSL 1.1 #3073

* chore(LocalConfigurationView): fix style #3529

* fix(ConfigurationView): ConfigurationView and JSON is broken for array access #3635

* FifoBuffer.advance method not throw exception when length==0 (#3641)

* fifobuffer not throw error when length = 0

* Update FIFOBuffer.h

fix indentation

Co-authored-by: Aleksandar Fabijanic <aleks-f@users.noreply.github.com>

* fix(URI): Decoding URI query parameters ( ::getQueryParameters) incompatible with Spring 5 #2619

* fix(NTPClient): NTPClient ignores second fractions #2614

* chore(JSON): add test for #2612

* fix(Platform): MinGW also defines __GNUC__. #3195

* Fix some clang 10 -Wsign-compare warnings (#2960)

In file included from /data/mwrep/res/osp/Poco/JSON/20-0-0-0/include/Poco/JSON/Object.h:22:
In file included from /data/mwrep/res/osp/Poco/JSON/20-0-0-0/include/Poco/JSON/Array.h:23:
In file included from /data/mwrep/res/osp/Poco/Foundation/20-0-0-0/include/Poco/Dynamic/Var.h:26:
In file included from /data/mwrep/res/osp/Poco/Foundation/20-0-0-0/include/Poco/Dynamic/VarHolder.h:22:
In file included from /data/mwrep/res/osp/Poco/Foundation/20-0-0-0/include/Poco/NumberFormatter.h:22:
/data/mwrep/res/osp/Poco/Foundation/20-0-0-0/include/Poco/NumericString.h:220:31: error: comparison of integers of different signs: 'unsigned long' and 'char' [-Werror,-Wsign-compare]
                                if ((limitCheck - result) < add) return false;
                                     ~~~~~~~~~~~~~~~~~~~  ^ ~~~
/data/mwrep/res/osp/Poco/Foundation/20-0-0-0/include/Poco/NumericString.h:229:31: error: comparison of integers of different signs: 'unsigned long' and 'char' [-Werror,-Wsign-compare]
                                if ((limitCheck - result) < add) return false;
                                     ~~~~~~~~~~~~~~~~~~~  ^ ~~~
/data/mwrep/res/osp/Poco/Foundation/20-0-0-0/include/Poco/NumericString.h:240:31: error: comparison of integers of different signs: 'unsigned long' and 'char' [-Werror,-Wsign-compare]
                                if ((limitCheck - result) < add) return false;
                                     ~~~~~~~~~~~~~~~~~~~  ^ ~~~
/data/mwrep/res/osp/Poco/Foundation/20-0-0-0/include/Poco/NumericString.h:249:31: error: comparison of integers of different signs: 'unsigned long' and 'char' [-Werror,-Wsign-compare]
                                if ((limitCheck - result) < add) return false;
                                     ~~~~~~~~~~~~~~~~~~~  ^ ~~~
4 errors generated.

* chore(README): Add vcpkg installation instructions #2940

* fix(SQLite): SQLite::Connector::open() crashes on db file with non existing directory #2285

* fix(MailMessage): read hangs on missing final multipart boundary #2401

* fix(NumberParser): Rounds very large negative numbers to the incorrect values #3580

* fix(JSON::Stringifier): JSON Serializing NAN #3251

* feat(Timespan): Add std::chrono support #2576 #2623

* fix(strToInt): overflows #3580

* fix(strToInt): thousand separator regression #3580

* fix(MySQL::Extractor): MySQL Extractor #2521

* feat(FTPClientSession): activeDataConnection 1.11.0 cannot set specific data port #3372

* feat(Cipher): No access to padding in Cipher #3374

* feat(TypeHandler): DB into() does not compile for more than 20 members in a tuple #3342

* fix(NumberFormatter): Negative precision in NumberFormatter::format() #2511

* Make ParallelSocketReactor thread namable (#3642)

make ParallelSocketReactor thread namable

* fix(Redis): Poco::Redis after executing auth command next command always return OK #2457

* chore(NumberParserTest): add test for #2441

* avoid clang tidy warning (#3646)

* Revert "avoid clang tidy warning (#3646)" (#3648)

This reverts commit b23488d6fe.

* fix(VarHolder): limits check

* As of C++11, std::swap is noexcept. #2386 (#3645)

* 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

* add separate accessors and mutators for connect, send and receive tim… (#3476)

* add separate accessors and mutators for connect, send and receive timeouts

* implement timeout methods outside of class declaration to conform to existing code structure

* Update HTTPSession.h

Co-authored-by: bfoster <bfoster@malwarebytes.com>
Co-authored-by: Aleksandar Fabijanic <aleks-f@users.noreply.github.com>

* Make poll set interruptable (#3644)

* Make poll set interruptable

* open test for poll set

* fix poll set wake up test

* fix build error

* feat(SecureSocketImpl): how to set the socket of SecureSocketImpl to no-blocking? #2352

* better socket reactor wake up (#3647)

* better socket reactor wake up

* Remove documentation comment from source file

Co-authored-by: Aleksandar Fabijanic <aleks-f@users.noreply.github.com>

* test(MailMesage): MailMessage::read() chokes on Content-disposition #3650

* chore(Net/samples): tcpserver missing from Net/samples/CMakeLists.txt #3651

* fix(CMake): Linking with Foundation on Android gives error #3652 #3653

* #2821: Poco::Buffer: full on creation? - add documentation describing the behavior.

* add note regarding receiveFrame with Poco::Buffer

* merge changes from 1.11.3

* #3633: Redis: Support Authentication

* #3658: Support for chunked transfer encoding trailer

* formatHex with lower case (#3657)

* feat(Socket): add lastErrorDesc()

* fix(Socket): Socket::select EPOLL implementation returns socket in exceptList when empty list is given #3655; mark select as deprecated #1459

* Fix/poll set race (#3630)

* fix(PollSet): PollSet data race #3628

* fix(SocketConnector): SocketConnector test #2875

* fix(PollSet): optimize the amount of locked code; fix and simplify wakeUp logic

* fix(SocketConnectorTest): fix test memleak (data not flowing, handlers not deleted) #2875

* fix(PollSet): clear() and tests

* fix(PollSet): #1459 #3628 #3655 #3661

* fix(PollSet): Integrate windows epoll #2091, #3649

* chore(ProGen): MSVC does not properly recognize std version #3665

* fix(PollSet): eventfd call arg; add wepoll to CMakelists.txt

* fix(PollSet): CMakelists.txt

* fix(cmake): MSVC does not properly recognize std version #3665

* chore(vscode): add mac config

* fix(PollSet): PollSet::add()/update() semantics #3661

* Feat/pcre2 (#3663)

* upgrade to pcre2

* use pcre2_*_8 names

* fix pcre2 lib name for unbundled build

* CMake changes for PCRE2

* add missing macro for unbundled build

* add PCRE2_STATIC

* updated VS project files for pcre2

Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>

* Revert "formatHex with lower case (#3657)" (#3670)

This reverts commit b1823b61c0.

* Always set thread names on POSIX platforms (#3384)

* chore: gitignore vim .swp files

* feat(POSIX): Always set thread names.

I'm not sure about the original intent to hide it under a DEBUG macro.

Naming the threads in release mode makes it easier to see runtime
application and know which thread pool uses how many threads and what
their names are. Firefox, Chromium and many other apps do this on Linux.

* Remove trailing whitespace (#3668)

* doc: update CHANGLEOG

Co-authored-by: Daniil Zotkin <zotkin@rutoken.ru>
Co-authored-by: Hernan Martinez <hernan.c.martinez@gmail.com>
Co-authored-by: Romain Geissler @ Amadeus <romain.geissler@amadeus.com>
Co-authored-by: hectots <monkey.instinct@gmail.com>
Co-authored-by: Hector Toledo Soto <hsoto@transperfect.com>
Co-authored-by: Matej Kenda <matejken@gmail.com>
Co-authored-by: BeBinder <93721965+BeBinder@users.noreply.github.com>
Co-authored-by: Tavi Cacina <tavi-cacina@users.noreply.github.com>
Co-authored-by: Mathieu Stefani <m.stefani@abc-arbitrage.com>
Co-authored-by: Fritz Elfert <fritz@fritz-elfert.de>
Co-authored-by: Maksim Kita <kitaetoya@gmail.com>
Co-authored-by: Spaky <Spaky@users.noreply.github.com>
Co-authored-by: Azat Khuzhin <a3at.mail@gmail.com>
Co-authored-by: Matej Kenda <matej.kenda@topit.si>
Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
Co-authored-by: Guillermo Frontera <gfrontera86@gmail.com>
Co-authored-by: junwufan <shelllet.com@gmail.com>
Co-authored-by: JackyWoo <wuchienchao@qq.com>
Co-authored-by: Ben Foster <bfoster7593@gmail.com>
Co-authored-by: bfoster <bfoster@malwarebytes.com>
Co-authored-by: Arun Chandrasekaran <arun@paravision.ai>
Co-authored-by: John Vandenberg <jayvdb@gmail.com>

Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
Co-authored-by: Daniil Zotkin <zotkin@rutoken.ru>
Co-authored-by: Hernan Martinez <hernan.c.martinez@gmail.com>
Co-authored-by: Romain Geissler @ Amadeus <romain.geissler@amadeus.com>
Co-authored-by: hectots <monkey.instinct@gmail.com>
Co-authored-by: Hector Toledo Soto <hsoto@transperfect.com>
Co-authored-by: Matej Kenda <matejken@gmail.com>
Co-authored-by: BeBinder <93721965+BeBinder@users.noreply.github.com>
Co-authored-by: Tavi Cacina <tavi-cacina@users.noreply.github.com>
Co-authored-by: Mathieu Stefani <m.stefani@abc-arbitrage.com>
Co-authored-by: Fritz Elfert <fritz@fritz-elfert.de>
Co-authored-by: Maksim Kita <kitaetoya@gmail.com>
Co-authored-by: Spaky <Spaky@users.noreply.github.com>
Co-authored-by: Azat Khuzhin <a3at.mail@gmail.com>
Co-authored-by: Matej Kenda <matej.kenda@topit.si>
Co-authored-by: Guillermo Frontera <gfrontera86@gmail.com>
Co-authored-by: junwufan <shelllet.com@gmail.com>
Co-authored-by: JackyWoo <wuchienchao@qq.com>
Co-authored-by: Ben Foster <bfoster7593@gmail.com>
Co-authored-by: bfoster <bfoster@malwarebytes.com>
Co-authored-by: Arun Chandrasekaran <arun@paravision.ai>
Co-authored-by: John Vandenberg <jayvdb@gmail.com>
2022-07-08 11:31:16 -05:00
Aleksandar Fabijanic
2fe2bfe839
Merge branch 'devel' into poco-1.12.0 2022-07-08 18:30:59 +02:00
Aleksandar Fabijanic
b9972ec244
Merge branch 'master' into poco-1.12.0 2022-07-08 17:40:47 +02:00
Aleksandar Fabijanic
f70101cb05
devel-release-1.12.0 (#3673)
* Fix percent-encoded fragment modification in Poco::URI

Before this commit using Poco::URI class to parse specific URIs that had
percent-encoded fragment identifier resulted in the loss of information
concerning the way the fragment identifier was encoded. There could be the cases
when the  result of Poco::URI object serialization to string did not match the
original URI string Poco::URI object was created from.

In this commit we change the internal logic of fragment processing in Poco::URI,
so that the fragment is stored inside the class in raw form (the same way as
query string). The methods getFragment and setFragment work the old way (with
percent-decoded fragment values), new methods getRawFragment and setRawFragment
are added to get access to the original fragment representation.

* Remove SDK version from VS2022 test projects (#3607)

* Remaining changes for Windows on ARM64 support (#3608)

* Add ARM64 to Foundation

* Changed lib, and bin folders of ARM64 builds

* Updated buildwin.cmd

* Added missing closing </File> tags (#3610)

* feat(Platform): LoongArch support #3460

* fix(PollSet): default enable epoll on linux

* default disable new state on move

* fix(UDPHandler): data race #3613; clean up all Net tsan warnings

* ProGen vs170 projects with Win32,x64,ARM64 (#3612)

* fix(TCPServer): #1884 #1965

* fix(LogFile): LogFile_STD (LogFileImpl) fails to recover from getting out of space #2084

* Avoid clang 10 -Wimplicit-int-float-conversion warning/error when converting int into float (#2943)

Example of warning (error when using -Werror) we get with clang 10:

/remote/intdeliv/components/osp/Poco/Foundation/19-0-0-6/include/Poco/Dynamic/VarHolder.h:444:14: error: implicit conversion from 'int' to 'float' changes value from 2147483647 to 2147483648 [-Werror,-Wimplicit-int-float-conversion]
                if (from > std::numeric_limits<T>::max())
                         ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/remote/intdeliv/components/osp/Poco/Foundation/19-0-0-6/include/Poco/Dynamic/VarHolder.h:332:4: note: in instantiation of function template specialization 'Poco::Dynamic::VarHolder::checkUpperLimitFloat<float, int>' requested here
                        checkUpperLimitFloat<F,T>(from);
                        ^
/remote/intdeliv/components/osp/Poco/Foundation/19-0-0-6/include/Poco/Dynamic/VarHolder.h:2175:3: note: in instantiation of function template specialization 'Poco::Dynamic::VarHolder::convertToSmaller<float, int>' requested here
                convertToSmaller(_val, val);
                ^

* chore(ci): run ci on pull requests

* #2569: Added TIMESTAMP data type support on MySQL (#3471)

* Unit test for TIMESTAMP data type in MySQL.

* Added support for TIMESTAMP data type.

Co-authored-by: Hector Toledo Soto <hsoto@transperfect.com>

* MongoDB::Array: int --> size_t in get for consistency with size(), new helper functions to add elements to an array. (#3016)

* fix(CppUnit): enable_if disarm numeric notEqualsMessage

* fix(CppUnit): CppUnit notEqualsMessage causing compile errors #3615

* Syslog: Include Facility to Syslog Message (#3452)

* Fixed indentation

* Added Facility to Message in RemoteSyslogListener

* Net: make MessageHeader limits configurable (#3404)

* Add Message::getAll (#3104)

* chore(Message): fix formatting for #3104

* Output to stderr in Poco::WindowsConsoleChannel (#3058)

- Fixes #3056

* HTTPDigestCredentials added support for RFC7616 algorithms (#3026)

* chore(SHA2Engine): fix formatting for #3026

* Added support for SQLite transaction types using Session property (#3018)

* chore(SQLite): fix enum names case for #3018

* fix(HTTPResponse): Add 425 / HTTP_TOO_EARLY to HTTPResponse::HTTPStatus #3592

* fix(SQLite): windows build (global var does not link) #3018

* Added missing SocketProactor class to ProGen source (#3616)

* Added missing SocketProactor class to ProGen source

* ProGen'd VS2022 Net project

* chore(Net): regenerate VS 140,150,160 projects #3614

* Handle MariaDB JSON columns since they are stored as `longtext` (#3621)

* Also extract BLOBs when reading longtext columns as std::string

* Fix error message in unit test

* Added unit test to read longtext columns as std::string

* Use `tx_isolation` when connected to MariaDB regardless of version (#3622)

* Use `tx_isolation` when connected to MariaDB regardless of version

* Rename variable

* Handle MariaDB server info in the middle of the string

* Updated to PCRE version 8.45  (#3623)

* Add missing changes from zlib update

* Updated to PCRE version 8.45

Build on Win32 and Linux, RegularExpressionTest was successful

* Fix/tsan (#3617)

* fix(Foundation): tsan warnings fixes

* fix(Thread_POSIX): tsan warnings fixes; add tsan.suppress

* fix(Util): tsan fixes

* fix(netSSL_OpenSSL): tsan fixes

* fix(Data): tsan warnings fixes

* feat(ci): add tsan job

* feat(ci): add tsan job, another attempt

* feat(ci): add tsan job, 3rd attempt

* fix(Foundation): tsan warnings fixes

* fix(Thread_POSIX): tsan warnings fixes; add tsan.suppress

* fix(Util): tsan fixes

* fix(netSSL_OpenSSL): tsan fixes

* fix(Data): tsan warnings fixes

* feat(ci): add tsan job

* feat(ci): add tsan job, another attempt

* feat(ci): add tsan job, 3rd attempt

* fix(ResultMetadata): memory leak #3474

* feat(ci): disable ActiveDispatcher tests for tsan runs

* feat(ci): try to fix tsan options file detection (again)

* chore(TestLibrary: correct spelling

* fix(ci): fix tsan run; add -y to apt; disable samples build for some jobs

* fix(ci): add mysql ports

* feat(ci): add VS asan

* feat(double-conversion): Upgrade double-conversion to v3.2.0 #3624

* chore(asan): disable msvc asan build (dll not found)

* chore(double-conversion): move NumericString.h before double-conversion includes to prevent min/max collision; reinstate lost loongarch64

* chore(JSON): sync pdjson with upstream

* fix(Statement): Poco::Data::Statement becomes unusable after exception #2287

* added facility to SyslogChannel (#3453)

* TCPServerDispatcher.h: missing <atomic> (#2961)

Fixes: b8af168151fe0147fb06557029002ae226dcc549
Fixes: #1965

* Windows embedded OpenSSL: Fixed bogus warning during compilation (External OpenSSL defined but internal headers used - possible mismatch!) (#3627)

* fix(double-conversion): nios2 and riscv defines

* fix(double-conversion): riscv defines

* fix(cmake): TestLibrary debug postfix

* fix(cmake): add WebNotifier to samples #3184

* doc(Crypto): Fix error in find_package example #3088

* fix(Event): Event data race #3629

* fix(AsyncChannel): race condition in AsyncChannel close/log #1039

* fix(Zip): Zip 64-bit extensions not set #2590 (tentative) (#3604)

* PocoDoc: fix handling of font-style tags if tag is immediately followed by punctuation

* Static code analyzer warnings #2688

* MinGW: fatal error: kernelspecs.h: No such file #2691

* Poco::Data::SessionPool change connection timeout #3241

* Makefile: space(s) following target name will break build (during link) #3062

* json format PrintHandler #2678

* indicate compiler that functions will never return (#3639)

* fix warning C4717: 'format<std::vector<std::any,std::allocatorstd::an… (#3640)

* fix warning C4717: 'format<std::vector<std::any,std::allocatorstd::any > >': recursive on all control paths, function will cause runtime stack overflow

* keep origin format.

* fix(format): scope

* fix(Crypto): libPocoCrypto.so: undefined reference to pthread_atfork when linking statically with OpenSSL 1.1 #3073

* chore(LocalConfigurationView): fix style #3529

* fix(ConfigurationView): ConfigurationView and JSON is broken for array access #3635

* FifoBuffer.advance method not throw exception when length==0 (#3641)

* fifobuffer not throw error when length = 0

* Update FIFOBuffer.h

fix indentation

Co-authored-by: Aleksandar Fabijanic <aleks-f@users.noreply.github.com>

* fix(URI): Decoding URI query parameters ( ::getQueryParameters) incompatible with Spring 5 #2619

* fix(NTPClient): NTPClient ignores second fractions #2614

* chore(JSON): add test for #2612

* fix(Platform): MinGW also defines __GNUC__. #3195

* Fix some clang 10 -Wsign-compare warnings (#2960)

In file included from /data/mwrep/res/osp/Poco/JSON/20-0-0-0/include/Poco/JSON/Object.h:22:
In file included from /data/mwrep/res/osp/Poco/JSON/20-0-0-0/include/Poco/JSON/Array.h:23:
In file included from /data/mwrep/res/osp/Poco/Foundation/20-0-0-0/include/Poco/Dynamic/Var.h:26:
In file included from /data/mwrep/res/osp/Poco/Foundation/20-0-0-0/include/Poco/Dynamic/VarHolder.h:22:
In file included from /data/mwrep/res/osp/Poco/Foundation/20-0-0-0/include/Poco/NumberFormatter.h:22:
/data/mwrep/res/osp/Poco/Foundation/20-0-0-0/include/Poco/NumericString.h:220:31: error: comparison of integers of different signs: 'unsigned long' and 'char' [-Werror,-Wsign-compare]
                                if ((limitCheck - result) < add) return false;
                                     ~~~~~~~~~~~~~~~~~~~  ^ ~~~
/data/mwrep/res/osp/Poco/Foundation/20-0-0-0/include/Poco/NumericString.h:229:31: error: comparison of integers of different signs: 'unsigned long' and 'char' [-Werror,-Wsign-compare]
                                if ((limitCheck - result) < add) return false;
                                     ~~~~~~~~~~~~~~~~~~~  ^ ~~~
/data/mwrep/res/osp/Poco/Foundation/20-0-0-0/include/Poco/NumericString.h:240:31: error: comparison of integers of different signs: 'unsigned long' and 'char' [-Werror,-Wsign-compare]
                                if ((limitCheck - result) < add) return false;
                                     ~~~~~~~~~~~~~~~~~~~  ^ ~~~
/data/mwrep/res/osp/Poco/Foundation/20-0-0-0/include/Poco/NumericString.h:249:31: error: comparison of integers of different signs: 'unsigned long' and 'char' [-Werror,-Wsign-compare]
                                if ((limitCheck - result) < add) return false;
                                     ~~~~~~~~~~~~~~~~~~~  ^ ~~~
4 errors generated.

* chore(README): Add vcpkg installation instructions #2940

* fix(SQLite): SQLite::Connector::open() crashes on db file with non existing directory #2285

* fix(MailMessage): read hangs on missing final multipart boundary #2401

* fix(NumberParser): Rounds very large negative numbers to the incorrect values #3580

* fix(JSON::Stringifier): JSON Serializing NAN #3251

* feat(Timespan): Add std::chrono support #2576 #2623

* fix(strToInt): overflows #3580

* fix(strToInt): thousand separator regression #3580

* fix(MySQL::Extractor): MySQL Extractor #2521

* feat(FTPClientSession): activeDataConnection 1.11.0 cannot set specific data port #3372

* feat(Cipher): No access to padding in Cipher #3374

* feat(TypeHandler): DB into() does not compile for more than 20 members in a tuple #3342

* fix(NumberFormatter): Negative precision in NumberFormatter::format() #2511

* Make ParallelSocketReactor thread namable (#3642)

make ParallelSocketReactor thread namable

* fix(Redis): Poco::Redis after executing auth command next command always return OK #2457

* chore(NumberParserTest): add test for #2441

* avoid clang tidy warning (#3646)

* Revert "avoid clang tidy warning (#3646)" (#3648)

This reverts commit b23488d6fe.

* fix(VarHolder): limits check

* As of C++11, std::swap is noexcept. #2386 (#3645)

* 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

* add separate accessors and mutators for connect, send and receive tim… (#3476)

* add separate accessors and mutators for connect, send and receive timeouts

* implement timeout methods outside of class declaration to conform to existing code structure

* Update HTTPSession.h

Co-authored-by: bfoster <bfoster@malwarebytes.com>
Co-authored-by: Aleksandar Fabijanic <aleks-f@users.noreply.github.com>

* Make poll set interruptable (#3644)

* Make poll set interruptable

* open test for poll set

* fix poll set wake up test

* fix build error

* feat(SecureSocketImpl): how to set the socket of SecureSocketImpl to no-blocking? #2352

* better socket reactor wake up (#3647)

* better socket reactor wake up

* Remove documentation comment from source file

Co-authored-by: Aleksandar Fabijanic <aleks-f@users.noreply.github.com>

* test(MailMesage): MailMessage::read() chokes on Content-disposition #3650

* chore(Net/samples): tcpserver missing from Net/samples/CMakeLists.txt #3651

* fix(CMake): Linking with Foundation on Android gives error #3652 #3653

* #2821: Poco::Buffer: full on creation? - add documentation describing the behavior.

* add note regarding receiveFrame with Poco::Buffer

* merge changes from 1.11.3

* #3633: Redis: Support Authentication

* #3658: Support for chunked transfer encoding trailer

* formatHex with lower case (#3657)

* feat(Socket): add lastErrorDesc()

* fix(Socket): Socket::select EPOLL implementation returns socket in exceptList when empty list is given #3655; mark select as deprecated #1459

* Fix/poll set race (#3630)

* fix(PollSet): PollSet data race #3628

* fix(SocketConnector): SocketConnector test #2875

* fix(PollSet): optimize the amount of locked code; fix and simplify wakeUp logic

* fix(SocketConnectorTest): fix test memleak (data not flowing, handlers not deleted) #2875

* fix(PollSet): clear() and tests

* fix(PollSet): #1459 #3628 #3655 #3661

* fix(PollSet): Integrate windows epoll #2091, #3649

* chore(ProGen): MSVC does not properly recognize std version #3665

* fix(PollSet): eventfd call arg; add wepoll to CMakelists.txt

* fix(PollSet): CMakelists.txt

* fix(cmake): MSVC does not properly recognize std version #3665

* chore(vscode): add mac config

* fix(PollSet): PollSet::add()/update() semantics #3661

* Feat/pcre2 (#3663)

* upgrade to pcre2

* use pcre2_*_8 names

* fix pcre2 lib name for unbundled build

* CMake changes for PCRE2

* add missing macro for unbundled build

* add PCRE2_STATIC

* updated VS project files for pcre2

Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>

* Revert "formatHex with lower case (#3657)" (#3670)

This reverts commit b1823b61c0.

* Always set thread names on POSIX platforms (#3384)

* chore: gitignore vim .swp files

* feat(POSIX): Always set thread names.

I'm not sure about the original intent to hide it under a DEBUG macro.

Naming the threads in release mode makes it easier to see runtime
application and know which thread pool uses how many threads and what
their names are. Firefox, Chromium and many other apps do this on Linux.

* Remove trailing whitespace (#3668)

* doc: update CHANGLEOG

Co-authored-by: Daniil Zotkin <zotkin@rutoken.ru>
Co-authored-by: Hernan Martinez <hernan.c.martinez@gmail.com>
Co-authored-by: Romain Geissler @ Amadeus <romain.geissler@amadeus.com>
Co-authored-by: hectots <monkey.instinct@gmail.com>
Co-authored-by: Hector Toledo Soto <hsoto@transperfect.com>
Co-authored-by: Matej Kenda <matejken@gmail.com>
Co-authored-by: BeBinder <93721965+BeBinder@users.noreply.github.com>
Co-authored-by: Tavi Cacina <tavi-cacina@users.noreply.github.com>
Co-authored-by: Mathieu Stefani <m.stefani@abc-arbitrage.com>
Co-authored-by: Fritz Elfert <fritz@fritz-elfert.de>
Co-authored-by: Maksim Kita <kitaetoya@gmail.com>
Co-authored-by: Spaky <Spaky@users.noreply.github.com>
Co-authored-by: Azat Khuzhin <a3at.mail@gmail.com>
Co-authored-by: Matej Kenda <matej.kenda@topit.si>
Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
Co-authored-by: Guillermo Frontera <gfrontera86@gmail.com>
Co-authored-by: junwufan <shelllet.com@gmail.com>
Co-authored-by: JackyWoo <wuchienchao@qq.com>
Co-authored-by: Ben Foster <bfoster7593@gmail.com>
Co-authored-by: bfoster <bfoster@malwarebytes.com>
Co-authored-by: Arun Chandrasekaran <arun@paravision.ai>
Co-authored-by: John Vandenberg <jayvdb@gmail.com>
2022-07-08 10:29:18 -05:00
Alex Fabijanic
ce61229552 doc: update CHANGLEOG 2022-07-08 17:15:06 +02:00
John Vandenberg
0e6e16645c
Remove trailing whitespace (#3668) 2022-07-07 04:18:20 -05:00
Arun Chandrasekaran
0af9524e16
Always set thread names on POSIX platforms (#3384)
* chore: gitignore vim .swp files

* feat(POSIX): Always set thread names.

I'm not sure about the original intent to hide it under a DEBUG macro.

Naming the threads in release mode makes it easier to see runtime
application and know which thread pool uses how many threads and what
their names are. Firefox, Chromium and many other apps do this on Linux.
2022-07-07 04:08:47 -05:00