- 28 Jul, 2017 1 commit
-
-
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
-
- 17 May, 2017 1 commit
-
-
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.
-
- 12 Mar, 2017 2 commits
-
-
Luca Boccassi authored
Solution: call it simply "ZMQ background" instead of "ZMQ b/g thread"
-
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.
-
- 20 Nov, 2016 1 commit
-
-
Luca Boccassi authored
Solution: add a ZMQ_MSG_T_SIZE context read-only option so that wrappers can call zmq_ctx_get (ctx, ZMQ_MSG_T_SIZE) to get the size at runtime.
-
- 24 Sep, 2016 2 commits
-
-
Luca Boccassi authored
Solution: add a zmq_assert to check if the ephemeral sockets created to drain the queue of pending inproc connecting sockets was allocated successfully.
-
Luca Boccassi authored
Problem: zmq_ctx_term asserts with connect-before-bind and sockets with identity over inproc transport Solution: check if the connecting inproc socket has been closed before trying to send the identity. Otherwise the pipe will be in waiting_for_delimiter state causing writes to fail and the connect to assert when the context is being torn down and the pending inproc connects are resolved. Add test case that covers this behaviour.
-
- 17 Sep, 2016 1 commit
-
-
Constantin Rack authored
Solution: replace tabes with spaces
-
- 31 Jul, 2016 2 commits
-
-
reza-ebrahimi authored
-
Reza Ebrahimi authored
Convert manual (locking and unlocking) mutexes to scoped mutexes for the case of unlocking mutex even if the protected operation throws an exception (#2071)
-
- 18 May, 2016 1 commit
-
-
Chris-P-Bacon authored
Since ZMQ_USE_SODIUM is nowhere defined i guess it's meant to be ZMQ_USE_LIBSODIUM?
-
- 14 May, 2016 1 commit
-
-
evoskuil authored
-
- 30 Mar, 2016 2 commits
-
-
Pieter Hintjens authored
I changed this to ZMQ_USE_SODIUM to be consistent with other configuration options (especially ZMQ_USE_TWEETNACL). Solution: fix it.
-
Pieter Hintjens authored
Solution: use ZMQ_USE_LIBSODIUM to match ZMQ_USE_TWEETNACL
-
- 29 Mar, 2016 2 commits
-
-
Nikolay Edigaryev authored
Solution: use proper preprocessor macro
-
Nikolay Edigaryev authored
libsodium calls abort() when /dev/urandom can't be found even if one creates ZeroMQ context before calling chroot()[1]. This happens because crypto gets initialized on handshake, and at that moment the process is already chroot'ed. Solution: initialize cryptographic libraries in ctx randombytes_close() is already there in the destructor. [1] https://download.libsodium.org/doc/usage/index.html
-
- 18 Feb, 2016 1 commit
-
-
Osiris authored
Solution: Phase I - make precompiled.hpp be first file included in every source file
-
- 11 Feb, 2016 2 commits
-
-
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
-
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.
-
- 09 Feb, 2016 1 commit
-
-
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.
-
- 01 Feb, 2016 3 commits
-
-
Pieter Hintjens authored
-
Pieter Hintjens authored
-
Constantin Rack authored
Solution: replace with `zmq_ctx_term` Also fix whitespace (tabs instead of spaces)
-
- 28 Jan, 2016 1 commit
-
-
Constantin Rack authored
Solution: update to 2016
-
- 08 Dec, 2015 1 commit
-
-
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.
-
- 21 Aug, 2015 2 commits
-
-
Joe Eli McIlvain authored
Solution: Move the macros to a private header.
-
Richard Newton authored
-
- 16 Aug, 2015 1 commit
-
-
reza.ebrahimi authored
-
- 05 Jun, 2015 1 commit
-
-
Richard Newton authored
-
- 02 Jun, 2015 1 commit
-
-
Pieter Hintjens authored
Of course people still "can" distributed the sources under the LGPLv3. However we provide COPYING.LESSER with additional grants. Solution: specify these grants in the header of each source file.
-
- 12 Feb, 2015 1 commit
-
-
somdoron authored
-
- 22 Jan, 2015 1 commit
-
-
Pieter Hintjens authored
Solution: update for 2015 Fixes #1320
-
- 17 Nov, 2014 1 commit
-
-
Pieter Hintjens authored
Solution: set defaults back to infinity, and add new context option, ZMQ_BLOCKY that the user can set to false to get a less surprising behavior on context termination. Eg. zmq_ctx_set (ctx, ZMQ_BLOCKY, false);
-
- 31 Aug, 2014 1 commit
-
-
Jonathan Reams authored
When Curve authentication is used, libsodium opens a file descriptor to /dev/urandom to generate random bytes. When the ZMQ context terminates, it should ensure that file gets closed.
-
- 09 Jul, 2014 2 commits
-
-
Martin Hurton authored
-
Martin Hurton authored
-
- 02 Jul, 2014 1 commit
-
-
Joel Lauener authored
environment variables.
-
- 11 Jun, 2014 1 commit
-
-
Pieter Hintjens authored
Well, not gibberish, but 2^31 on Linux, which is useless. The code should probably use getrlimit on Linux and other calls depending on the system. For now I've set the ceiling at 64K.
-
- 04 Jun, 2014 1 commit
-
-
Richard Newton authored
-
- 23 May, 2014 1 commit
-
-
Martin Hurton authored
-