1. 03 Jun, 2020 1 commit
    • mplellison's avatar
      Travis fix to collect coredumps from build configuration subdirs - #720 (#776) · 22509199
      mplellison authored
      * Travis fix to collect coredumps from build configuration subdirs - #720
      
      Previously, Travis would only attempt to collect coredumps from the last
      directory the build script was in, or the home directory. This meant
      that most coredumps were missed, and debug information was lost.
      
      The new setup configures apport to watch for crashes on any executables
      (by default it watches for executables from Ubuntu packages). These
      crash dumps are picked up, extracted, and analysed using GDB to provide
      a backtrace (this needs the executable to be passed to GDB as well so
      that debug symbols are provided).
      
      * Restructured .travis.yml to avoid underspecified builds.
      22509199
  2. 29 May, 2020 1 commit
    • mplellison's avatar
      Logging api - addresses issue #771 (#775) · a2215ba9
      mplellison authored
      * Added a basic logger object and relevant macros.
      
      * Modify logging macros for more flexibility.
      
      Supplied logger types and sample values using macros for flexibility in
      recompiling the library against a different logging engine - the macros
      can be redefined to make calls to the relevant functions.
      
      * Updated endpoint and listener to use new logging structure.
      
      It remains to update the SSL portions of listener.cc to output SSL
      errors via the new loggers.
      
      * Add error logging for SSL errors in listener.cc.
      
      This needed an extension to the RAII setup for SSL objects to handle BIO
      objects. Also modified some exception types to ensure they get caught
      and logged by existing code. Moved anonymous function definitions to the
      top of listener.cc so that they are available in the entire file.
      
      These changes don't significantly change the behaviour of the Pistache
      library - it still logs errors and throws an exception for most errors
      that occur internally. It would likely be more sensible to only throw
      a descriptive exception and not log if the exception is expected to be
      handled by the library user - this gives them better control of the
      output of the software. Logging could be reserved for tracking events
      and debug; when the user is not expected to provide input.
      
      * Renamed macros and types to "string logger" and similar.
      
      This aligns the names of the types and macros, as well as leaving space
      for future logging APIs that handle different message types.
      a2215ba9
  3. 26 May, 2020 1 commit
    • mplellison's avatar
      Allow Pistache::Listener to load and serve certificate chains (#772) · 21ca7a69
      mplellison authored
      * Update test certificate generation to use explicit cert config.
      
      Previously, no configuration was supplied on certificate generation, so
      the certificates being used for testing were completely generic. This
      limited the effectiveness and transparency of testing.
      
      * Fix listener.cc to load a cert chain and provide it for server auth.
      
      Added test with a server cert signed by an intermediate CA.
      
      Previously, listener.cc would only load the first cert in a cert pack
      and use this to authenticate itself to clients. This meant that if the
      server held a cert signed by an intermediate CA, a client trusting only
      the root CA would be unable to authenticate the server's cert.
      
      See the OpenSSL docs here:
      https://www.openssl.org/docs/man1.0.2/man3/SSL_CTX_use_certificate_file.html
      for an overview of the SSL_CTX_use_certificate_file() and
      SSL_CTX_use_certificate_chain_file() functions.
      21ca7a69
  4. 21 May, 2020 1 commit
    • robertomdv's avatar
      Update listener.cc (#770) · b4e9e55e
      robertomdv authored
      added GetSSLContext() at line  393 to prevent compilation with OpenSSL From fail  (see issue #769)
      b4e9e55e
  5. 12 May, 2020 4 commits
  6. 11 May, 2020 1 commit
  7. 03 May, 2020 1 commit
  8. 02 May, 2020 1 commit
    • chrisvroberts's avatar
      Fix shutdown data race in listner.cc (#761) · a328d724
      chrisvroberts authored
      A race exists between the runThreaded and shutdown/dtor as follows:
      
       runThreaded - called
       shutdown - called
       shutdown - check for shutdownFd.isBound returns false (so no notify)
       runThreaded - thread executing 'run' starts
       runThreaded - thread calls shutdownFd.bind
       shutdown - blocks waiting for run thread
       runThreaded - continues to run as no notification received
      
      This deadlock avoided by ensuring the shutdownFd.bind is called before
      the thread is created rather than doing it at the start of the thread's
      execution.
      a328d724
  9. 29 Mar, 2020 1 commit
  10. 22 Mar, 2020 1 commit
  11. 16 Mar, 2020 3 commits
  12. 14 Mar, 2020 1 commit
    • miketsts's avatar
      Add -Wconversion compilation flag and fix related warnings (originated by #733) (#734) · 96ee08ec
      miketsts authored
      * CMakeLists.txt: add -Wconversion flag to CMAKE_CXX_CFLAGS
      
      * date.h: fix type conversion warnings
      
      Fix type conversion warnings occurring when using -Wconversion flag
      of gcc
      
      * base64.cc: fix type conversion warnings
      
      Fix type conversion warnings occurring when using -Wconversion flag
      of gcc.
      
      All the fixes actually convert std::byte to unsigned char for
      calculation purposes.
      
      Provided the number of such static_cast uses, I would reconsider using
      std::byte as a base data type, as std::byte is defined as "not a
      character type and is not an arithmetic type ... the only operators
      defined for it are the bitwise ones". At the same time, most of the
      fixes do deal with the arithmetics.
      
      Reference:
      https://en.cppreference.com/w/cpp/types/byte
      
      * Transport: fix type conversion warnings with Fd
      
      Fix type conversion warnings occurring when using -Wconversion flag
      of gcc.
      
      Most of the fixed locations deal with static cast from Polling::Tag
      to Fd.
      
      * stream.cc: fix type conversion warnings
      
      Fix type conversion warnings occurring when using -Wconversion flag
      of gcc.
      
      It appears that std::tolower has two different signatures:
      
      int tolower( int ch );
      and
      template< class charT >
      charT tolower( charT ch, const locale& loc );
      
      This commit doesn't replace the calls to tolower() but merely adds
      static_cast<char> in corresponding locations
      
      * listener.cc: fix type conversion warnings
      
      Fix type conversion warnings occurring when using -Wconversion flag
      of gcc.
      
      * Fix type conversion warnings
      
      Fix type conversion warnings in different files occurring when using
      -Wconversion flag of gcc
      
      * Fix type conversion warnings with OpenSSL
      
      with PISTACHE_USE_SSL
      
      Fix type conversion (size_t -> int) warnings occurring when using
      -Wconversion flag of gcc and PISTACHE_USE_SSL is defined
      
      OpenSSL 1.1.1 has new functions SSL_read_ex / SSL_write_ex which allow
      size_t parameter, but 1.0.2 has only SSL_read / SSL_write with int
      type parameter
      
      * Fix type conversion warnings in examples
      
      Fix type conversion warnings in examples occurring when using
      -Wconversion flag of gcc. The commit contains also
      tests/rest_server_test.cc with the similar fix.
      
      One of questionable change types was caused by
      Http::Endpoint::options()::threads(int val), and was invoked with size_t
      argument. Maybe it makes sense to modify the function argument type.
      
      After this commit, there still remain a lot of -Wconversion warnings in
      rapidjson library
      
      * Fix type conversion warnings in unit tests
      
      Fix type conversion warnings in unit tests occurring when using
      -Wconversion flag of gcc.
      Co-authored-by: default avatarMichael Tseitlin <michael.tseitlin@concertio.com>
      96ee08ec
  13. 10 Mar, 2020 1 commit
  14. 05 Mar, 2020 1 commit
  15. 03 Mar, 2020 1 commit
  16. 02 Mar, 2020 3 commits
    • Kip's avatar
      Removed unnecessary standard filesystem library. (#726) · 8b04ca8c
      Kip authored
      * {src/common/http_header.cc,include/pistache/http_header.h}: Implemented support for Authorization headers using basic method...
      include/pistache/base64.{cc,h}: Added utility classes and helper functions for base 64 encoding and decoding...
      tests/headers_test.cc: Added unit test authorization_basic_test...
      version.txt: Bumped versioning metadata...
      
      * Reformatted last commit with clang-format(1) per Dennis' request. Looks awful.
      
      * include/pistache/base64.h: No need to include standard filesystem library...
      8b04ca8c
    • Kip's avatar
      Implemented support for Authorization headers using basic method... (#725) · 53c08440
      Kip authored
      * {src/common/http_header.cc,include/pistache/http_header.h}: Implemented support for Authorization headers using basic method...
      include/pistache/base64.{cc,h}: Added utility classes and helper functions for base 64 encoding and decoding...
      tests/headers_test.cc: Added unit test authorization_basic_test...
      version.txt: Bumped versioning metadata...
      
      * Reformatted last commit with clang-format(1) per Dennis' request. Looks awful.
      53c08440
    • Igor [hyperxor]'s avatar
      7bb01321
  17. 29 Feb, 2020 2 commits
  18. 27 Feb, 2020 1 commit
  19. 26 Feb, 2020 2 commits
  20. 24 Feb, 2020 1 commit
  21. 23 Feb, 2020 1 commit
  22. 19 Feb, 2020 4 commits
  23. 16 Feb, 2020 1 commit
  24. 15 Feb, 2020 2 commits
  25. 14 Feb, 2020 3 commits