1. 30 Nov, 2020 1 commit
  2. 29 Nov, 2020 2 commits
  3. 28 Nov, 2020 1 commit
  4. 27 Nov, 2020 4 commits
  5. 26 Nov, 2020 2 commits
  6. 25 Nov, 2020 1 commit
  7. 24 Nov, 2020 2 commits
  8. 23 Nov, 2020 1 commit
  9. 18 Nov, 2020 3 commits
    • Ian Roddis's avatar
      Add peer (#838) · e171e79d
      Ian Roddis authored
      * Adding an incrementing peer ID for easier connection identification on peer disconnect
      
      * Removing the private override of onDisconnection in http::Handler
      
      * Adding unit test for onDisconnection
      
      * - Exposing a peer handle from the ResponseWriter
      - Making disconnection test a bit more deterministic; there appears to be a race condition between server.shutdown() returning and the onDisconnection() callback succeeding.
      - Adding Active Connections info in test case to demonstrate usage.
      
      * Reducing verbosity of test output
      
      * Fixing getID vs getId call, removing block comment around other tests
      Co-authored-by: default avatarIan Roddis <gitlab@ie2r.com>
      e171e79d
    • Dennis Jenkins's avatar
      Revert "Adding a Peer ID to identify connections (#836)" (#837) · 551cbb47
      Dennis Jenkins authored
      This reverts commit eb9102dd.
      551cbb47
    • Ian Roddis's avatar
      Adding a Peer ID to identify connections (#836) · eb9102dd
      Ian Roddis authored
      * Adding an incrementing peer ID for easier connection identification on peer disconnect
      
      * Removing the private override of onDisconnection in http::Handler
      
      * Adding unit test for onDisconnection
      
      * - Exposing a peer handle from the ResponseWriter
      - Making disconnection test a bit more deterministic; there appears to be a race condition between server.shutdown() returning and the onDisconnection() callback succeeding.
      - Adding Active Connections info in test case to demonstrate usage.
      
      * Reducing verbosity of test output
      Co-authored-by: default avatarIan Roddis <gitlab@ie2r.com>
      eb9102dd
  10. 28 Oct, 2020 1 commit
  11. 17 Oct, 2020 1 commit
  12. 16 Oct, 2020 1 commit
    • Benjamin Beichler's avatar
      fix chunked transfer decoding · 88a30838
      Benjamin Beichler authored
      - usage of complete body_.size() seems is wrong (only valid if there is one chunk?)
      - use separate var to count already received bytes of chunk
      88a30838
  13. 06 Oct, 2020 1 commit
    • Jiankun Yu's avatar
      fix issue-193 (#819) · a54a4fab
      Jiankun Yu authored
      * fix issue-193
      
      The client implementation isn't compliant with HTTP 1.1 standard, to be
      specific, it doesn't honor the "Connection: close" response header. As a
      result, whenever a new request is sent, a new tcp connection is opened
      to the server and is never closed (unless the server close it).
      
      The best place to close the connection is in Connection::OnDone() method,
      however, that method is provided too early, in the Connection::asyncPerform()
      method, where the Http::Response object is not yet available. It's also
      incorrect to blindly close the connection in OnDone() method, as there might
      be more data from server.
      
      This commit explicitly closes all opened connections on Client::shutdown(),
      to guarantee all network resources are recycled on that call.
      
      It's impossible to write any unit test case verify it, the connection pool
      is invisible to Client users. It passed manual tests on crafted scenarios.
      
      To verify this, start a Pistache server from the examples, then use the Client
      library to send some requests to the server, and don't terminate client side
      program. Use "netstat -an | grep <server_port>" to see if there are remaining
      connections in ESTABLISHED state after client.shutdown() is called.
      Signed-off-by: default avatarJiankun Yu <yujiankun@hotmail.com>
      
      * fix formatting issue
      a54a4fab
  14. 28 Aug, 2020 1 commit
  15. 25 Aug, 2020 1 commit
  16. 17 Aug, 2020 1 commit
    • Fabrice Fontaine's avatar
      CMakeLists.txt: add C language to project statement (#813) · 718aabba
      Fabrice Fontaine authored
      This will fix the detection of atomic:
      
      -- Performing Test HAVE_CXX_ATOMICS64_WITHOUT_LIB
      -- Performing Test HAVE_CXX_ATOMICS64_WITHOUT_LIB - Failed
      -- Looking for __atomic_load_8 in atomic
      -- Looking for __atomic_load_8 in atomic - not found
      CMake Error at CMakeModules/CheckAtomic.cmake:76 (message):
        Host compiler appears to require libatomic for 64-bit operations, but
        cannot find it.
      Call Stack (most recent call first):
        CMakeLists.txt:19 (include)
      
      Indeed if C language is not enabled, the test will be run with the C++
      compiler resulting in the following error:
      
      Building CXX object CMakeFiles/cmTC_fad22.dir/CheckFunctionExists.cxx.o
      /tmp/instance-0/output-1/host/bin/mipsel-linux-g++ --sysroot=/tmp/instance-0/output-1/host/mipsel-buildroot-linux-gnu/sysroot    -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -D_FORTIFY_SOURCE=1 -Wall -Wconversion -pedantic -Wextra -Wno-missing-field-initializers -DCHECK_FUNCTION_EXISTS=__atomic_load_8  -DNDEBUG   -o CMakeFiles/cmTC_fad22.dir/CheckFunctionExists.cxx.o -c /tmp/instance-0/output-1/build/pistache-f2f5a50f/CMakeFiles/CheckLibraryExists/CheckFunctionExists.cxx
      <command-line>: error: new declaration 'char __atomic_load_8()' ambiguates built-in declaration 'long long unsigned int __atomic_load_8(const volatile void*, int)' [-fpermissive]
      /tmp/instance-0/output-1/build/pistache-f2f5a50f/CMakeFiles/CheckLibraryExists/CheckFunctionExists.cxx:7:3: note: in expansion of macro 'CHECK_FUNCTION_EXISTS'
         CHECK_FUNCTION_EXISTS(void);
         ^~~~~~~~~~~~~~~~~~~~~
      /tmp/instance-0/output-1/build/pistache-f2f5a50f/CMakeFiles/CheckLibraryExists/CheckFunctionExists.cxx: In function 'int main(int, char**)':
      /tmp/instance-0/output-1/build/pistache-f2f5a50f/CMakeFiles/CheckLibraryExists/CheckFunctionExists.cxx:17:25: error: too few arguments to function 'long long unsigned int __atomic_load_8(const volatile void*, int)'
         CHECK_FUNCTION_EXISTS();
                               ^
      
      whereas with a C compiler, we'll get:
      
      Building C object CMakeFiles/cmTC_4b0f4.dir/CheckFunctionExists.c.o
      /home/fabrice/buildroot/output/host/bin/riscv32-linux-gcc --sysroot=/home/fabrice/buildroot/output/host/riscv32-buildroot-linux-gnu/sysroot   -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -DCHECK_FUNCTION_EXISTS=__atomic_load_8  -DNDEBUG   -o CMakeFiles/cmTC_4b0f4.dir/CheckFunctionExists.c.o   -c /usr/share/cmake-3.16/Modules/CheckFunctionExists.c
      <command-line>: warning: conflicting types for built-in function ‘__atomic_load_8’ [-Wbuiltin-declaration-mismatch]
      /usr/share/cmake-3.16/Modules/CheckFunctionExists.c:7:3: note: in expansion of macro ‘CHECK_FUNCTION_EXISTS’
         CHECK_FUNCTION_EXISTS(void);
         ^~~~~~~~~~~~~~~~~~~~~
      Linking C executable cmTC_4b0f4
      /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_4b0f4.dir/link.txt --verbose=1
      /home/fabrice/buildroot/output/host/bin/riscv32-linux-gcc --sysroot=/home/fabrice/buildroot/output/host/riscv32-buildroot-linux-gnu/sysroot -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -DCHECK_FUNCTION_EXISTS=__atomic_load_8  -DNDEBUG    CMakeFiles/cmTC_4b0f4.dir/CheckFunctionExists.c.o  -o cmTC_4b0f4  -latomic
      
      Fixes:
       - http://autobuild.buildroot.org/results/2bf06c6a9e55b449ec5875cf9415a9e55b2065d6Signed-off-by: default avatarFabrice Fontaine <fontaine.fabrice@gmail.com>
      718aabba
  17. 16 Aug, 2020 1 commit
  18. 15 Aug, 2020 1 commit
  19. 03 Aug, 2020 1 commit
    • Kip's avatar
      Shared-library soname is now generated correctly (#809) · ab52c549
      Kip authored
      * Add support for interface versioning so applications don't break...
      
      * {CMakeLists.txt,src/CMakeLists.txt}: Shared-library soname is now generated correctly...
      version.txt: Added SONAME major and minor fields...
      README.md: Add versioning notes. In particular, when to update interface version...
      debian/changelog: Fixed lintian complaining about a malformed changelog for non-native package...
      ab52c549
  20. 02 Aug, 2020 1 commit
  21. 22 Jul, 2020 1 commit
  22. 21 Jul, 2020 1 commit
  23. 20 Jul, 2020 1 commit
  24. 18 Jul, 2020 1 commit
  25. 17 Jul, 2020 1 commit
  26. 08 Jul, 2020 1 commit
    • suokko's avatar
      Cmake build improvements for find_package(Pistache) (#795) · 4ed3f8e1
      suokko authored
      * Set default build type using _INIT variable
      
      Language support checking offers a standardized method to set default
      build type using CMAKE_BUILD_TYPE_INIT variable. The variable must be
      set before enable_language is called implicitly from project
      
      * Enable only C++ compiler
      
      * Let C++ compiler detection to check for standard support
      
      Setting CMAKE_CXX_STANDARD variables before implicit call to
      enable_language handles checking for standard support automatically.
      
      * Fix pistache_shared export
      
      Exporting targets allows find_package(Pistache) to import them
      correctly. The import makes it easier to use Pistache in a porject using
      cmake build system.
      
      * Add wildcard ignore for multiple build directories
      
      I used multiple build directories to test different configurations work.
      My alternative test configuration is a Debian Stretch chroot for an old
      distro test.
      
      * Detect Threads which is implicit requirement
      
      Static library requires PistancheConfig.cmake to detect all dependencies
      to allow simple linking to imported library to work.
      
      * Use find_package to detect OpenSSL
      
      Add OpenSSL configure time detection for the development package.
      FindOpenSSL.cmake started support IMPORTED libraries only in 3.4. The
      IMPORTED library helps users to link correctly to pistache static
      library.
      
      Headers use libssl directly which forces pistache to use public
      definition and library link.
      
      * Export include directories to IMPORTED library
      
      * Do not add pistache to global build configuration
      
      PistacheConfig shouldn't add include directories and libraries to the
      global build configuration. Imported libraries provide all required
      build configurations to a depending target.
      
      * Check if atomic library is required
      
      Pistache should link to atomic library only if system requires the
      library. The easiest method appears to be use a modified LLVM
      CheckAtomic helper.
      
      * Use target include directories for GTest
      
      * Detect libcurl and remove pthread linking
      
      * Update CMake Pistache example
      
      * Add CMake ConfigVersion file
      
      * Update the date part of version
      4ed3f8e1
  27. 07 Jul, 2020 1 commit
  28. 05 Jul, 2020 1 commit
  29. 26 Jun, 2020 1 commit
    • chrisvroberts's avatar
      Ensure no epoll events are processed for closed peer files (#788) · 13a92b81
      chrisvroberts authored
      An error existed in transport.cc where it incorrectly assumed that
      it would not receive epoll events relating to a closed peer
      connection. This is not the case because file descriptors can be
      shared between processes e.g. on exec. When they are, events could
      still be generated. The solution is to explicitly de-register our
      interest in the file descriptor before we close it using
      epoll_ctl(EPOLL_CTL_DEL). In addition the call to accept in
      listener.cc has been updated to set CLOEXEC on the peer file
      descriptors as these should not be shared with other processes
      anyway.
      Co-authored-by: default avatarRoberts, Chris (UK Gloucester) <chris.v.roberts@baesystems.com>
      13a92b81
  30. 24 Jun, 2020 1 commit
  31. 23 Jun, 2020 1 commit
  32. 13 Jun, 2020 1 commit