1. 17 Jun, 2014 1 commit
    • Pieter Hintjens's avatar
      Problem: API violations are treated as recoverable errors · b4ed3f55
      Pieter Hintjens authored
      The example is applications passing invalid arguments to a socket option
      and then failing to check the return code. The results can be very hard
      to diagnose. Here are some threads that show the pain this causes:
      
      * https://github.com/zeromq/zyre/issues/179
      * http://lists.zeromq.org/pipermail/zeromq-dev/2014-June/026388.html
      
      One common argument is that a library should never assert, and should
      pass errors back to the calling application. The counter argument is
      that when an application is broken enough to pass garbage to libzmq,
      it cannot be trusted to handle the resulting errors properly. Empirical
      evidence from CZMQ, where we systematically assert on bad arguments, is
      that this militant approach makes applications more, not less, robust.
      
      I don't see any valid use cases for returning errors on bad arguments,
      with one exception: zmq_setsockopt can be used to probe whether libzmq
      was e.g. built with CURVE security. I'd argue that it's nasty to use a
      side effect like this. If apps need to probe how libzmq was built, this
      should be done explicitly, and for ALL build options, not just CURVE.
      
      There are/were no libzmq test cases that check the return code for an
      invalid option.
      
      For now I've enabled militant assertions using --with-militant at
      configure time. However I'd like to make this the default setting.
      b4ed3f55
  2. 03 May, 2014 1 commit
    • Samuel Martin's avatar
      autotools: tests: disable test_fork if fork() is not available · 6fdafc45
      Samuel Martin authored
      fork() support is optional and its availability is correctly detected at
      contfigure time.
      
      But test_fork was all always built, preventing build for targets that do
      not provide fork() from building successfully.
      
      This pacth fixes the autotools on this point.
      6fdafc45
  3. 01 May, 2014 1 commit
  4. 24 Apr, 2014 1 commit
  5. 15 Mar, 2014 1 commit
  6. 10 Mar, 2014 1 commit
    • Drew Crawford's avatar
      Libsodium is now required if and only if --with-libsodium is used · 6009e2c6
      Drew Crawford authored
      This patch is proposed for https://github.com/zeromq/libzmq/issues/912.  If a user specifies that they want libzmq built with libsodium, and the requirement cannot be satisfied, we should error at the user so they can either A) install libsodium to a reasonable location or B) relax their requirement for libsodium support.
      
      Previously a warning was issued in this case, causing users who wanted libsodium support not to get it, which may be discovered at a much later time when their programs didn't work as expected.
      
      I release this patch under the LGPL v3 or any later version.
      6009e2c6
  7. 06 Dec, 2013 3 commits
  8. 04 Dec, 2013 1 commit
    • Brandon Carpenter's avatar
      Intial IPC accept filter support. · 8662f44e
      Brandon Carpenter authored
      Adds sets of process (Linux only), user, and group IDs for filtering
      connections from peer processes over IPC transport.  If all of the
      filter sets are empty, every connection is accepted.  Otherwise,
      credentials for a connecting process are checked against the filter sets
      and the connection is only accepted if a match is found.
      
      This commit is part of LIBZMQ-568 and only adds the filter sets and
      implements the filter in the IPC accept method.  The interface for
      adding IDs to filter sets are included in a separate commit.
      
      IPC accept filtering is supported only on Linux and OS X.
      8662f44e
  9. 01 Nov, 2013 1 commit
  10. 24 Oct, 2013 1 commit
  11. 04 Oct, 2013 1 commit
  12. 29 Sep, 2013 1 commit
  13. 27 Sep, 2013 2 commits
  14. 24 Sep, 2013 1 commit
  15. 23 Sep, 2013 1 commit
  16. 01 Sep, 2013 1 commit
  17. 28 Jun, 2013 1 commit
    • Pieter Hintjens's avatar
      Added Z85 support · 70417701
      Pieter Hintjens authored
      The use of binary for CURVE keys is painful; you cannot easily copy
      these in e.g. email, or use them directly in source code. There are
      various encoding possibilities. Base16 and Base64 are not optimal.
      Ascii85 is not safe for source (it generates quotes and escapes).
      
      So, I've designed a new Base85 encoding, Z85, which is safe to use
      in code and elsewhere, and I've modified libzmq to use this where
      it also uses binary keys (in get/setsockopt).
      
      Very simply, if you use a 32-byte value, it's Base256 (binary),
      and if you use a 40-byte value, it's Base85 (Z85).
      
      I've put the Z85 codec into z85_codec.hpp, it's not elegant C++
      but it is minimal and it works. Feel free to rewrap as a real class
      if this annoys you.
      70417701
  18. 22 Jun, 2013 1 commit
  19. 01 Jun, 2013 1 commit
    • Jose Pedro Oliveira's avatar
      Make · 42ab0e82
      Jose Pedro Oliveira authored
          ./configure --with-system-pgm
      detect the OpenPGM 5.2 system library.
      
      Note that OpenPGM installs a versioned pkgconfig file
      (openpgm-5.2.pc, openpgm-5.1.pc).
      42ab0e82
  20. 07 May, 2013 1 commit
  21. 28 Apr, 2013 1 commit
  22. 12 Mar, 2013 1 commit
  23. 18 Jan, 2013 1 commit
  24. 17 Jan, 2013 1 commit
  25. 12 Dec, 2012 1 commit
  26. 03 Jul, 2012 1 commit
  27. 06 Apr, 2012 1 commit
  28. 05 Apr, 2012 1 commit
  29. 07 Feb, 2012 1 commit
  30. 19 Jan, 2012 1 commit
  31. 03 Dec, 2011 2 commits
  32. 09 Nov, 2011 2 commits
  33. 31 Oct, 2011 1 commit
  34. 26 Oct, 2011 1 commit
  35. 04 Oct, 2011 1 commit