- 02 Feb, 2018 1 commit
-
-
sigiesec authored
Solution: applied clang-format
-
- 21 Aug, 2017 1 commit
-
-
Simon Giesecke authored
Solution: add diagnostic output
-
- 03 Aug, 2017 1 commit
-
-
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
-
- 01 May, 2017 1 commit
-
-
Luca Boccassi authored
Solution: use ZMQ_LAST_ENDPOINT in most places. This alllows running tests in paralle, and on over-booked shared machines where many of the ports would be already in use. Keep 3 tests with an hardcoded port, as there are some code paths that require it (eg: connect before bind), but list those ports in tests/testutil.hpp as macros so that they do not overlap and still allow parallel runs. These changes were inspired by a patch uploaded to Ubuntu by the package maintainer, Steve Langasek <steve.langasek@ubuntu.com>. Thank you Steve!
-
- 30 Dec, 2016 1 commit
-
-
Luca Boccassi authored
Solution: wrap the event triggering in the DRAFT ifdef as well as the defines. This ensures that the event are returned only if the library was built with DRAFTs enabled. Also update the test case to expect the new events since it uses the catch-all mask. Although the sequence of event is different and this might be considered as an API breakage, using the catch-all ZMQ_EVENT_ALL mask implies that, well, all events are monitored so it's normal that new ones will be added. Users that don't want this kind of behaviour to change can simply monitor only the event that they care about.
-
- 01 May, 2016 1 commit
-
-
hitstergtd authored
Solution: Put them in the right order to quiet Coverity. Found by: Coverity Scan
-
- 28 Jan, 2016 1 commit
-
-
Constantin Rack authored
Solution: update to 2016
-
- 28 Jul, 2015 1 commit
-
-
Brian Silverman authored
I'm pretty sure this is an issue with the test being too picky and not a bug, but the behavior in this situation is not well documented.
-
- 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.
-
- 22 Jan, 2015 1 commit
-
-
Pieter Hintjens authored
Solution: update for 2015 Fixes #1320
-
- 28 Apr, 2014 1 commit
-
-
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.
-
- 02 Jan, 2014 1 commit
-
-
Pieter Hintjens authored
-
- 06 Nov, 2013 1 commit
-
-
Pieter Hintjens authored
- used msleep (10) in most places instead of zmq_sleep (1) - may cause failures on slower machines - to change, modify SETTLE_TIME in testutil.h - tested down to 1 msec on fast boxes
-
- 15 Sep, 2013 1 commit
-
-
Pieter Hintjens authored
* Removed redundant Z85 code and include files from project * Simplified use of headers in test cases (now they all just use testutil.hpp) * Export zmq_z85_encode() and zmq_z85_decode() in API * Added man pages for these two functions
-
- 17 Aug, 2013 2 commits
-
-
Richard Newton authored
-
Richard Newton authored
-
- 01 Jul, 2013 2 commits
-
-
Richard Newton authored
-
Richard Newton authored
-
- 22 Jun, 2013 2 commits
-
-
Pieter Hintjens authored
-
Ian Barber authored
Also tidy up monitor test a little.
-
- 12 Mar, 2013 1 commit
-
-
Pieter Hintjens authored
-
- 08 Mar, 2013 2 commits
-
-
Guido Goldstein authored
-
Guido Goldstein authored
Simplified the zmq_event_t structure for easier access and better usability towards language bindings.
-
- 31 Jan, 2013 2 commits
-
-
Pieter Hintjens authored
* Removed or truncated sleeps so the tests run faster * Removed dependencies on zmq_utils * Rewrote a few tests that were confusing * Minor code cleanups
-
Pieter Hintjens authored
-
- 21 Sep, 2012 1 commit
-
-
Lourens Naudé authored
Significantly reworked the monitoring infrastructure with a more granular per socket API and to play well with monitoring endpoints in application threads
-
- 06 Sep, 2012 1 commit
-
-
Arthur O'Dwyer authored
This change makes sure that even if the tests are built in a "release" configuration (with optimizations and NDEBUG turned on), the assertions won't get compiled out of the tests themselves. The C standard guarantees that the most recent inclusion of <assert.h> is the one that counts, so it's important that the "#undef NDEBUG/#include <assert.h>" come as the last thing in the block of header files. "testutil.hpp" includes <assert.h>, so I've left <assert.h> out of any test that #includes "testutil.hpp", just for the sake of brevity.
-
- 27 Aug, 2012 1 commit
-
-
Arthur O'Dwyer authored
This formerly unused parameter actually represents the socket on which the event was received. As such, we should check that its value makes sense: it must be either "rep" or "req", and in the case of some kinds of events, it must be specifically one or the other. After this change, "s" is no longer unused.
-
- 23 Aug, 2012 1 commit
-
-
Arthur O'Dwyer authored
Both memcmp and strcmp return zero on equal, nonzero on nonequal; so all of these tests were backwards. The original committer fixed the failure by comparing 22 bytes instead of the correct 21, so that the assertions would trigger only if the 22nd byte happened to match exactly --- which was rare. The correct fix is to compare the right number of bytes with the right sense. (I think all of the ".addr" fields are null-terminated, in which case it's more appropriate to use strcmp throughout.)
-
- 04 Aug, 2012 1 commit
-
-
Lourens Naudé authored
-
- 05 Jun, 2012 1 commit
-
-
AJ Lewis authored
GCC 4.1.2 on RHEL5 and SLES10 don't like not having a newline at the end of a source file, and error out if it's missing. Signed-off-by:
AJ Lewis <aj.lewis@quantum.com>
-
- 22 May, 2012 1 commit
-
-
Lourens Naudé authored
-
- 21 May, 2012 1 commit
-
-
Lourens Naudé authored
-
- 20 May, 2012 2 commits
-
-
Lourens Naudé authored
Rename type zmq_monitor_fn -> zmq_monitor for a more natural callback definition API (zmq_monitor type, monitor.function callback)
-
Lourens Naudé authored
Change zmq_monitor_fn type to cast between pointer-to-object and pointer-to-function in a more standards compliant way
-
- 13 May, 2012 1 commit
-
-
KennyTM~ authored
The current ZMQ_MONITOR code does not compile in gcc 4.7, as -pedantic and -Werror are enabled, and ISO C++ doesn't allow casting between normal pointers (void*) and function pointers, as pedantically their size could be different. This caused the library not compilable. This commit workaround the problem by introducing one more indirection, i.e. instead of calling (void *)listener which is an error, we have to use *(void **)&listener which is an undefined behavior :) but works on most platforms Also, `optval_ = monitor` will not set the parameter in getsockopt(), and the extra casting caused the LHS to be an rvalue which again makes the code not compilable. The proper way is to pass a pointer of function pointer and assign with indirection, i.e. `*optval_ = monitor`. Also, fixed an asciidoc error in zmq_getsockopt.txt because the `~~~~` is too long.
-
- 04 May, 2012 1 commit
-
-
Lourens Naudé authored
-