0
0
mirror of https://github.com/zeromq/libzmq.git synced 2025-01-14 09:47:56 +08:00

6012 Commits

Author SHA1 Message Date
Ilya Kulakov
656cdb959a Problem: Race condition in IPC sockets
Solution: Don't unlink file on close

File may not belong to the socket at that point.
2017-10-05 14:57:10 -07:00
Luca Boccassi
44f96a3652 Merge pull request #2745 from sigiesec/rename-identity
Problem: term "identity" is confusing
2017-09-20 10:08:45 +02:00
Constantin Rack
f6688f0516 Merge pull request #2756 from bluca/reconnect_ivl_connect
Problem: zmq_connect fails after disconnect due to RECONNECT_IVL == -1
2017-09-20 07:46:19 +02:00
sigiesec
2c8a7223b8 Problem: remaining use of "identity"
Solution: replaced by "routing id"
2017-09-19 17:55:00 +02:00
sigiesec
7e3f4b1d32 Problem: ZMTP protocol broken w.r.t. Identity property
Solution: differentiate propertly between ZMTP property names and ZeroMQ API property names
2017-09-19 17:55:00 +02:00
sigiesec
a5e3a65ae2 Problem: inconsistency between zmq.h and zmq_draft.h
Solution: fix zmq_draft.h
2017-09-19 17:55:00 +02:00
sigiesec
4b821d8f84 Problem: remaining uses of "identity"
Solution: replaced by "routing id"
2017-09-19 17:54:59 +02:00
sigiesec
1414bf938c Problem: use of unqualified "id" in code example
Solution: use "routing_id" instead
2017-09-19 17:54:52 +02:00
sigiesec
d6694e7d47 Problem: Use of "rid" in the docs
Solution: Replaced by "routing id"
2017-09-19 17:53:54 +02:00
sigiesec
12f62c74c1 Problem: docs refer to "Identity"
Solution: change docs to refer to "Routing id"
2017-09-19 17:53:54 +02:00
sigiesec
fab57634b4 Problem: Message metadata properties still refer to "identity"
Solution: Renamed, but support querying the property by its old name
2017-09-19 17:53:53 +02:00
sigiesec
27c7e52a5a Problem: Usage of "rid" in server_t
Solution: Replaced by "routing_id"
2017-09-19 17:53:53 +02:00
sigiesec
41bae55af7 Problem: inconsistent naming related to routing ids
Solution: renamed routing_id fields in pipe_t, renamed ZMQ_CONNECT_RID to ZMQ_CONNECT_ROUTING_ID
2017-09-19 17:53:53 +02:00
sigiesec
9e7507b38b Problem: term "identity" is confusing
Solution: replace by "routing id"
2017-09-19 17:53:44 +02:00
Luca Boccassi
76dfec7fc3 Merge pull request #2755 from sigiesec/client-side-error
Problem: tests where client should receive an ERROR sometimes do not
2017-09-19 16:48:37 +02:00
Luca Boccassi
edb4ca1023 Problem: zmq_connect fails after disconnect due to RECONNECT_IVL == -1
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.
2017-09-19 14:05:43 +01:00
sigiesec
e0243dcbca Problem: tests where client should receive an ERROR sometimes do not
receive an ERROR (probably because the connection is closed before)

Solution: wait for client-side monitor events before closing the client
socket

Fixes #2705
2017-09-19 11:16:05 +02:00
Luca Boccassi
843e627bed Merge pull request #2753 from zeromq/zap-domain-docs
Problem: documentation of ZMQ_ZAP_DOMAIN is wrong
2017-09-19 10:17:15 +02:00
sigiesec
7297df6278 Problem: documentation of ZMQ_ZAP_DOMAIN is wrong
Solution: fix documentation
2017-09-19 09:13:57 +02:00
Luca Boccassi
e2f2193bec Merge pull request #2752 from sigiesec/test-no-zap-handler
Problem: missing tests and inconsistent behaviour for ZAP corner cases
2017-09-18 20:19:14 +02:00
sigiesec
77f76a49b2 Problem: no tests for cases 5 and 6 of #2711
Solution: added tests
2017-09-18 18:43:32 +02:00
sigiesec
e546f9296e Problem: duplicated code & inconsistent behaviour between
mechanisms

