1. 08 Feb, 2018 2 commits
  2. 02 Feb, 2018 1 commit
  3. 21 Oct, 2017 1 commit
  4. 19 Sep, 2017 2 commits
    • sigiesec's avatar
      Problem: inconsistent naming related to routing ids · 41bae55a
      sigiesec authored
      Solution: renamed routing_id fields in pipe_t, renamed ZMQ_CONNECT_RID to ZMQ_CONNECT_ROUTING_ID
      41bae55a
    • Luca Boccassi's avatar
      Problem: zmq_connect fails after disconnect due to RECONNECT_IVL == -1 · edb4ca10
      Luca Boccassi authored
      Solution: when a connection breaks and ZMQ_RECONNECT_IVL is set to -1,
      which means a reconnection will not be attempted, send a message from
      the I/O thread to the application thread to make the socket call
      term_endpoint, which is the equivalent of manually calling
      zmq_disconnect.
      This way subsequent zmq_connect call to the same endpoint will attempt
      again to do a connection.
      Otherwise, for some socket types like SUBs, those new connects will
      fail as the endpoint is recorded, despite the connection having been
      permanently closed.
      
      Add test cases to exercise this corner case with TCP and IPC.
      edb4ca10
  5. 07 Sep, 2017 2 commits
  6. 01 Sep, 2017 1 commit
  7. 18 Aug, 2017 1 commit
  8. 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
  9. 30 Dec, 2016 2 commits
    • Vincent Tellier's avatar
      Code formatting + reverted hard error handshake fail · 48bc75e8
      Vincent Tellier authored
       - Moved new events in draft section + added to zmq_draft.h
       - Removed the remainning tabs
       - Reverted the hard error (back to soft error) in curve_server.cpp
      
      => The feature doesn't works anymore
      48bc75e8
    • Vincent Tellier's avatar
      Fixed issue #2227 · b6e9e0c2
      Vincent Tellier authored
      Added two new monitoring events:
       - ZMQ_EVENT_HANDSHAKE_SUCCEED is raised once the encryption handshake succeed
       - ZMQ_EVENT_HANDSHAKE_FAILED is raised when it failed
      Both events are raised on server and client side.
      b6e9e0c2
  10. 12 Oct, 2016 1 commit
    • Jens Auer's avatar
      Fixed problems from previous PR for #2158 (#2160) · b0313259
      Jens Auer authored
      * - Fixed windows build errors
      - Extended monitor lock scope to prevent race-condition between
        process_stop and monitor
      
      * - Fixed windows build errors
      - Extended monitor lock scope to prevent race-condition between
        process_stop and monitor
      b0313259
  11. 11 Oct, 2016 1 commit
  12. 20 Jun, 2016 1 commit
  13. 04 May, 2016 1 commit
  14. 09 Feb, 2016 1 commit
    • Pieter Hintjens's avatar
      Problem: test_large_msg kills my system temporarily · 62c66ae7
      Pieter Hintjens authored
      And I'm on a reasonably sized laptop. I think allocating INT_MAX
      memory is dangerous in a test case.
      
      Solution: expose this as a context option. I've used ZMQ_MAX_MSGSZ
      and documented it and implemented the API. However I don't know how
      to get the parent context for a socket, so the code in zmq.cpp is
      still unfinished.
      62c66ae7
  15. 28 Jan, 2016 1 commit
  16. 27 Jan, 2016 1 commit
  17. 17 Dec, 2015 1 commit
  18. 30 Nov, 2015 1 commit
  19. 09 Oct, 2015 1 commit
  20. 06 Sep, 2015 1 commit
  21. 16 Aug, 2015 1 commit
  22. 05 Jun, 2015 1 commit
  23. 02 Jun, 2015 1 commit
  24. 12 Feb, 2015 2 commits
  25. 22 Jan, 2015 1 commit
  26. 09 Jan, 2015 1 commit
  27. 20 May, 2014 1 commit
  28. 30 Apr, 2014 1 commit
  29. 28 Apr, 2014 1 commit
    • Pieter Hintjens's avatar
      Problem: zmq_socket_monitor code is dirty · 9753de85
      Pieter Hintjens authored
      Specifically:
      
      * zmq_event_t should not be used internally in libzmq, it was
        meant to be an outward facing structure.
      
      * In 4.x, zmq_event_t does not correspond to monitor events, so
        I removed the structure entirely.
      
      * man page for zmq_socket_monitor is incomplete and the example
        code was particularly nasty.
      
      * test_monitor.cpp needed rewriting, it was not clean.
      9753de85
  30. 19 Jan, 2014 2 commits
    • Pieter Hintjens's avatar
      Cleaned up option to force identity on outgoing connection · 50bd28c0
      Pieter Hintjens authored
      - renamed to ZMQ_CONNECT_RID
      - fixed whitespace malformating around previous patch
      - renamamed next_peer_id to next_rid in preparation for
        larger rename of IDENTITY to ROUTING_ID
      
      Note: ZMQ_CONNECT_RID has no test case and no entry in the man
      page, as yet.
      50bd28c0
    • Tim M's avatar
      Fixed compile issue with missing member of socket_base. Changed… · b1920bdf
      Tim M authored
      Fixed compile issue with missing member of socket_base.  Changed ZMQ_NEXT_IDENTITY to ZMQ_NEXT_CONNECT_PEER_ID.
      
      Fixed case where ZMQ_NEXT_CONNECT_PEER_ID is used in ROUTER, and ROUTER does not read the identity message from the connected pipe.
      b1920bdf
  31. 12 Jan, 2014 1 commit
  32. 08 Jan, 2014 1 commit
  33. 07 Jan, 2014 1 commit
  34. 06 Jan, 2014 1 commit