1. 09 Mar, 2018 1 commit
    • Luca Boccassi's avatar
      Problem: TIPC availability check is too strict (#2977) · 19060345
      Luca Boccassi authored
      * Problem: TIPC availability check is too strict
      
      Solution: at build time only check if the API is available. In the tests
      do a first check and a skip if the functionality is not available.
      
      TIPC needs an in-tree but not loaded by default kernel module, tipc.ko
      to be loaded, which requires root, so it is unlikely to be available on
      any build system by default.
      This will allow most distributions to ship with TIPC support built in,
      and to avoid tests failure if the module is not there.
      
      * Problem: no Travis tests for TIPC
      
      Solution: mark one job with sudo: required and load the kernel module
      
      * Problem: CMake fails when test returns 77 (skip)
      
      Solution: set property to let it mark the test as skipped as intended
      19060345
  2. 11 Feb, 2018 1 commit
  3. 10 Feb, 2018 1 commit
  4. 13 Dec, 2017 1 commit
  5. 20 Nov, 2017 1 commit
  6. 18 Nov, 2017 1 commit
  7. 09 Nov, 2017 1 commit
  8. 17 Oct, 2017 1 commit
  9. 16 Oct, 2017 2 commits
    • Luca Boccassi's avatar
      Problem: autoconf does not use pkgconfig for NORM · 78cdff3a
      Luca Boccassi authored
      Solution: use the pkgconfig macro as the first step and then fallback
      to manual checks
      78cdff3a
    • f18m's avatar
      Background threads enhancements (#2778) · bfbb4ff2
      f18m authored
      * Background thread scheduling 
      
      - add ZMQ_THREAD_AFFINITY ctx option; set all thread scheduling options
      from the context of the secondary thread instead of using the main
      process thread context!
      - change ZMQ_THREAD_PRIORITY to support setting NICE of the background
      thread when using SCHED_OTHER
      bfbb4ff2
  10. 18 Aug, 2017 1 commit
  11. 15 Aug, 2017 1 commit
    • Simon Giesecke's avatar
      [WIP, do not merge] Problem: insufficient tests for ZMTP-CURVE protocol errors (#2680) · d5e4319e
      Simon Giesecke authored
      * Extracted connect_vanilla_socket function
      
      * Problem: no tests for ZMTP-CURVE protocol errors
      
      Solution: added two test cases with erroneous HELLO commands
      
      * Problem: insufficient tests for ZMTP-CURVE protocol errors
      
      Solution: added two test cases with erroneous HELLO command version
      
      * Problem: test HELLO message is invalid apart from deliberate errors
      
      Solution: create cryptographically correct HELLO message
      add tweetnacl.c to test_security_curve
      
      * Problem: nonce is incorrect, build fails with GCC
      
      Solution: use correct non prefix
      
      * Problem: make builds are failing
      
      Solution: transfer CMake changes to (auto)make files
      
      * Problem: nonce is incorrect, build fails with GCC
      
      Solution: use correct non prefix
      
      * Problem: make builds are failing
      
      Solution: transfer CMake changes to (auto)make files
      
      * Problem: no test with INITIATE command with invalid length
      
      Solution: added test case
      
      * Problem: code duplication between test_security_curve.cpp and curve_client.cpp
      
      Solution: extracted parts of zmq::curve_client_t::produce_hello into reusable function
      
      * Problem: code duplication between test_security_curve.cpp and curve_client.cpp
      
      Solution: extracted further parts of zmq::curve_client_t into reusable functions
      added missing file
      
      * Problem: mechanism_t::add_property can be declared static
      
      Solution: declare mechanism_t::add_property static
      
      * Problem: intermediate crypto data needs to be passed between static function calls to curve_client_tools_t
      
      Solution: add non-static member functions
      
      * Problem: msg_t instance may be closed twice
      
      Solution: remove offending close
      
      * Problem: prepare_hello uses static curve_client_tools_t::produce_hello
      
      Solution: Use non-static curve_client_tools_t::produce_hello
      
      * Problem: no test with invalid command name where INITIATE command is expected
      
      Solution: added test case
      
      * Problem: make builds are failing due to curve_client_tools.hpp not being found
      
      Solution: add curve_client_tools.hpp to list of source files
      
      * Problem: wrong initializer order in zmq::curve_client_t
      
      Solution: reorder
      
      * Problem: under non-Windows systems, test fails because random_open was not called
      
      Solution: call random_open/random_close within test
      
      * Problem: conflict between custom function htonll and macro definition on Darwin
      
      Solution: define htonll function only if not defined as a macro
      
      * Problem: nullptr not defined on all platforms
      
      Solution: replace nullptr by NULL
      
      * Problem: libsodium builds not working
      
      Solution: adapt compile and link file sets for libsodium builds
      
      * Problem: Makefile.am broken
      
      Solution: Fix syntax
      
      * Problem: no tests for garbage encrypted cookie or content in INITIATE
      
      Solution: added test cases
      
      * Problem: test cases accidentally excluded from build
      
      Solution: remove #if/#endif
      
      * Solution: some error cases are unreachable
      
      Problem: for the time being, added some comments without changing the code
      
      * Added comments on hard-to-test cases
      d5e4319e
  12. 31 Jul, 2017 1 commit
    • Brian Russell's avatar
      Add socket option BINDTODEVICE · b963542e
      Brian Russell authored
      Linux now supports Virtual Routing and Forwarding (VRF) as per:
      
      https://www.kernel.org/doc/Documentation/networking/vrf.txt
      
      In order for an application to bind or connect to a socket with an
      address in a VRF, they need to first bind the socket to the VRF device:
      
          setsockopt(sd, SOL_SOCKET, SO_BINDTODEVICE, dev, strlen(dev)+1);
      
      Note "dev" is the VRF device, eg. VRF "blue", rather than an interface
      enslaved to the VRF.
      
      Add a new socket option, ZMQ_BINDTODEVICE, to bind a socket to a device.
      In general, if a socket is bound to a device, eg. an interface, only
      packets received from that particular device are processed by the socket.
      
      If device is a VRF device, then subsequent binds/connects to that socket
      use addresses in the VRF routing table.
      b963542e
  13. 28 Jul, 2017 2 commits
  14. 14 Jul, 2017 1 commit
  15. 01 May, 2017 1 commit
  16. 26 Apr, 2017 1 commit
    • Jim Garlick's avatar
      gssapi: add a basic test for GSSAPI security · edd6b0ad
      Jim Garlick authored
      Problem: there is no test coverage for GSSAPI.
      
      Solution: add a test structured like the CURVE test.
      
      The test is not built if libzmq is not configured with
      --with-libgssapi_krb5. It will report SKIPPED status
      if the required environment is missing (see below).
      
      Environment:  KRB5_KTNAME and KRB5_CLIENT_KTNAME
      environment variables must point to a keytab file
      containing creds for a host-based test principal
      (see comment at top of source for details).
      Kerberos must be configured and a KDC containing the
      test principal must be running, otherwise the test
      will fail/hang.
      
      N.B. For now, the test must use the same principal for
      both client and server roles because it seems impossible
      to set them to different principals when they are
      threads in the same process.  Once one principal is
      cached in credential cache, attempts to acquire creds
      for a different "desired name" seem to be ignored and
      the cached principal is used instead.
      edd6b0ad
  17. 20 Apr, 2017 1 commit
    • Jim Garlick's avatar
      gssapi: define HAVE_LIBGSSAPI_KRB5 in configure.ac · 43f4c286
      Jim Garlick authored
      Problem: configure.ac is not setting HAVE_LIBGSSAPI_KRB5
      in src/platform.hpp when --with-libgssapi_krb5 is specified
      
      Commit 09e868b7
      switched the libgssapi_krb5 check from AC_CHECK_LIB
      to AC_SEARCH_LIBS, but neglected to add an AC_DEFINE
      for HAVE_LIBGSSAPI_KRB5, thus the GSSAPI code is
      never compiled.
      
      Solution: Add missing AC_DEFINE of HAVE_LIBGSSAPI_KRB5.
      43f4c286
  18. 19 Mar, 2017 1 commit
  19. 12 Mar, 2017 1 commit
    • Luca Boccassi's avatar
      Problem: ZMQ background threads are unnamed · 3ab4796c
      Luca Boccassi authored
      Solution: use pthread API to set the name. For now call every thread
      "ZMQ b/g thread". Would be nice to number the I/O threads and name
      explicitly the reaper thread, but in reality a bit of internal API
      churn would be necessary, so perhaps it's not worth it.
      This is useful when debugging a process with many threads.
      3ab4796c
  20. 18 Feb, 2017 1 commit
  21. 31 Dec, 2016 2 commits
  22. 26 Dec, 2016 1 commit
  23. 10 Nov, 2016 1 commit
    • Luca Boccassi's avatar
      Problem: linker fails looking for dladdr · 1b3fcbd3
      Luca Boccassi authored
      Solution: search and add it via AC_CHECK_LIB when building with
      libunwind, as the backtrace function uses dladdr. This problem
      only appears on some distributions and with some compiler/toolchain
      versions.
      1b3fcbd3
  24. 06 Nov, 2016 1 commit
  25. 05 Nov, 2016 1 commit
  26. 01 Nov, 2016 1 commit
  27. 27 Sep, 2016 2 commits
    • Luca Boccassi's avatar
      Problem: pkg-config Requires.private is broken · 06d810b4
      Luca Boccassi authored
      Solution: use only Libs.private to avoid breaking application builds.
      Even though Requires.private are supposed to be parsed only if
      pkg-config is called with --static, the --cflags parameter is enough
      to trigger the parsing, causing build failures for applications that
      do not (and should not) depend on libzmq's dependencies.
      06d810b4
    • Luca Boccassi's avatar
      Problem: pkgconfig file does not support static link · 6d941160
      Luca Boccassi authored
      Solution: add dependencies, if necessary, to the .private Libs and
      Requires field of the pkgconfig file at build time.
      This way pkg-config --static --libs libzmq will correctly print
      dependencies if they were used to build the static libzmq.a library.
      6d941160
  28. 31 Jul, 2016 1 commit
  29. 27 Jul, 2016 1 commit
  30. 13 Jun, 2016 1 commit
  31. 04 Jun, 2016 1 commit
  32. 10 May, 2016 1 commit
  33. 09 May, 2016 1 commit
  34. 06 May, 2016 2 commits
  35. 02 May, 2016 1 commit