Solution: uniformly require a ZAP domain to be set to activate ZAP
handling, clarify comment on Stonehouse pattern
2017-09-18 17:01:38 +02:00
sigiesec
ee8b8bd29c Problem: no test for ZAP handler terminating in flight
Solution: added test & some improvements of test utils
2017-09-18 16:54:03 +02:00
sigiesec
a5f94cb610 Problem: tests without ZAP handler are failing
Solution: emit events as expected by tests, and refuse connections when
ZAP is required but no handler started

Addresses #2711 partially
2017-09-18 12:58:09 +02:00
sigiesec
13b972b226 Problem: no tests without ZAP handler where one is expected
Solution: added test case for NULL/PLAIN/CURVE
2017-09-18 10:26:28 +02:00
Jim Klimov
9071265c02 Merge pull request #2751 from bluca/centos6
Problem: CentOS 6 build fails
2017-09-18 01:32:49 +02:00
Luca Boccassi
40c1a3ab7e Problem: CentOS 6 build fails
Solution: use same autoconf workaround as for Debian 7, and manually
create the config directory
2017-09-17 20:44:28 +01:00
Luca Boccassi
2e167886cf Merge pull request #2749 from reza-ebrahimi/master
Update AUTHERS File
2017-09-15 00:10:31 +02:00
Luca Boccassi
23c2f4987b Merge pull request #2748 from tkoeppe/relicense
RELICENSE: Google, Inc.
2017-09-14 23:54:41 +02:00
Reza Ebrahimi
633325e0bc Update AUTHERS File 2017-09-14 22:04:26 +04:30
Thomas Köppe
21d78f4789 RELICENSE: Google, Inc.
Relevant commits: ddb82a546b8786b23b977087000e296589529cb2, 68f5926ec65d33043ba3f1687e49d1e6abe47fa2

Also adds AUTHORS entry that should have been part of the previous commits.
2017-09-13 16:31:38 +01:00
Luca Boccassi
5de2a82be8 Merge pull request #2744 from msune/refactor_poller_wait
Problem: duplicated socket_poller::wait() code
2017-09-13 00:48:26 +02:00
Marc Sune
5b92989540 Problem: duplicated socket_poller::wait() code
zmq::socket_poller_t::wait() had an important set of common lines
between POLL and SELECT variant.

Solution: refactor zmq::socket_poller_t::wait() and add the
following methods:

zmq::socket_poller_t::zero_trail_events()
zmq::socket_poller_t::check_events()
zmq::socket_poller_t::adjust_timeout()

