1. 28 Jul, 2017 1 commit
    • Luca Boccassi's avatar
      Problem: fd leak in tweetnacl with one ctx per thread · e015a0f8
      Luca Boccassi authored
      Solution: add a crypto [de-]initialiser, refcounted and serialised
      through critical sections.
      This is necessary as utility APIs such as zmq_curve_keypair also
      call into the sodium/tweetnacl libraries and need the initialisation
      outside of the zmq context.
      Also the libsodium documentation explicitly says that sodium_init
      must not be called concurrently from multiple threads, which could
      have happened until now. Also the randombytes_close function does
      not appear to be thread safe either.
      This change guarantees that the library is initialised only once at
      any given time across the whole program.
      Fixes #2632
      e015a0f8
  2. 17 May, 2017 1 commit
    • rkfg's avatar
      Problem: abort at socket creation on Android with jzmq · 72b4b683
      rkfg authored
      Solution: don't set thread name on Android
      
      Setting a thread name on Android may fail with "permission
      denied" error and abort the process due to failed assertion.
      Tested on Android 5 and 6 (two phones).
      Strangely enough, it only happens on signed APKs and is fine
      in debug. Using JeroMQ is not an option as we need TCP keepalive
      settings and authentication which JeroMQ doesn't support.
      72b4b683
  3. 12 Mar, 2017 2 commits
    • Luca Boccassi's avatar
      Problem: thread name is redundant · d7aceef2
      Luca Boccassi authored
      Solution: call it simply "ZMQ background" instead of "ZMQ b/g thread"
      d7aceef2
    • 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
  4. 20 Nov, 2016 1 commit
  5. 24 Sep, 2016 2 commits
  6. 17 Sep, 2016 1 commit
  7. 31 Jul, 2016 2 commits
  8. 18 May, 2016 1 commit
  9. 14 May, 2016 1 commit
  10. 30 Mar, 2016 2 commits
  11. 29 Mar, 2016 2 commits
  12. 18 Feb, 2016 1 commit
  13. 11 Feb, 2016 2 commits
    • Pieter Hintjens's avatar
      Problem: tweetnacl sources are a mess · f8ed793f
      Pieter Hintjens authored
      - they have no copyright / license statement
      - they are in some randomish directory structure
      - they are a mix of postable and non-portable files
      - they do not conform to conditional compile environment
      
      Overall, it makes it rather more work than needed, in build scripts.
      
      Solution: clean up tweetnacl sauce.
      
      - merged code into single tweetnacl.c and .h
      - standard copyright header, DJB to AUTHORS
      - moved into src/ along with all other source files
      - all system and conditional compilation hidden in these files
      - thus, they can be compiled and packaged in all cases
      - ZMQ_USE_TWEETNACL is set when we're using built-in tweetnacl
      - HAVE_LIBSODIUM is set when we're using external libsodium
      f8ed793f
    • Pieter Hintjens's avatar
      Problem: use of libsodium vs. tweetnacl is confused · b49a6041
      Pieter Hintjens authored
      It's unclear which we need and in the source code, conditional code
      treats tweetnacl as a subclass of libsodium, which is inaccurate.
      
      Solution: redesign the configure/cmake API for this:
      
      * tweetnacl is present by default and cannot be enabled
      * libsodium can be enabled using --with-libsodium, which replaces
        the built-in tweetnacl
      * CURVE encryption can be disabled entirely using --enable-curve=no
      
      The macros we define in platform.hpp are:
      
          ZMQ_HAVE_CURVE    1        //  When CURVE is enabled
          HAVE_LIBSODIUM    1        //  When we are using libsodium
          HAVE_TWEETNACL    1        //  When we're using tweetnacl (default)
      
      As of this patch, the default build of libzmq always has CURVE
      security, and always uses tweetnacl.
      b49a6041
  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. 01 Feb, 2016 3 commits
  16. 28 Jan, 2016 1 commit
  17. 08 Dec, 2015 1 commit
    • Ilya Kulakov's avatar
      Add the VMCI transport. · 68b13fbd
      Ilya Kulakov authored
      VMCI transport allows fast communication between the Host
      and a virtual machine, between virtual machines on the same host,
      and within a virtual machine (like IPC).
      
      It requires VMware to be installed on the host and Guest Additions
      to be installed on a guest.
      68b13fbd
  18. 21 Aug, 2015 2 commits
  19. 16 Aug, 2015 1 commit
  20. 05 Jun, 2015 1 commit
  21. 02 Jun, 2015 1 commit
  22. 12 Feb, 2015 1 commit
  23. 22 Jan, 2015 1 commit
  24. 17 Nov, 2014 1 commit
  25. 31 Aug, 2014 1 commit
  26. 09 Jul, 2014 2 commits
  27. 02 Jul, 2014 1 commit
  28. 11 Jun, 2014 1 commit
  29. 04 Jun, 2014 1 commit
  30. 23 May, 2014 1 commit