Commit Graph

7937 Commits

Author SHA1 Message Date
Doron Somech
81444136d5 problem: router doesn't know when peer disconnected
ZMQ_ROUTER_NOTIFY doesn't have a context and doesn't play nice with protocols. with ZMQ_DISCONNECT_MSG we can set it to a protocol message, like DISCONNECT in majordomo. Router will send it when a peer is disconnected. Another advantage of ZMQ_DISCONNECT_MSG is that it also works on inproc.

Together with ZMQ_HEARTBEAT it allows to build very reliable protocols, and much simpler as well.
2020-04-17 18:04:28 +03:00
Luca Boccassi
4c1d720a47
Merge pull request #3870 from somdoron/HELLO_MSG
problem: ZMQ_HEARTBEAT is not useful without sending an hello message
2020-04-17 15:24:38 +01:00
Doron Somech
93da6763b0 problem: ZMQ_HEARTBEAT is not useful without sending an hello message
When using ZMQ_HEARTBEAT one still needs to implement application-level heartbeat in order to know when to send a hello message.
For example, with the majordomo protocol, the worker needs to send a READY message when connecting to a broker. If the connection to the broker drops, and the heartbeat recognizes it the worker won't know about it and won't send the READY msg.
To solve that, the majordomo worker still has to implement heartbeat. With this new option, whenever the connection drops and reconnects the hello message will be sent, greatly simplify the majordomo protocol, as now READY and HEARTBEAT can be handled by zeromq.
2020-04-17 14:54:58 +03:00
grmt
718ad8ab96
add wss transport and fix tipc tests when building using cmake on linux (#3857)
* Allow CMAKE to generate ws and wss transports
I guess there is little use of just ws transport, so by default
GnuTLS (and libsodium) are enabled

* cmake libzmq including wss transport (ubuntu 19.10 and ubuntu 19.10 + wsl 1.0)
test_security_fails (libsodium assert !?)

* updated relicense

* make external libs gnutls nss sodium optional

* #ifdef WSS classes and functions, build test*ws* only if correct libs are included, warning if libs not present

* make libsodium optional

* cmake fix tests TIPC transport

* clang-format pointed out a wrongly placed #ifdef

* GnuTLS before 3.6.7 is not safe

* msvc doesn't agree with strlen in array declaration, test_socks now at least compiles on windows

* windows: libsodium build fails, missing include dirs set by env var

* ws transport test only works when GnuTLS is found

* Fixed condition to use NSS / built in SHA1, so that test_ws_transport should now pass, also when GnuTLS is not found
2020-04-13 23:03:19 +01:00
Luca Boccassi
7276b6809a
Merge pull request #3868 from gummif/gfa/poller-sleep
Problem: poller sleeps forever if no events
2020-04-13 22:52:46 +01:00
Luca Boccassi
ef4bb9aa5e
Merge pull request #3865 from gummif/gfa/poller-fd-init
Problem: poller item fd uninitialized
2020-04-13 22:51:35 +01:00
Gudmundur Adalsteinsson
458d805eb6 Problem: poller sleeps forever if no events
Solution: Fail with error if no events are active and timeout is infinite
2020-04-13 21:18:12 +00:00
Gudmundur Adalsteinsson
a468ac782a Problem: poller item fd uninitialized
Solution: Set to zero for socket events
2020-04-13 20:08:08 +00:00
Gudmundur Adalsteinsson
7b1fef28f9
Problem: boilerplate when init msg from data copy (#3860)
* Problem: boilerplate when init msg from data copy

Solution: Add zmq_msg_init_buffer to construct
a message by copying memory from buffer.
2020-04-09 23:59:43 +01:00
Luca Boccassi
347ff07c94
Merge pull request #3862 from gummif/gfa/poller-formatting
Problem: Strange zmq_poller doc formatting
2020-04-09 16:23:02 +01:00
Gudmundur Adalsteinsson
fa2af05d47 Problem: Strange zmq_poller doc formatting
Solution: Add newlines and extra asterisks
2020-04-09 14:18:34 +00:00
Luca Boccassi
ae45ac4e1f
Merge pull request #3861 from gummif/gfa/send-doc
Problem: zmq_send doc does not match declaration
2020-04-09 15:02:03 +01:00
Gudmundur Adalsteinsson
cbdf075658 Problem: zmq_send doc does not match declaration
Solution: add const to pointer type
2020-04-09 13:55:42 +00:00
Luca Boccassi
3c13e9222d
Merge pull request #3851 from gummif/gfa/ts-int
Problem: ZMQ_THREAD_SAFE is not bool
2020-03-23 21:11:29 +00:00
Gudmundur Adalsteinsson
e1fc84141d
Problem: ZMQ_THREAD_SAFE is not bool
Solution: Change documentation value type to int
2020-03-23 20:49:39 +00:00
Luca Boccassi
323420c5ea
Merge pull request #3850 from JSYoo5B/git-ignore-fix-track
Fix gitignore tracking file list
2020-03-18 08:42:22 +00:00
JaeSang Yoo
eceaaf360b Problem: executable sources are not tracked
Solution: Fix .gitignore's exceptions for sources in tools/
2020-03-18 12:51:47 +09:00
Luca Boccassi
876d4bfead
Merge pull request #3849 from ferdnyc/zeromq-config-install
Install CMake config to LIBDIR by default, to correctly support multiarch
2020-03-17 08:16:07 +00:00
FeRD (Frank Dana)
a97158aa2a Add relicensing statement for ferdnyc
Signed-off-by: FeRD (Frank Dana) <ferdnyc@gmail.com>
2020-03-16 20:23:12 -04:00
FeRD (Frank Dana)
31569c78d9 Problem: CMake config doesn't support multiarch
Solution: Install CMake config in arch-dependent LIBDIR/cmake

Using "share/cmake/${PROJECT_NAME}" as DESTINATION for installing
ZeroMQConfig.cmake et al works for arch-independent configs, but
is wrong for multiarch. The configs for each version of the
library should be stored below the arch-dependent LIBDIR, using
the GNUInstallDirs ${CMAKE_INSTALL_LIBDIR} variable.

Signed-off-by: FeRD (Frank Dana) <ferdnyc@gmail.com>
2020-03-16 20:22:52 -04:00
Luca Boccassi
bb9135da4f
Merge pull request #3847 from JSYoo5B/protocol-literals-refactor
Refactor protocol literals into constants
2020-03-14 13:54:17 +00:00
JaeSang Yoo
38fd1fdc8e Problem: some cond. compile may cause problem
Some ifdefs in condition checking may cause problem in some compiler or
static analyzers. When PGM and NORM both are disabled, some condition
will be derived as false || false.

Solution: Splitted condition checking for every ifdef conditions
2020-03-14 22:20:54 +09:00
JaeSang Yoo
4f436ce00f Problem: some conditional compile was not applied
Conditinoal compile for OPENPGM and NORM is mixed.
Also found few codes which needs conditional compile but not applied.

Solution: Apply conditional compile preprocessors
2020-03-14 19:55:54 +09:00
JaeSang Yoo
ebd22ecf85 Problem: literals protocol names still remains
Solution: replace into named constants
2020-03-14 19:55:54 +09:00
Luca Boccassi
0c7ee438a8
Merge pull request #3848 from JSYoo5B/optimize-gitignore
Optimizing gitignore files
2020-03-14 09:45:10 +00:00
JaeSang Yoo
2478887d4a Problem: gitignore is messed up
Solution: optimize gitigore using patterns
 *  Categorize ignoring lists
 *  Use pattern to remove similar lists
 *  Marked source files to be tracked
2020-03-14 17:57:56 +09:00
Simon Giesecke
656205b5f9
Merge pull request #3844 from bluca/format
Problem: msg_t functions do not respect coding style
2020-03-07 14:58:48 +01:00
Luca Boccassi
f9417dab4d Problem: msg_t functions do not respect coding style
Solution: fix them
2020-03-07 13:25:18 +00:00
Luca Boccassi
07d3687621
Merge pull request #3843 from JSYoo5B/man-udp-not-mentioned
Add UDP transport to related docs
2020-03-07 11:45:46 +00:00
JaeSang Yoo
ded0d83e47 Problem: wildcard address with udp not mentioned
* UDP is mentioned as available transport, and it also supports
  wildcard addresses, but not mentioned
* zmq_unbind(7) also mentions about wild-card endpoint in zmq_bind(3)

Solution: add udp in wildcard address related docs
2020-03-07 14:55:01 +09:00
JaeSang Yoo
296beecd24 Problem: UDP is not mentioned in bind and connect
zmq_bind(3) and zmq_connect(3) does not mention UDP as available
transport types.

Solution: add udp mentioning line for related docs
2020-03-07 14:35:06 +09:00
Luca Boccassi
f915971653
Merge pull request #3838 from JSYoo5B/osx-build-doc-issue
Problem: building on OS X may failed
2020-02-29 13:50:19 +00:00
JaeSang Yoo
87f9e377dd Problem: building on OS X may failed
Solution: Add troubleshooting guidelines to resolve

(Relicensing statement added)
2020-02-29 22:44:59 +09:00
Rickard Hallerbäck
2206cb37e0
ip_resolver_t: Silencing C++-warning -Wnon-virtual-dtor (#3837)
* ip_resolver_t: adding virtual descructor to silence C++-warning -Wnon-virtual-dtor

* adding my relicense
2020-02-28 16:49:12 +00:00
Mark Jan van Kampen
de0102e927 Fixes old Simon being in there 2020-02-24 09:05:39 +00:00
Mark Jan van Kampen
99cf1c2e96 Fixes tabs 2020-02-24 09:05:39 +00:00
Mark Jan van Kampen
c0abfae0d4 Add relicense 2020-02-24 09:05:39 +00:00
Mark Jan van Kampen
0d42929193 Adds QNX as possible to compile on 2020-02-24 09:05:39 +00:00
Doron Somech
e765143b42
Merge pull request #3833 from bluca/news
News out of date, formatting not clean
2020-02-23 22:33:22 +02:00
Luca Boccassi
4f45ac135a Problem: formatting not up to date
Solution: run make clang-format-diff
2020-02-23 18:25:20 +00:00
Luca Boccassi
09476b3d7f Problem: NEWS out of date with latest changes
Solution: update it
2020-02-23 17:37:56 +00:00
Luca Boccassi
e2de3b7986 Problem: no NEWS entry for ZMQ_RECONNECT_STOP
Solution: add it
2020-02-23 17:30:25 +00:00
Bill Torpey
debbe08fb8
add option to stop trying to reconnect on ECONNREFUSED (#3831)
* add option to stop trying to reconnect on ECONNREFUSED
2020-02-23 17:17:22 +00:00
Luca Boccassi
66ee3ee46c
Merge pull request #3832 from stac47/fix_unused_variable
Fix unused-variable warning in perf/proxy_thr.cpp
2020-02-21 09:08:30 +00:00
Laurent Stacul
f0b0e80da0 Fix unused-variable warning in perf/proxy_thr.cpp 2020-02-21 08:27:38 +00:00
Luca Boccassi
c7e99cdc4c
Merge pull request #3829 from gcsideal/master
Add relicense grant by Laszlo Boszormenyi (GCS)
2020-02-13 22:37:27 +00:00
Laszlo Boszormenyi (GCS)
76969bf51c Add relicense grant by Laszlo Boszormenyi (GCS) 2020-02-13 22:29:29 +00:00
Luca Boccassi
98e82ddff3
Merge pull request #3828 from sappo/master
Android build helper improvement + fix for prefix dir
2020-02-12 22:05:11 +00:00
Kevin Sapper
67e6a8c233 Problem: Usage of ANDROID_BUILD_DIR not documented
Solution: Add usage and default value to README
2020-02-12 21:49:25 +01:00
Kevin Sapper
e293b0b9b3 Problem: Setting TOOLCHAIN env vars should be done by helper
Solution: Migrate the properties and the selection for the correct env
and abi to the helper. There's no need for the user to specify them.
2020-02-12 21:36:41 +01:00