Signed-off-by: Marc Sune <mardevel@gmail.com>
2017-09-12 21:47:57 +02:00
Constantin Rack
18498f620f Merge pull request #2746 from zeromq/revert-2743-rename-identity
Revert "Problem: term "identity" is confusing"
2017-09-07 15:24:07 +02:00
Doron Somech
af03241dcb Revert "Problem: term "identity" is confusing" 2017-09-07 15:47:43 +03:00
Doron Somech
08b01a5108 Merge pull request #2743 from sigiesec/rename-identity
Problem: term "identity" is confusing
2017-09-07 12:58:56 +03:00
sigiesec
cd55c62499 Problem: use of unqualified "id" in code example
Solution: use "routing_id" instead
2017-09-07 11:21:13 +02:00
sigiesec
0874eec803 Problem: Use of "rid" in the docs
Solution: Replaced by "routing id"
2017-09-07 11:18:50 +02:00
sigiesec
f174003740 Problem: docs refer to "Identity"
Solution: change docs to refer to "Routing id"
2017-09-07 11:09:18 +02:00
sigiesec
deae59dca9 Problem: Message metadata properties still refer to "identity"
Solution: Renamed, but support querying the property by its old name
2017-09-07 10:33:25 +02:00
sigiesec
ae2ea1a655 Problem: Usage of "rid" in server_t
Solution: Replaced by "routing_id"
2017-09-07 10:33:25 +02:00
sigiesec
e00131dd43 Problem: inconsistent naming related to routing ids
Solution: renamed routing_id fields in pipe_t, renamed ZMQ_CONNECT_RID to ZMQ_CONNECT_ROUTING_ID
2017-09-07 10:33:13 +02:00
sigiesec
1daf83079a Problem: term "identity" is confusing
Solution: replace by "routing id"
2017-09-06 17:45:56 +02:00
Doron Somech
876d90732d Merge pull request #2741 from bluca/proxy_stats_typos
Problems: typos in proxy_steerable stats
2017-09-06 12:04:57 +03:00
Luca Boccassi
4fac78ec31 Problem: proxy stat 5th multipart message treated as 1st
Solution: fix it
2017-09-06 08:27:29 +01:00
Luca Boccassi
d7da31ed25 Problem: typo in comment in proxy.cpp
Solution: fix it
2017-09-06 08:27:17 +01:00
Doron Somech
f520738a0a Merge pull request #2740 from bluca/proxy_stats_frames
Problem: proxy_steerable STATISTICS returns conflated buffers
2017-09-06 08:58:34 +03:00
Luca Boccassi
b8695a47b5 Problem: proxy_steerable STATISTICS returns conflated buffers
Solution: split each stat into its own frame, to make it simpler and
easier to use it, especially from high level bindings
2017-09-06 01:28:28 +01:00
Constantin Rack
a89d79aa71 Merge pull request #2738 from bluca/proxy_stat_fixes
Problems: proxy stats test break 32bit build, not declared as draft
2017-09-05 20:52:51 +02:00
Luca Boccassi
78c4d33600 Problem: new STATISTICS proxy_steerable not behind DRAFT
Solution: ifdef it until it's declared stable
2017-09-05 17:37:52 +01:00
Luca Boccassi
c5aef5e078 Problem: compilation fails on 32 bit
Solution: trucate 64 bit stats in test_proxy, as it's much easier than
to try and print 64 unsigned integers in a portable way
2017-09-05 17:23:08 +01:00
f18m
4be9513443 Add "STATISTICS" command to zmq_proxy_steerable() (#2737)
* Issue #2736: Add STATISTICS command to zmq_proxy_steerable()
2017-09-05 17:05:04 +01:00
Luca Boccassi
f4b32aa792 Merge pull request #2734 from pavel-pimenov/fix-v1001
Variable is assigned but is not used until the end of the function
2017-09-04 15:25:43 +01:00
Luca Boccassi
197ae832bf Merge pull request #2735 from pavel-pimenov/fix-728
Excessive check options.mechanism == ZMQ_NULL
2017-09-04 14:50:34 +01:00
pavel.pimenov
0e8bf3520c V728 An excessive check 'options.mechanism == 0' can be simplified.
The '||' operator is surrounded by opposite expressions. session_base.cpp 377
2017-09-04 15:25:31 +03:00
pavel.pimenov
51ac7d28c5 V1001 The 'ptr' variable is assigned but is not used until the end of the function. 2017-09-04 15:15:35 +03:00
Constantin Rack
7afd6ab5ef Merge pull request #2732 from bluca/compiler_warnings
Problems: compiler warnings
2017-09-01 22:11:57 +02:00
Luca Boccassi
8feed48bb9 Problem: switch statements without breaks
Solution: add /* FALLTHROUGH */ comments so that nagging compilers
don't nag
2017-09-01 20:01:15 +01:00
Luca Boccassi
31089326fb Problem: unused variables warnings in get_peer_state
Solution: wrap arguments with LIBZMQ_UNUSED
2017-09-01 19:57:00 +01:00
Luca Boccassi
0382118371 Problem: unused variable in test_wait_corner_cases
Solution: don't pass it
2017-09-01 19:55:51 +01:00
Luca Boccassi
31e3977ab9 Merge pull request #2731 from sigiesec/fix-issue-2723
Problem: assertion in src\select.cpp:111 on Windows or hang on zmq_ctx_destroy
2017-09-01 19:51:39 +01:00
Luca Boccassi
17b95683ce Merge pull request #2730 from sigiesec/fix-issue-2623
Problem: unable to query state of a router for a particular peer
2017-09-01 16:23:42 +01:00
sigiesec
79e28af4ce Problem: new function zmq_socket_get_peer_state not in zmq_draft.h
Solution: added function to zmq_draft.h
2017-09-01 17:15:23 +02:00
sigiesec
f3b268d84f Problem: no tests for error cases of zmq_socket_get_peer_state
Solution: added tests
2017-09-01 16:28:59 +02:00
sigiesec
eeccbbd6f8 Problem: test case fails with tcp transport
Solution: use inproc transport instead
2017-09-01 16:28:59 +02:00
sigiesec
fc334bc759 Problem: unclean and duplicated test code
Solution: refactoring
2017-09-01 16:28:59 +02:00
sigiesec
f70097c1cf Problem: test does not trigger HWM
Solution: modify order of operations, add diagnostic output
2017-09-01 16:28:59 +02:00
sigiesec
48a1e637b6 Problem: zmq_socket_get_peer_state is not implemented
Solution: add initial implementation
2017-09-01 16:28:58 +02:00
sigiesec
cda20260b3 Problem: missing call to zmq_poller_destroy
Solution: added call
2017-09-01 16:28:58 +02:00
sigiesec
f4d139bd16 Problem: duplicated code in socket-related functions
Solution: extract as_socket_base_t function
2017-09-01 16:28:58 +02:00
sigiesec
efa86fe629 Problem: no test case using the proposed zmq_socket_get_peer_state function
Solution: added test case (with dummy implementation of zmq_socket_get_peer_state)
2017-09-01 16:28:58 +02:00
sigiesec
49e1b8b75f Problem: test case in main function
Solution: extracted test_basic function
2017-09-01 16:28:57 +02:00
Jim Klimov
4691714d5c Merge pull request #2729 from bluca/cmake
Problems: ZMQ_HAVE_O_CLOEXEC not defined by CMake, support for CMake << 3.1 broken
2017-09-01 14:53:45 +02:00
Luca Boccassi
fab14a3cc1 Problem: support for CMake << 3.1 broken
Solution: remove redundant target_sources directive
2017-09-01 10:59:48 +01:00
sigiesec
23e018f37a Problem: termination is requested from a session's owner when already in
pending termination while processing an error

Solution: terminate pipe instead

Fixes #2723
2017-09-01 11:55:31 +02:00
sigiesec
eb8105cde1 Problem: assertion failure in select.cpp:111 under Windows
Solution: handle case when get_fd_family fails
2017-09-01 11:55:31 +02:00
Luca Boccassi
124e04659c Problem: ZMQ_HAVE_O_CLOEXEC not defined by CMake
Solution: add it to CMake's platform.hpp.in
2017-09-01 10:15:42 +01:00
Luca Boccassi
28a4b9a969 Merge pull request #2727 from fove-robin/fix-o-cloexec
Problem: ZMQ_HAVE_O_CLOEXEC always disabled
2017-09-01 09:39:39 +01:00
Robin Stacey
83f54d90ad Problem: ZMQ_HAVE_O_CLOEXEC always disabled
Solution: Escape quotes in cmake test.
2017-09-01 16:37:27 +09:00
Simon Giesecke
f1c72dc8e5 Merge pull request #2721 from bjovke/my_work
Problem: Inconsistent size_t/int usage. size_t and int don't match in 64 bit build and produce warnings. Solution: types corrected.
2017-08-28 15:47:57 +02:00
bjovke
91e0d689bb Problem: Inconsistent size_t/int usage. Solution: types corrected. 2017-08-28 15:03:46 +02:00
Constantin Rack
9c8844fd08 Merge pull request #2719 from jimklimov/setThreadName
Problem: cosmetic setThreadName() can be fatal
2017-08-25 16:01:52 +02:00
Jim Klimov
40a3b0746f Problem: cosmetic setThreadName() can be fatal
Solution: do not assert() the values returned; if we failed to set the thread name - we just have harder debugging, not flawed production conditions.
Closes github issue #2679

Signed-off-by: Jim Klimov <EvgenyKlimov@eaton.com>
2017-08-25 15:30:03 +02:00
Luca Boccassi
5c981be9f8 Merge pull request #2718 from sigiesec/issue-template
Problem: bug reports are often missing relevant information
2017-08-25 12:20:43 +01:00
sigiesec
3f946428ec Problem: bug reports are often missing relevant information
Solution: provide template for bug reports
2017-08-25 13:16:23 +02:00
Constantin Rack
f6933f85a9 Merge pull request #2716 from sigiesec/remove-tweetnacl-from-coverage
Problem: coverage includes tweetnacl, which is not our code
2017-08-23 15:16:33 +02:00
sigiesec
fc2b7cd5ea Problem: coverage includes tweetnacl, which is not our code
Solution: exclude tweetnacl from coverage
2017-08-23 14:42:52 +02:00
Luca Boccassi
3d1f11881f Merge pull request #2715 from sigiesec/add-timers-tests
Problem: insufficient tests for zmq_timers_* and inadequate behaviour in corner cases
2017-08-23 12:52:43 +01:00
sigiesec
7eebed56a5 Problem: no test for zmq_timers_timeout without any active timers
Solution: add test
2017-08-23 10:31:44 +02:00
sigiesec
6147e45a07 Problem: missing tests for zmq_timers_* corner cases, missing handling of such corner cases, code duplication, missing assertions in test code
Solution: add tests, add checks to timers_t, add match_by_id functor, add assertions
2017-08-23 09:41:34 +02:00
sigiesec
d072d57e2e Problem: no tests for zmq_timer_* with NULL timers argument
Solution: added tests
2017-08-23 09:41:22 +02:00
sigiesec
8b263d5820 Problem: test_timers.cpp sleep_ duplicates msleep from testutil
Solution: replace sleep_ my msleep
2017-08-23 09:05:10 +02:00
Doron Somech
8f3113b278 Merge pull request #2714 from sigiesec/add-poller-tests
Problem: insufficient tests for zmq_poller_*
2017-08-22 22:38:36 +03:00
sigiesec
f685a3ffd2 Solution: unreachable code paths in socket_poller_t
Problem: replaced by assertions resp. removed
2017-08-22 21:23:09 +02:00
sigiesec
8ae91fdf9a Problem: no test cases for zmq_poller_add*, zmq_poller_modify*, zmq_poller_remove* corner cases
Solution: added test cases
2017-08-22 20:22:39 +02:00
sigiesec
68f416c0ca Problem: missing test case for zmq_poller_wait_all with negative number of events
Solution: add test case
2017-08-22 20:04:55 +02:00
sigiesec
a71f7b0405 Problem: zmq_poller_* uses ETIMEDOUT (instead of the usual EAGAIN) to indicate timeouts
Solution: replace ETIMEDOUT within socket_poller_t and all client code by EAGAIN

Fixes #2713
2017-08-22 20:00:29 +02:00
sigiesec
6a3c053a3e Problem: EFAULT is returned for bad file descriptors passed to zmq_poller_*_fd
Solution: Return EBADF instead
2017-08-22 19:43:56 +02:00
sigiesec
74303b08e6 Problem: calling zmq_poller_wait* with NULL events causes an assertion, as opposed to other NULL arguments, which return an error
Solution: return EFAULT when such an operation is attempted
2017-08-22 19:43:56 +02:00
sigiesec
c1a4cfdd9f Problem: waiting on an empty poller with infinite timeout waits forever
Solution: return EFAULT when such an operation is attempted
2017-08-22 19:43:56 +02:00