* enh(Logger): simplified logging macros.
* enh(Delegate): Simplify code with constexpr and std::conditional_t.
* enh(NumericString): Simplify code with constexpr and std::is_signed_v.
* enh(MetaProgramming): Simplify code with C++17 equivalents.
* enh(Tuple): Simplify code with C++17 equivalents.
* enh(TypeList): Remove metaprogramming features that are not used.
* enh(Modules): Remove obsolete Foundation functionality
* enh(Foundation): Compile and run deprecated functionality only when POCO_TEST_DEPRECATED is enabled. Update comments for deprecated functionality.
* fix(Modules): Add missing conditional forward declarations for Foundation.
* Initial plan
* Fix WebSocket sendFrame delay by enabling TCP_NODELAY
- Enable TCP_NODELAY in WebSocketImpl constructor to prevent Nagle's algorithm
from buffering small WebSocket frames
- Add check to skip TCP_NODELAY for Unix domain sockets
- Add documentation about TCP_NODELAY behavior to WebSocket class
- Tested with existing WebSocket test suite - all tests pass
Co-authored-by: aleks-f <2429093+aleks-f@users.noreply.github.com>
* Address code review feedback
- Avoid unnecessary SocketAddress object construction by calling family() directly
- Use specific exception type (Poco::Exception) instead of catch-all
Co-authored-by: aleks-f <2429093+aleks-f@users.noreply.github.com>
* Refine exception handling for TCP_NODELAY configuration
- Catch specific exception types (NetException, IOException, InvalidArgumentException)
instead of broad Poco::Exception
- Improve error handling comments for clarity
Co-authored-by: aleks-f <2429093+aleks-f@users.noreply.github.com>
* Consolidate exception handling for better maintainability
- Combine catch blocks since all exceptions are handled identically
- Improve code clarity with more descriptive comments
Co-authored-by: aleks-f <2429093+aleks-f@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: aleks-f <2429093+aleks-f@users.noreply.github.com>
* reactor http server
* fix
* test logic
* add reactor server session , use buf to cache socket buffer
* add reactor example
* fix: nodelay, otherwise ack will be after 50 ms
* tcp reactor server support multi listener
* fix: tcp reactor connection lifetime about socket
* feat: add tcp reactor params
* format
* check http reqeust complete, dynamic size buffer in reactor
* remove try catch
* remove debug logger
* remove debug logger
* fix: should not pop in destructor
* delete useless
* remove cankeepalive temporarily, optimize check complete req
* coding style
* coding style
* reactor server session unit test
* http reactor time server add delay param
* optimize switch case, and pop completed msg in destructor
* refactor reactor server session
* fix: check completed request when headers are in lower case like oha, add unit tests
* fix auto_ptr compile error, remove logger and coding style
* compile and tests fix, add reactor obj in makefile and vcxproj
* compile and tests fix in win, add reactor sample vcxproj
* compile and tests fix in macos when visibility is hidden
* Add support for modules
* Use "" for inclusion
* Fix missing includes on Poco.Data module
* Add PDF and SevenZip modules, and match modules to build macros
* Add CI test
* Add missing link libraries in CMake
* Add remaining libraries DNSSD, CppParser and CppUnit. Changed some static declarations to inline to export
* We also need to forward the ENABLE_NETSSL_* macros
* Update CMakeLists files
* Add samples as requested, with DateTime and URI test for example
* Fix POCO_MODULES_INSTALL macro
* chore(CMake): Combine install macro for libraries and C++ modules into one macro.
* Apply testsuite changes and address include directories concerns
* Restore accidentally deleted build files
* Mistakenly added a file generated by CMake, removed.
---------
Co-authored-by: Matej Kenda <matejken@gmail.com>
* fix(TCPServer): continues to accept connections after stop() #4892
* fix(TCPServer): first attempt to silence TSAN #4892
* fix(TCPServer): check stopped status after poll; add TCPServerFactory::stop() and allow factory to return nullptr on connection creation request #4892
* fix(TCPServer): initialize factory stopped flag #4892
* revert(SocketImpl): atomic sock fd
Receiving an odd number of bytes in non-blocking mode results in using the wrong bytes to unmask the payload. Keep track of the number of payload bytes that have been unmasked.
* add possibility to use native sendFile from OS for HttpServerResponse
add option POCO_USE_SENDFILE_FOR_HTTPSERVER, default - OFF
add test for HttpServer - testFile
add define fro Config.h POCO_USE_SENDFILE_FOR_HTTPSERVER
* my fail, be carefull with macro and brackets
* replace option POCO_USE_SENDFILE_FOR_HTTPSERVER with compiletime
detected macro POCO_HAVE_SENDFILE
replace types for sendFile with platform depended
wrap possibility of using sendFile with macro, if sendFile doesn't exist
in OS, then all methods don't exist
* remove option POCO_USE_SENDFILE_FOR_HTTPSERVER from ci.yml
* wrap testSendFile in the suite with define POCO_HAVE_SENDFILE
* try fix compile problem with emscripten
* oh, emscripten again
* fix logical error in testSendFile
* fix problem with cmake-specific macro when usinf make-project
* revert types from platform depended to Poco::Int64 and Poco::UInt64
for sendfile
* enh(poco): Replace deprecated comments with C++ deprecated attribute.
* enh(Poco): Replace some deprecated functionality in Poco sources. (#4426)
* enh(Poco): Replace more deprecated functionality in Poco sources. (#4426)
* fix(CMake): Variable BUILD_SHARED_LIBS must be defined properly to create valid binaries.
* enh: Code improvements done while resolving deprecated functionality (#4426)
* Un-deprecate LocalDateTme (#4426)
* enh(Poco): Replace usage of deprecated functionality with other functions/classes (#4426)
* chore(SSL): temporarily un-deprecate SSL-related functionality (#4426)
* chore(SSL): temporarily un-deprecate old MongoDB protocol functionality (#4426)
* enh(Poco): Minor Hash improvements (#4426)
* enh(Foundation): Compile deprecated hash tests only when POCO_TEST_DEPRECATED is enabled (#4426)
* enh(Net): Compile deprecated Socket::select functionality only when POCO_TEST_DEPRECATED is enabled (#4426)
* enh(Bonjour): Replace deprecated Socket::select with PollSet (#4426)
* enh(Poco): Introduce POCO_DEPRECATED macro to have the ability to disable deprecation warnings in applications (#4426)
* test(ODBC): add few asserts to testStoredProcedureDynamicVar
* fix(ODBC): rename DynamicAny -> DynamicVar in tests
* fix(ODBC): make Dignostics static members inline to prevent explicit instantiation warnings on windows
---------
Co-authored-by: Alex Fabijanic <alex@pocoproject.org>
* directoryiterator: Fix missing inline
Add missing inline to inline function.
This was found with clang-tidy check: misc-definitions-in-headers
* Convert deprecated throw() to noexcept
throw() has been deprecated in standar in C++17. It has been removed in
C++20. Code still compiles but let's just define these at those should
be.
These where found with clang-tidy check: modernize-use-noexcept
* Fix unnecessary copy initializations
Clang-tidy did find these with check:
performance-unnecessary-copy-initialization
* Fix some strings not references
Looks like these are just missing reference marks.
---------
Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
* Remove _WIN32_WCE macro
Poco now use C++17 and Windows CE does not support it and VS2017 does
also not support it so we can just remove Windows CE code. First remove
all macro usages from our own files.
* Remove WinCE support from build files
Poco now use C++17 and Windows CE does not support it and VS2017 does
also not support it so we can just remove Windows CE code. Remove all
references from build systems / scripts.
* Remove Windows CE related source and header files
Poco now use C++17 and Windows CE does not support it and VS2017 does
also not support it so we can just remove Windows CE code. First remove
all macro usages from our own files.
* Remove wcelibcex folder
Poco now use C++17 and Windows CE does not support it and VS2017 does
also not support it so we can just remove Windows CE code. First remove
all macro usages from our own files.
* Remove rest Windows CE mentions
There where some Windows CE mentions left. Remove those.
* Update Windows CE documentation
We should keep documentation some time so people can find reason for
remove.
---------
Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
* 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)