Szekely Gyorgy
2cdad3d0ce
Add ZMQ_ROUTER_NOTIFY draft socket option ( #3213 )
...
* Add ZMQ_ROUTER_NOTIFY draft socket option
2018-08-15 08:54:08 +01:00
Simon Giesecke
da30ff7d3d
Problem: unused get_credential methods and associated fields
...
Solution: remove them
2018-08-13 15:22:18 +02:00
Simon Giesecke
bbae67df89
Code style improvements
2018-08-10 15:36:31 +02:00
Simon Giesecke
9e2cf35b66
Reduced number of calls to container end method
2018-08-09 12:41:08 +02:00
Simon Giesecke
fa976f87f9
Simplified uses of erase
2018-08-07 14:15:35 +02:00
Michael Vilim
8a16fef3cc
Problem: ZMQ_CONNECT_ROUTING_ID can be assigned to incoming socket connection (Issue #3191 )
...
Solution: Add an identifier parameter for local attach to zmq::socket_base_t::attach_pipe
2018-07-26 18:26:35 -05:00
Simon Giesecke
6fa12bd692
Problem: unused stored value warning
...
Solution: add LIBZMQ_UNUSED
2018-05-30 23:21:52 +02:00
Simon Giesecke
5a343fc27b
Problem: stream_t/router_t access data member of base class
...
Solution: pull up functionality to base class
2018-05-29 15:05:27 +02:00
Simon Giesecke
ab3895a470
Problem: duplicated code in stream_t & router_t
...
Solution: pulled up to routing_socket_base_t
2018-05-29 15:05:27 +02:00
Simon Giesecke
09fab930b3
Problem: xwrite_activated duplicated between stream_t and router_t
...
Solution: pull up into routing_socket_base_t
2018-05-29 15:05:27 +02:00
Simon Giesecke
c9d6ef3035
Problem: Member outpipes is duplicate between router_t and stream_t
...
Solution: extract into common base class routing_socket_base_t, for now as protected
2018-05-29 15:05:26 +02:00
Simon Giesecke
728eddfcfd
Problem: socket_base_t::connect_routing_id is protected and only used in router_t and stream_t
...
Solution: add an intermediary base class routing_socket_base_t, move common functionality there and make connect_routing_id private
2018-05-29 15:05:26 +02:00
Simon Giesecke
e3c73d9881
Problem: inconsistent naming style for private data members, conflicts with naming of local variables and member functions
...
Solution: apply and check _lower_case naming style for private data members
2018-05-27 13:24:07 +02:00
Simon Giesecke
37344d0b7c
Problem: redundant old-style void argument declarations
...
Solution: remove
2018-05-26 09:34:45 +02:00
Simon Giesecke
12a97bb769
Problem: redundant else after return
...
Solution: remove else
2018-05-26 09:34:45 +02:00
Simon Giesecke
eacc805646
Problem: complex unnecessary ternary expressions
...
Solution: simplify to comparison against 0
2018-05-26 09:34:44 +02:00
Simon Giesecke
1432011277
Problem: inconsistent local variable naming
...
Solution: configured clang-tidy check and applied fixes
2018-05-26 09:34:44 +02:00
Simon Giesecke
4e616f30dd
Problem: C-style casts used
...
Solution: replace by C++-style casts
2018-05-18 17:04:01 +02:00
Simon Giesecke
6f967c3a13
Problem: code duplication in getsockopt/setsockopt
...
Solution: extracted common code into do_getsockopt/do_setsockopt functions
2018-03-06 16:41:30 +01:00
sigiesec
41f459e1dc
Problem: formatting inconsistent
...
Solution: applied clang-format
2018-02-02 15:47:43 +01:00
Simon Giesecke
7ec58b279a
Problem: one missed optimization opportunity for blob_t map lookup
...
Solution: create referencing blob_t
2017-10-23 11:12:15 +02:00
Simon Giesecke
0897b3e07b
Problem: excessive memory allocations around blob_t ( #2796 )
...
* Problem: excessive memory allocations around blob_t
Solution: redefine blob_t as a custom type, and use reference/move
semantics where possible
2017-10-21 12:19:51 +01: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
Doron Somech
af03241dcb
Revert "Problem: term "identity" is confusing"
2017-09-07 15:47:43 +03: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
sigiesec
48a1e637b6
Problem: zmq_socket_get_peer_state is not implemented
...
Solution: add initial implementation
2017-09-01 16:28:58 +02:00
Marc Sune
b7b89a8f60
Fix ROUTER's xhas_out() in MANDATORY mode
...
Before this commit, xhas_out() was returning true regardless. This
was correct before the ZMQ_ROUTER_MANDATORY flag as introduced.
However, ZMQ_POLLOUT.
With this commit, _if_ ZMQ_ROUTER_MANDATORY is set, xhas_out() will
return false if ALL peer's outgoing pipes are full.
There is an outstanding high-level design question:
If ZMQ_ROUTER_MANDATORY is set, and zmq_poll() waits for ZMQ_POLLOUT
events, zmq_poll() will immediately wake up if only 1 pipe has
room to send, regardless of the peer, creating a busy loop of
zmq_poll() wake-up, zmq_send() (EAGAIN). There is no way for
the application to selectively wait for ZMQ_POLLOUT for specific
peer(s), which seems somehow necessary in ZMQ_ROUTER_MANDATORY.
This discussion will be addressed in a separate issue.
Signed-off-by: Marc Sune <marc@voltanet.io>
Signed-off-by: Fredi Raspall <fredi@voltanet.io>
2017-07-14 15:55:58 +02:00
Luca Boccassi
bdc676f687
Problem: REP leaves label msgs for dead REQ in pipe
...
Solution: roll back the pipe if writing messages other than the
first fails in router::xsend. Roll it back also when the pipe is
terminating.
Also add test case that reproduces the memory leak when ran with
valgrind.
Fixes #2567
2017-05-17 09:18:15 +01:00
BJovke
1489fc1ac5
Revert "Problem: REP leaves label msgs for dead REQ in pipe"
2017-05-16 11:20:03 +02:00
Luca Boccassi
0999fdd885
Problem: REP leaves label msgs for dead REQ in pipe
...
Solution: roll back the pipe if writing messages other than the
first fails in router::xsend.
Also add test case that reproduces the memory leak when ran with
valgrind.
Fixes #2567
2017-05-10 23:44:03 +01:00
Luca Boccassi
a73d5cd6c6
Problem: router pipe can block forever
...
Solution: invert check_write and check_hwm calls in router xsend
function so that check_write can mark the pipe as inactive if
necessary.
2017-02-24 23:56:52 +00:00
Reza Ebrahimi
06740b5d8c
Problem with ZMQ_ROUTER_MANDATORY option when peer lost
...
indention
Revert "indention"
This reverts commit a6e7e192ac2d089ac9f7dc0d31d4b1fd10de982e.
indention
indention
Fix Failure in tests
Check both pipe full and pipe close
2017-02-24 20:49:26 +03:30
hitstergtd
b2d0ab18f2
Problem: trailing whitespace in code
...
Solution: fix them
2016-04-25 12:18:46 +01:00
Osiris
b3d5fa63a0
Problem: Several problems found by Coverity Static Analyzer
...
Solution: The Coverity Static Code Analyzer was used on libzmq code and found
many issues with uninitialized member variables, some redefinition of variables
hidding previous instances of same variable name and a couple of functions
where return values were not checked, even though all other occurrences were
checked (e.g. init_size() return).
2016-02-21 15:49:47 -06:00
Osiris
4a5af9d58b
Problem: Precompiled headers not being used
...
Solution: Phase I - make precompiled.hpp be first file included in every source file
2016-02-18 10:56:52 -06:00
Brian Silverman
273b54715e
Use memcpy instead of assuming option values are aligned
...
Otherwise, it's undefined behavior. ubsan catches alignment issues in
the libzmq test suite without this.
2016-02-06 22:22:51 -05:00
Pieter Hintjens
27a8961c37
Problem: resolution of int optval_ was made more verbose
...
There's no value in this as the same pattern is repeated in several
places and it's fair to expect people to understand it.
Solution: revert to the old, one-liner style.
2016-02-06 14:12:43 +01:00
Brian Silverman
f4fe375bd1
Don't call memcpy with 0 size and NULL pointer(s)
...
It's undefined behavior, and ubsan flags it.
2016-02-05 14:04:22 -05:00
Constantin Rack
a539b0c6e8
Problem: copyright year is still 2015
...
Solution: update to 2016
2016-01-28 15:07:31 +01:00
somdoron
804bce8294
Fix pipe terimation in router while reading message
2015-11-20 21:27:56 +02:00
Joe Eli McIlvain
fb57110b94
Merge pull request #1577 from hintjens/master
...
Various cleanups for CLIENT-SERVER sockets
2015-09-11 14:24:51 -07:00
Pieter Hintjens
60fdfd9a1b
Problem: whitespace at end of lines, removed
2015-09-11 14:30:20 -04:00
Pieter Hintjens
7be6ad0504
Replaced tabs in some files, with spaces
2015-09-11 13:03:31 -04:00
Constantin Rack
bd923f0fbb
Problem: some comments contain typos
2015-09-06 18:46:32 +02:00
Constantin Rack
0e1448a26f
Merge pull request #1550 from xaqq/master
...
Problem: Identity frame from router has no metadata
2015-08-24 22:35:31 +02:00
Joe Eli McIlvain
33419425eb
Problem: Private/internal macros defined in public header.
...
Solution: Move the macros to a private header.
2015-08-21 16:12:22 -07:00
reza.ebrahimi
63260d8701
rename ZMQ_UNUSED macro to LIBZMQ_UNUSED
2015-08-22 00:31:25 +04:30
Kapp Arnaud
370b8c9bb1
Problem: Identity frame from router has no metadata
...
The routing id (identity) frame return when reading from
a router doesn't have the same metadata as the "real"
message that follows.
For example, The ZAP "User-Id" property is missing.
This patch attach the "data message"'s metadata
to the "identity message" when it is read from the router.
2015-08-20 01:15:18 +02:00