1. 25 Oct, 2017 1 commit
    • f18m's avatar
      Change ZMQ_THREAD_AFFINITY to… · 2aa0e6fd
      f18m authored
      Change ZMQ_THREAD_AFFINITY to ZMQ_THREAD_AFFINITY_CPU_ADD/ZMQ_THREAD_AFFINITY_CPU_REMOVE. Avoid prefix thread names when no prefix was set.
      2aa0e6fd
  2. 17 Oct, 2017 1 commit
  3. 16 Oct, 2017 1 commit
    • 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
  4. 09 Oct, 2017 1 commit
  5. 19 Sep, 2017 2 commits
  6. 07 Sep, 2017 1 commit
  7. 06 Sep, 2017 1 commit
  8. 01 Sep, 2017 1 commit
  9. 19 Aug, 2017 1 commit
  10. 18 Aug, 2017 3 commits
  11. 04 Aug, 2017 1 commit
  12. 03 Aug, 2017 1 commit
    • Simon Giesecke's avatar
      Replace console output by monitoring events for curve security issues (#2645) · 5d4e30eb
      Simon Giesecke authored
      * Fixing #2002 one way of doing it
      
       * Mechanisms can implement a new method `error_detail()`
       * This error detail have three values for the moment: no_detail
       (default), protocol, encryption.
          + generic enough to make sense for all mechanisms.
          - low granularity level on information.
      
      * Fixing #2002: implementation of the error details
      
      The ZMQ_EVENT_HANDSHAKE_FAILED event carries the error details
      as value.
      
      * Removed Microsoft extenstion for enum member access
      
      This was leading to compilation error under linux.
      
      * Adaptation of CURVE test cases
      
      * Monitoring event: changed API for detailed events
      
      Removed ZMQ_EVENT_HANDSHAKE_FAILED and replaced it by:
      - ZMQ_EVENT_HANDSHAKE_FAILED_NO_DETAIL,
      - ZMQ_EVENT_HANDSHAKE_FAILED_PROTOCOL,
      - ZMQ_EVENT_HANDSHAKE_FAILED_ENCRYPTION
      
      Adaptation of text case `security_curve`
      
      * Removed event value comparison
      
      This was introduced for the previous API model adaptation
      
      * Removed the prints in std output and added missing details
      
      `current_error_detail` was not set in every protocol error cases
      
      * Fixed initialization of current_error_detail
      
      * Fixed error in greeting test case
      
      The handshake failure due to mechanism mismatch in greeting is actually
      a protocol error. The error handling method consider it like so and
      send a protocol handshake failure monitoring event instead of no_detail.
      
      Fixed the test_security_curve expectation as well.
      
      * Upgraded tests of monitoring events
      
      The tests check the number of monitoring events received
      
      * Problem: does not build under Linux or without ZMQ_DRAFT_API
      
      Solution:
      - properly use ZMQ_DRAFT_API conditional compilation
      - use receive timeouts instead of Sleep
      
      * Problem: duplicate definition of variable 'timeout'
      
      Solution: merged definitions
      
      * Problem: inconsistent timing dependencies
      
      Solution: reduce timing dependency by using timeouts at more places
      
      * Problem: assertion failure under Linux due to unexpected monitor event
      
      Solution: output event type to aid debugging
      
      * Problem: erroneous assertion code
      
      * Problem: assertion failure with a garbage server key due to an extra third event
      
      Solution: changed assertion to expect three events (needs to be checked)
      
      * Problem: extra include directive to non-existent file
      
      Solution: removed include directive
      
      * Problem: assertion failure on appveyor for unknown reason
      
      Solution: improve debug output
      
      * Problem: no build with libsodium and draft api
      
      Solution: add build configurations with libsodium and draft api
      
      * Problem: assertion failure on CI
      
      Solution: change assertion to reflect actual behaviour on CI (at least temporarily)
      
      * Problem: error in condition in assertion code
      
      * Problem: assertion failure on CI
      
      Solution: generalize assertion to match behavior on CI
      
      * Problem: assertion failures on CI
      
      Solution: removed inconsistent assertion on no monitor events before flushing
      improved debuggability by converting function into macro
      
      * Problem: diverging test code for three analogous test cases with garbage key
      
      Solution: extract common code into function
      
      * Problem: does not build without ZMQ_BUILD_DRAFT_API
      
      Solution: introduce dummy variable
      
      * Attempt to remove workaround regarding ZMQ_EVENT_HANDSHAKE_FAILED_NO_DETAIL again
      
      * Problem: EAGAIN error after handshake complete if there is no more data in inbuffer
      
      Solution: Skip tcp_read attempt in that case
      
      * Problem: handshaking event emitted after handshaking failed
      
      Solution: use stream_engine_t::handshaking instead of mechanism_t::status() to determine whether still handshaking
      
      * Include error code in debug output
      
      * Improve debugging output: output flushed events
      
      * Split up ZMQ_EVENT_HANDSHAKE_FAILED_PROTOCOL into ZMQ_EVENT_HANDSHAKE_FAILED_ZMTP and ZMQ_EVENT_HANDSHAKE_FAILED_ZAP
      
      * Fixed compilation without ZMQ_BUILD_DRAFT_API
      
      * Renamed ZMQ_EVENT_HANDSHAKE_SUCCEED to ZMQ_EVENT_HANDSHAKE_SUCCEEDED for language consistency
      
      * Renamed ZMQ_EVENT_HANDSHAKE_SUCCEED to ZMQ_EVENT_HANDSHAKE_SUCCEEDED for language consistency
      
      * Renamed ZMQ_EVENT_HANDSHAKE_SUCCEED to ZMQ_EVENT_HANDSHAKE_SUCCEEDED for language consistency
      
      * Fixed assert_monitor_event (require event instead of allowing no event)
      Reverted erroneous change to handshaking condition
      Renamed test_wrong_key to test_garbage_key
      Generalized assumption in test_garbage_key to allow for ZMQ_EVENT_HANDSHAKE_FAILED_NO_DETAIL with error == EPIPE
      
      * Better isolate test cases from each other by providing a fresh context & server for each
      
      * Added diagnostic output
      
      * Changed assertion to reflect actual behavior on CI
      
      * Fixed formatting, observe maximum line length
      
      * Fixed formatting, observe maximum line length
      
      * Increase timeout to check if this fixes valgrind run
      
      * Close server with close_zero_linger
      
      * Increase timeout to check if this fixes valgrind run
      
      * Increase timeout to check if this fixes valgrind run
      
      * Generalize assertion to also work with valgrind
      
      * Fixed formatting
      
      * Add more diagnostic output
      
      * Generalize assertion to also work with valgrind
      5d4e30eb
  13. 31 Jul, 2017 1 commit
  14. 28 Apr, 2017 1 commit
    • Luca Boccassi's avatar
      Problem: new zmq_poller used by zmq_poll without DRAFTs · 90c76fbd
      Luca Boccassi authored
      Solution: do not define ZMQ_HAVE_POLLER in src/zmq_drafts.h otherwise
      src/zmq.cpp will implement zmq_poll using the new poller classes.
      Same for ZMQ_HAVE_TIMERS, even though it has no internal effect, but
      to be safe against future development.
      90c76fbd
  15. 25 Apr, 2017 1 commit
    • Jim Garlick's avatar
      gssapi: renumber socket options · c978d3bb
      Jim Garlick authored
      Problem: GSSAPI NAMETYPE socket option numbers were modified
      +1000 when moved to DRAFT section, but should use the definitive
      values while in DRAFT to minimize disruption later.
      
      Solution: renumber the socket options
      c978d3bb
  16. 24 Apr, 2017 1 commit
    • Jim Garlick's avatar
      gssapi: move new options to DRAFT section · 9fbf2e2e
      Jim Garlick authored
      Problem: The new GSSAPI NAMESPACE options should have been
      added to the DRAFT section of the API so they can be changed
      until stabilized.
      
      Solution:
      - Move defines to the DRAFT section of zmq.h
      - Duplicate them in zmq_draft.h, as is the local custom
      - Compile only if defined (ZMQ_BUILD_DRAFT_API)
      - Refactor internals slightly to avoid #ifdef hell
      9fbf2e2e
  17. 30 Dec, 2016 1 commit
  18. 29 Dec, 2016 1 commit
  19. 27 Sep, 2016 2 commits
    • Min RK's avatar
      add n_events argument to zmq_poller_wait_all · de7fc1fc
      Min RK authored
      avoids unnecessary heap allocations, races on the number of items
      de7fc1fc
    • Min RK's avatar
      Problem: zmq_poller only signals one event · 2bc97966
      Min RK authored
      Solution: zmq_poller_wait_all signals all events
      
      allows signaling multiple events with one call to zmq_poller_wait_all
      rather than emitting only one event.
      
      this prepares for zmq_poll being based on zmq_poller,
      which requires events for all sockets rather than just one.
      2bc97966
  20. 15 May, 2016 1 commit
  21. 14 May, 2016 1 commit
  22. 13 May, 2016 1 commit
  23. 12 May, 2016 1 commit
  24. 03 May, 2016 1 commit
  25. 02 May, 2016 7 commits
  26. 21 Feb, 2016 1 commit
  27. 18 Feb, 2016 1 commit
  28. 28 Jan, 2016 1 commit
  29. 02 Jun, 2015 1 commit
  30. 22 Jan, 2015 1 commit