771 Commits

Author SHA1 Message Date
Aleksandar Fabijanic
57bc0bbbb5
3102 json lowercase hex (#4306)
* Made it possible to use lowercase hex numbers, also when encoding JSON (#3102)

Co-authored-by: Thomas Weyn <Thomas.Weyn@cebir.be>

* fix(JSONString): Remove deprecated toJSON functions #4305

* fix(NumericString): conversions inconsistencies #4304

---------

Co-authored-by: Archipel <thomas@weynwebworks.com>
Co-authored-by: Thomas Weyn <Thomas.Weyn@cebir.be>
2023-11-27 22:43:20 +01:00
Aleksandar Fabijanic
11de40399c
fix(sharedMemory): x64 size error #2976 (#4295)
* fix(sharedMemory): x64 size error #2976

* chore: add Util dependency to Prometheus samples

* fix(HTTPClientSession): not working with UNIX_LOCAL SocketAddress #2578

* fix(WebSocketTest): supress connection reset exception assertion

* fix(PollSet): wait on premature epoll_wait return; reinforce tests for windows

* fix(build): add DataTest dependency to Makefile

* fix(Task): intermittently hanging test and some other improvements

* fix(Net): PollSet loop; suppress test WebSocket handler shutdown IOExeption
2023-11-26 04:57:39 +01:00
Pavle Dragisic
70bb3a40de
Add ProcessRunner and PIDFile (#4225)
* feat(Foundation): PIDFile and ProcessRunner #4064
* feat(Thread): optional signal blocking on POSIX #2978
* fix(ProcessRunner):remove logger, code enhancement #4225
* feat(Foundation): add PIDFile and ProcessRunner Tests #4064
* fix(Foundation): failing ProcessRunner Test #4064
* fix(PIDFile): remove append argument #4064
* remove Windows TODO from ProcessRunner #4064
* feat(ProcessRunnerTest): add line to checkTimeout #4064
* fix(ProcessRunner): add done flag to run() #4064
* fix(ProcessRunnerTest): add missing pidFile argument #4064
* chore(ProcessRunner): remove comments #4064
* fix(ProcessRunner): add runCount flag #4064
* fix(test): SharedLibrary and Class tests paths
* fix(ProcessRunner): thread sanitizer reported data races #4064
* fix(build): pass env var to testrunner #4064
* chore(PIDFile): remove ; in comments #4064
* feat(ProcessRunner): add Win argument format #4064
* fix(Tests): add ProcessRunnerTest to vcxproj #4064
* fix(Tests): change path to TestApp #4064
* feat(Tests): windows processrunner tests #4064
* fix(Tests): duplicate  ProcessRunnerTest in TestSuite vcxproj  #4064
* fix(CodeQL): sw declaration hides variable  #4064
* fix test binaries path for cmake
* fix(Build): missing include/PIDFile.h buildWin #4064
* fix(Build): add PocoFoundation depend in buildWin #4064
* feat(ProcessRunner): test process launching multiple threads #2976

---------

Co-authored-by: Pavle <pavle@debian-gnu-linux-11.localdomain>
Co-authored-by: Alex Fabijanic <alex@pocoproject.org>
2023-11-24 20:22:01 +01:00
Alexander B
4a9285c997
Improve FifoEvent, ActiveMethod, ActiveResult (#4211)
Co-authored-by: Alexander B <bas524@ya.ru>
2023-11-22 00:59:24 +01:00
Andrew Auclair
39e35c316d
SplitterChannel::addChannel() should only add a channel once
SplitterChannel::addChannel() should only add a channel once to the internal vector. This prevents issues where the channel is accidentally added twice but only removed once because removeChannel stops at the first result. (#4270)
2023-11-21 04:17:19 +01:00
Pavle Dragisic
5e88502b7f
Fix Poco::Process::launch (UNIX) - memory leak when launching invalid command (#4267)
* fix: memory leak in ProcessImpl  #2366

* fix(Process): variable masking and spelling #2366

* feat(ProcessTest): invalid command launch test #2366

* fix(ProcessTest): handle failed launch on win #2366

* fix(ProcessTest): undefined exception #2366

---------

Co-authored-by: Pavle <pavle@debian-gnu-linux-11.localdomain>
2023-11-21 03:04:02 +01:00
Alexander B
6a5387ec21
add visitor pattern implementation for Poco::Dynamic::Var (#4144)
* add visitor pattern implementation for Poco::Dynamic::Var

* add changes to Makefile and vcxproj for VarVisitor

* resolve review comments Poco::Dynamic::Var

---------

Co-authored-by: Alexander B <bas524@ya.ru>
2023-11-11 19:18:12 +01:00
Günter Obiltschnig
743da564eb #4241: Poco::FileInputStream broken in 1.12.5 and 1.11.8. 2023-11-02 12:10:21 +01:00
Alex Fabijanic
5e01472359 upgrade: double-conversion to 3.3.0 #4218 2023-10-24 21:00:20 +02:00
Alex Fabijanic
c163237221 fix(Thread): Fix pthread_setname not declared #4210 2023-10-23 18:02:35 +02:00
Pavle Dragisic
c918c70e68
Fix pthread_setname not declared (#4210)
* Fix pthread_setname not declared #4063

* Fix include prctl.h for specific OS #4063

* Fix getThreadName for specific OS #4063

---------

Co-authored-by: root <root@debian-gnu-linux-11.localdomain>
Co-authored-by: Pavle <pavle@debian-gnu-linux-11.localdomain>
2023-10-23 08:17:51 +02:00
Aleksandar Fabijanic
c0f7257ccd chore: eliminate some compile warnings 2023-10-21 19:15:57 +02:00
Günter Obiltschnig
8a268d4413 #4195: Poco::File::created() on macOS should use birthtime 2023-10-18 08:01:07 +02:00
Alex Fabijanic
69fd22c4e0 fix a couple of g++ warnings 2023-10-16 22:05:33 +02:00
Alex Fabijanic
cdd783a9f0 fix(FileChannel): setRotation overflow #3786 2023-10-16 17:59:09 +02:00
Alex Fabijanic
5fd6a45ea7 fix(MD*Engine) g++ array-bounds warning 2023-10-16 12:12:10 +02:00
Aleksandar Fabijanic
5e1904b5f8 fix: Sync 1.11.-1.12-devel(1.13) #4187 2023-10-16 00:16:06 +02:00
Günter Obiltschnig
06a03d1ada Poco::TemporaryFile: fix possible naming collisions due to random zero increment 2023-10-14 11:35:43 +02:00
Günter Obiltschnig
ed43543113 #4184: Poco::TemporaryFile: make filenames less predictable 2023-10-13 14:31:01 +02:00
Günter Obiltschnig
cb58e09304 #4177: Upgrade bundled pcre2 to 10.42 2023-10-07 09:22:47 +02:00
Günter Obiltschnig
4244c3251f #4170: Poco::FileStream is always opened with std::ios::in | std::ios::out 2023-09-30 12:26:11 +02:00
Günter Obiltschnig
2fb5e60e79 #4169: Upgrade bundled zlib to 1.3 2023-09-30 12:20:35 +02:00
Sergey Detsina
ed2613dfc5 Fixed Poco::format specifier for error code 2023-05-21 10:40:20 +03:00
Alexander B
75b378e540
fix #4005 Poco::Path::getExtension() returns name of the hidden file if no extension is present (#4011) 2023-05-05 11:49:56 -05:00
Alexander B
c7ac8574f8
Complimentary to #3918 (std::*mutex wrapper) (#3954)
* Complimentary to #3918
I think that we can use Poco::Mutex and Poco::FastMutex as wrappers for std::recursive_mutex and std::mutex instead of replacing

For using std::*mutexes switch on cmake-option POCO_ENABLE_STD_MUTEX

* add define POCO_ENABLE_STD_MUTEX to the Config.h
remove empty if-else from CMakeLists.txt
2023-05-05 09:49:06 -05:00
Vojin Ilic
b8d1792fa0 Fix hang in destructor
Consider following situation. A class owns a timer. In destructor of that class we call .cancel() asynchronous on timer before it's destruction.
Now timer is executing cancel in it's own internal thread, while it's doing that destructor of timer is called from owner's destructor. Timer destructor enqueues stop notification. If that enqueue is happening just after while loop from cancel notification, stop notification is gonna be dropped and timer will never stop.
Fix: Add new method in TimedNotificationQueue which will return a notification regardless of the time it needs to be executed.
Get number of pending tasks in the queue. Flush out that many notifications from queue while taking special consideration of pending Stop and Cancel notifications.
Add test for new method in TimedNotificationQueue and fix cancel all tests to actually check if notification got executed.
fixes #3986
2023-04-04 12:08:49 +02:00
David Hedbor
4cc956483d
Fix thread compilation issues on FreeBSD (#3989)
- Use pthread_set_name_np on FreeBSD 12.
- Implement currentOsTidImpl() using thr_self() on FreeBSD.
2023-03-30 04:49:04 -05:00
Matej Kenda
3838070146
Resolves #3484: support for OP_MSG in Poco::MongoDB (#3902)
* Binary writer/reader: add writeCString and readCString.

* MongoDB::Database: add queryBuildInfo and queryServerHello; add WireVersion enum.

* MongoDB: Introduce OpMsgMessage (request and reply) and related changes in Connection, Database, MessageHeader.

* MongoDB: First unit test changes for OpMsgMessage.

* MongoDB::Document: new functions addNewArray and remove.

* MongoDB: OP_MSG unacknowledged write and many improvements

* MongoDB: new cursor using OP_MSG

* MongoDB: bunch of new tests for OP_MSG wire protocol.

* BinaryWriter::WriteCString: use write instead of operator <<.

* MongoDB::OpMsgCursor: Slightly modified prototype code for using moreToCome flag.

* MongoDB: Add OpMsg* files to Makefiles.

* MongoDB: Add OpMsg* files to VS project files.

* Compile fixes.

* MongoDB::Database: Add factory function for database commands createOpMsgMessage() and cursors createOpMsgCursor()
2023-03-20 01:50:15 -05:00
Andrew Auclair
66e93f98cc
Custom rotate, archive and purge strategies for FileChannel (#3810)
* Adding the ability to set custom rotate, archive and purge strategies.

* Force CI
2023-03-18 01:28:25 -05:00
Samuel Thibault
d05d689622
Add GNU Hurd support (#3946)
Co-authored-by: Jochen Sprickerhof <git@jochen.sprickerhof.de>
2023-03-17 15:24:57 -05:00
Gleb Popov
b668742447
Fix typo in the exception message (#3858) 2023-01-27 05:26:33 -06:00
Fabio R. Sluzala
c693b0b1b2
Remove unnecessary duplication of std::string in NumberParser::tryParseFloat (#3864) 2023-01-24 01:00:15 -06:00
Alex Fabijanic
4ceb731bba feat(Process): Add options to disable STDIO in child process #3867 2023-01-23 12:23:03 +01:00
Alex Fabijanic
feee864950 fix(TZInfo): Static FastMutex fails to lock when issued from another thread on linux #3918 2023-01-23 08:06:55 +01:00
Günter Obiltschnig
4e8837db9e GH #3876: Replace sprintf with snprintf in Environment and NumberFormatter to avoid deprecation warnings 2022-11-17 11:44:46 +01:00
Günter Obiltschnig
d67e2de42a #3846: Upgrade bundled zlib to 1.2.13 [fixes CVE] 2022-10-24 09:00:59 +02:00
Alex Fabijanic
9c8a92da3d fix(DynamicStruct): toString not wrapping empty strings #3835 2022-10-13 15:25:35 +02:00
Alex Fabijanic
a2c09c29d8 feat(DynamicStruct): toString() escaping #3833 2022-10-13 11:50:53 +02:00
Alex Fabijanic
d11e48f851 fix(Environment): Possibility of memory leak in Windows Environment nodeIdImpl? #3823 2022-10-06 21:19:04 +02:00
tomaz-beltram
f03e7de03f
Fixed converting/correcting pre-gregorian dates (#3723). (#3769)
Co-authored-by: Tomaz Beltram <tomaz.beltram@topit.si>
2022-08-27 04:40:31 -05:00
Alex Fabijanic
2006327198 fix(Event): Poco EventImpl for Win32 breaks INFINITE wait #3737 2022-08-10 14:10:12 +02:00
Alex Fabijanic
dbb7b5f8e2 fix: g++ C++20 warnings #3734 2022-08-06 22:28:45 +02:00
Alex Fabijanic
10dfe9fe92 fix(SpinlockMutex): VS2022 compilation issues #3693 2022-07-27 16:19:06 -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
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
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
Aleksandar Fabijanic
bbe09e48d1
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>
2022-07-06 10:46:38 -05:00
Günter Obiltschnig
b6dcb5bbd3
Merge pull request #2959 from dahek/get_raw_fragment
Fix percent-encoded fragment modification in Poco::URI
2022-07-03 15:12:23 +02:00
Aleksandar Fabijanic
168f1eb6e2
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
2022-06-28 12:14:36 -05:00