Compare commits

...

1578 Commits

Author SHA1 Message Date
rp42
34f7fa2202 cmake_minimum_required() before project()
* Without this CMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded (MT) Windows builds still produced incompatible MultiThreadedDLL (MD) output.

 * Resolves following warning:

CMake Warning (dev) at CMakeLists.txt:2 (project):
  cmake_minimum_required() should be called prior to this top-level project()
  call.

 * Use ${CMAKE_HOST_SYSTEM_NAME} as ${CMAKE_SYSTEM_NAME} not set before project().
2024-12-30 17:49:16 +00:00
BtbN
a23330dbe2 Fix compilation with modern compilers
Fixes error: jump to label 'try_tcpip' crosses initialization of 'const SOCKET listener'
2024-11-24 23:08:15 +00:00
githejie
60899603a4 Fix example issue of zmq_timers.adoc 2024-11-22 10:28:16 +00:00
Hennadii Stepanov
90b4f410a0 cmake: Refer to prefix variable in generated libzmq.pc
This change:
1. Makes the `libzmq.pc` files generated by Autotools and CMake more
aligned.
2. Allows the `prefix` variable to be redefined if the package is
relocated.
2024-09-24 22:50:30 +02:00
githejie
64db7d28fe Fix format issue of zmq_socket.adoc 2024-09-06 09:29:24 +02:00
Min RK
1f4dd54f94
Problem: ipc connect can fail on Windows, even after bind (#4734)
* ipc connect can fail, even after bind
2024-08-26 14:57:23 +01:00
Min RK
0ed7a08cd9 Problem: create_ipc_wildcard_address can fail
check and handle failure
2024-08-23 21:54:12 +01:00
Hennadii Stepanov
5f408ba371 Fix CMake-generated libzmq.pc file
This change mirrors the Autotools-based build system behavior for
cross-compiling for Windows with static linking.
2024-08-21 14:38:23 +02:00
githejie
4c6cff6391 Problem: CI build android on ubuntu-latest failed
Solution: Fixed the NDK version to android-ndk-r25 to
avoid using unsupported NDK version on ubuntu-latest.
2024-08-16 11:08:03 +02:00
BtbN
b71434140e Fix reading cycle count on non-msvc win-on-aarch64 2024-08-11 11:54:21 +02:00
Luca Boccassi
6aaafe0135
Merge pull request #4721 from githejie/reconnect_options
Fix issue with ZMQ_RECONNECT_STOP_AFTER_DISCONNECT option
2024-08-11 11:51:07 +02:00
githejie
ce17349f8b Problem: tests reconnect_stop_after_disconnect failed
Solution: this test failed because "_disconnected" is not initialized
in constructor, and the behavior of reconnect will not be as designed
when "_disconnected" is randomly assigned to true.
So we specify it as false in initialize list to solve this problem.
2024-08-10 00:10:31 +08:00
githejie
aa77c03a37 Add tests for sockopt ZMQ_RECONNECT_STOP_AFTER_DISCONNECT 2024-08-10 00:10:25 +08:00
githejie
b95d94935e Problem: macos-latest with libsodium compilation failed
Solution: Add libsodium dependencies to Makefile.am file.
2024-08-02 11:43:23 +02:00
Alexander Stefanov
59c91227b4 use proper STREQUAL instead of EQUAL to compare strings 2024-07-27 10:08:24 +01:00
fanquake
ee29bcd64a problem: trying to link against librt on macOS
Solution: don't use rt if not `RT_LIBRARY`

This currently causes the check to fail on macOS:
```bash
     /Library/Developer/CommandLineTools/usr/bin/c++  -std=c++11 -Wno-tautological-constant-compare  -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/cmTC_8466b.dir/CheckSymbolExists.cxx.o -o cmTC_8466b  -lrt
        ld: library 'rt' not found
        clang: error: linker command failed with exit code 1 (use -v to see invocation)
```
even though `clock_gettime` is available.

Move the `clock_gettime` check up with the other librt related checks,
and don't set `CMAKE_REQUIRED_LIBRARIES` if not `RT_LIBRARY`.
2024-07-08 22:35:49 +02:00
fanquake
d203ad2b7a problem: using -errwarn on non-Sun systems
solution: only use `-errwarn` on SunPro systems

For example, using Clang on Alpine, this just results in build spam, and
the option is incorrectly passed through to ld, which trys to use use it
(`-e`) as an entrypoint, i.e:
```bash
[ 28%] Building CXX object CMakeFiles/local_lat.dir/perf/local_lat.cpp.o
clang++: warning: -e rrwarn=%all: 'linker' input unused [-Wunused-command-line-argument]
[ 29%] Linking CXX executable bin/local_lat
/usr/bin/ld: warning: cannot find entry symbol rrwarn=%all; defaulting to 0000000000000cf0
[ 29%] Built target local_lat
```
2024-07-08 18:00:20 +02:00
fanquake
de290e91e3 Problem: macos-latest CIs both failing
Solution: Install `libtool`. This seems to be the issue, given the CI
output of a recent run, i.e:
```bash
 configure.ac:1023: the top level
configure.ac:80: error: possibly undefined macro: AC_LIBTOOL_WIN32_DLL
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
configure.ac:81: error: possibly undefined macro: AC_PROG_LIBTOOL
configure:7350: error: possibly undefined macro: AC_DISABLE_STATIC
configure:7354: error: possibly undefined macro: AC_ENABLE_STATIC
autoreconf: error: /opt/homebrew/Cellar/autoconf/2.72/bin/autoconf failed with exit status: 1
autogen.sh: error: autoreconf exited with status 1
+ exit 1
```
https://github.com/zeromq/libzmq/actions/runs/9841129190/job/27167025854?pr=4699#step:12:200
2024-07-08 16:58:24 +02:00
C-sir
c2fae81460 Problem: my name is not in the AUTHORS file
Solution: add myself to the list
2024-05-10 15:45:28 +02:00
Isuru Fernando
0a1aa1e4a7 Fix typos in gssapi cmake support PR 2024-05-08 21:22:25 +02:00
Isuru Fernando
43a8b3c6c8 Add gssapi support to cmake 2024-05-08 10:06:39 +02:00
Stephan Lachnit
aa885c5a15 Do not use _MSC_VER if windows
This fixes several instances where _MSC_VER was used to determine whether to use afunix.h or not. For example, MinGW requires the use of afunix.h but does not define _MSC_VER. The correct behavior is checking ZMQ_HAVE_WINDOWS.

Signed-off-by: Stephan Lachnit <stephanlachnit@debian.org>
2024-04-23 21:00:20 +02:00
fanquake
2a75ef07be cmake: don't use builtin sha1 if not using ws
The builtin SHA1 (ZMQ_USE_BUILTIN_SHA1) is only used in the websocket
engine (ws_engine.cpp), so if websockets are disabled, i.e
-DENABLE_DRAFTS=OFF, don't add sha1.c to the sources list.
2024-03-25 18:51:39 +00:00
fanquake
4a5ece54b8 build: fix mkdtemp check on macOS
On macOS, mkdtemp is in unistd.h. Fix the CMake check so that is works.
This was discovered when comparing the output of the Autotools an CMake
build systems.
2024-03-25 13:24:30 +00:00
Hennadii Stepanov
45b2924a0a Fix Autotools-generated libzmq.pc file
This change fixes cross-compiling for Windows with static linking.
2024-03-21 12:22:43 +00:00
Min RK
481cc3fa2c halt build if CURVE requested but not found
ENABLE_CURVE is currently redundant with WITH_LIBSODIUM, as the only existing provider

now builds where requested configuration is not found fail rather than proceeding without requested features
2024-02-28 15:35:57 +00:00
Min RK
ff231d2673 Problem: cmake search for kqueue missing headers
Solution: include sys/types.h and sys/time.h as documented by kqueue
and used in autotools

fixes kqueue detection on openbsd
2024-02-23 14:25:17 +00:00
Eli Schwartz
3b264019a2 configure: fix basic syntax errors in the shell script programming language
There is no such thing as `+=` unless you happen to be using the Bash
programming language, i.e. your script shebang is /bin/bash.

However, configure scripts are run via /bin/sh instead, which may or may
not be be bash, usually depending on whether the system in question
preferred to have one less package installed (in which case it is bash)
vs. have a faster /bin/sh installed (in which case it is probably the
dash shell).
2024-01-24 23:01:24 +00:00
Thomas
959a133520
Fixing SEGV #4524. Pipe should only send to peer when active. (#4647)
* Fixing SEGV #4524. Pipe should only send to peer when active.
2023-12-19 15:21:46 +00:00
Denis Zibarev
86a42e1e43 Problem: Using non-ascii characters in unix domain socket path doesn't work on Windows
Solution: Convert utf-8 socket paths to utf-16 file names when using
filesystem calls to delete files and directories as Windows doesn't
have any filesystem calls that take utf-8 path.

rmdir_utf8() and unlink_utf8() static functions were created which
substitute rmdir() and unlink() when building on Windows.
2023-12-11 10:12:12 +00:00
Florian Weimer
665d1d4657 Build with -D_DEFAULT_SOURCE along with -std=c11
On its own, -std=c11 hides POSIX and other extensions from C headers
such as <stdlib.h> when building against glibc.  This causes the
posix_memalign probe to fail incorrectly with compilers that do not
accept implicit function declarations.  _DEFAULT_SOURCE is ignored by
most non-GNU/Linux systems or not relevant in this context, so there
is no separate check for adding it.
2023-11-29 13:58:35 +00:00
f18m
2622e618f0 Replace old website contribution page link with the page of the new website 2023-11-22 22:35:29 +00:00
Nehal Patel
b268effd88 Fix 4629 compile warning in endpoint.hpp 2023-11-19 11:35:09 +00:00
Francesco Montorsi
814dab58a4
Documentation: fix the HTMLZIP name to restore the download-documentation functionality (#4628) 2023-11-13 14:47:38 +00:00
f18m
61050beca6 Documentation: improve the look of landing page
* Link the new CSS stylesheet also when building docs at RTD
2023-11-10 12:05:52 +00:00
Francesco Montorsi
481d536713
Documentation: improve the look of landing page (#4625)
* Documentation: improve the look of landing page by showing a more-compact list
2023-11-10 11:42:46 +00:00
Francesco Montorsi
3e08ecc012
Feature: improve docs (#4620)
* Feature: improve see-also doc section
2023-11-03 10:36:47 +00:00
Francesco Montorsi
267e856494
Feature: master: integrate with ReadTheDocs (#4614)
* Feature: integrate libzmq with ReadTheDocs

* add readthedocs configuration file to convert Asciidoc files into HTML and HTMLZIP formats using Asciidoctor.js tool (the only Asciidoctor variant available on readthedocs so far)
2023-11-02 20:44:34 +00:00
Francesco Montorsi
aa9a2c8429
docs: add index page (#4615) 2023-11-01 09:49:25 +00:00
Stephan Lachnit
05c2025412 poller.hpp: fix incorrect ZMQ_IOTHREAD_POLLER_* usage
Signed-off-by: Stephan Lachnit <stephanlachnit@debian.org>
2023-11-01 00:53:40 +00:00
Luca Boccassi
f0c471aaab
Merge pull request #4607 from f18m/feature/asciidoctor
Feature: modernize API documentation
2023-10-25 23:10:25 +01:00
Francesco Montorsi
b6ca9b2983 Feature: modernize API documentation
* migrate from the old, unmaintained "asciidoc-py" tool to the new "asciidoctor" generator
* migrate from asciidoc-py syntax to the modern Asciidoc syntax (especially page titles and section titles)
* remove the need of "xmlto" utility to create the manpage output; use asciidoctor for that
* add HTML output support to the doc/Makefile by using asciidoctor
* change API documentation files extension from .txt to .adoc to make it more explicit that they are Asciidoc-encoded (as a bonus several IDE plugins will autodetect the .adoc format as Asciidoc)
* remove asciidoc.conf: asciidoctor does not support that; this also required replacing the macro linkzmq into all documentation pages
* add a new Github action CI do deploy to Github Pages the static HTMLs produced by Asciidoctors
* removed references to the "xmlto" and "a2x" tools from the build and packaging systems: Asciidoctor can convert the documentation directly to e.g. pdf (via extended converters) and anyway there was no code/target for using "xmlto" and "a2x" tools anyway
2023-10-25 23:59:38 +02:00
Luca Boccassi
cd991c72c8 Revert "Add forgotten test_pubsub. Currently only tests NORM if built."
The test always fails.

This reverts commit a6039d8716612ca3002858a85b2119f970e0fc41.
2023-10-25 11:49:29 +01:00
Michael Hudson-Doyle
aa3e097996 initialize error in test_security_gssapi.c:test_null_creds
Under some circumstances (which probably no longer apply in master) gcc inlined get_monitor_event into test_null_creds and then emitted a "maybe uninitialized" warning on the use of error. This would only be a problem if the tested code was misbehaving but I guess that's the point of a test!
2023-10-25 09:51:25 +01:00
Axel Rietschin
a6039d8716 Add forgotten test_pubsub. Currently only tests NORM if built. 2023-10-24 10:47:19 +01:00
Yueshan
95caddb9a1 Update msg.cpp
allow the max_vsm_size of data can init as vsm type msg

the init message of vsm size should be <= max_vsm_size include equal size.
2023-10-22 11:47:21 +01:00
Luca Boccassi
b30a19ebde
Merge pull request #4602 from nnog/flaky-test
test_proxy_steerable: reduce cpu and thread count
2023-10-13 15:21:28 +01:00
George Cockshull
77303a1926 test_proxy_steerable: reduce cpu and thread count
Problem: flakiness on slow CI VMs

Solution: fewer worker threads, poll rather than thrash,
consistent timings. user cpu ~300% -> 15%.
2023-10-13 08:19:38 -04:00
Luca Boccassi
6b80df14f4
Merge pull request #4600 from nnog/fix-proxy-steerable
Fix zmq_proxy_steerable
2023-10-12 21:53:48 +01:00
George Cockshull
058ad60b9a zmq_proxy_steerable: support non-REP socket types
Problem: reimplemented zmq_proxy_steerable control socket type is not
backwards compatible - replies are always sent.

In the past, zmq_proxy_steerable never sent a reply for
commands that weren't STATISTICS, so only really worked with PAIR and didn't
work at all with REP. Now it only supports REP and PAIR semantics changed. This
breaks compatibility with PAIR in a subtle and slightly annoying way if
HWMs are hit without reading the replies.

Solution: Add a check to send the empty reply only for
REP control sockets. This restores backwards compatibility, and supports
REP, PAIR, and SUB (for non-reply commands).

I had no knowledge of the pre-MPL-2.0 implementation. This fix is based
on docs and prior API usage. I contribute this under MPL-2.0.
2023-10-12 15:22:44 -04:00
George Cockshull
f8b3cc8108 Fix zmq_proxy_steerable PAUSE/RESUME
Problem: the new reimplementation of zmq_proxy_steerable had PAUSE/RESUME
that didn't follow expected behaviour. Possibly mixed up. Test didn't properly
cover the issue.

Solution: improve test coverage, fix the proxy command parsing.

I had no knowledge of the pre-MPL-2.0 implementation. This fix is based
on documented semantics and prior API usage. I contribute this
under MPL-2.0.
2023-10-12 15:22:44 -04:00
James Harvey
9d31965548
Handle tcp self connection issues (#4599) 2023-10-10 14:46:48 +01:00
Luca Boccassi
dbb7e3dc01 Problem: 4.3.5 is out, need new version
Solution: bump to 4.3.6
2023-10-09 12:21:03 +01:00
Luca Boccassi
622fc6dde9 Update NEWS for 4.3.5 2023-10-09 11:47:05 +01:00
Luca Boccassi
5cf39bf0ce
Merge pull request #4598 from brettviren/reimplement-proxy-steerable
A clean room re-implementation of zmq_proxy_steerable()
2023-10-09 10:36:47 +01:00
Brett Viren
5712ad5138 A clean-room implementation of zmq_proxy_steerable().
It is contriubted under the MPL-2.0.

I had no knowledge of the previous implementation of zmq_proxy_steerable().

This version was developed based on expectations set in the old man page with one exception.  This version uses a REP/REQ for the proxy control protocol sockets.  The old man page example used PUB/SUB which is nonsensical given the STATISTICS command requires two way communication.
2023-10-08 19:56:03 -04:00
Nehal Patel
8cdc4ed71a
Problem: unused variables warnings
Solution: fix them
2023-10-04 09:51:43 +01:00
Hennadii Stepanov
de5ee18203 Replace egrep with grep -E
For the GNU Grep package version >= 3.8, the `egrep` command emits:
```
egrep: warning: egrep is obsolescent; using grep -E
```
which makes the `./autogen.sh` script very noisy.
2023-08-26 22:19:35 +01:00
Jeffery Weston
ec013f3a17 fix assert error on late-joining subscriber after publisher has filled NORM buffer 2023-07-21 19:46:44 +01:00
Cornelius
ecc63d0d3b
Problem: long flag isn't set for subscriptions if topic has between 246 and 255 characters (#4564)
* Problem: long flag isn't set for subscriptions if topic has between 246 and 255 characters

Solution: fix V3.1 encoder to calculate long flag after evaluating the subscribe and cancel commands
2023-06-20 15:17:26 +01:00
Luca Boccassi
7af09a0e3b obs: trigger build on merge 2023-06-18 15:40:05 +01:00
Luca Boccassi
61fd887d11 spec: do not attempt to install curve_keygen if curve is disabled 2023-06-18 13:06:57 +01:00
Luca Boccassi
7fef478481 spec: remove duplicated macros 2023-06-18 12:51:43 +01:00
Guillaume DELACOURT
5657b4586f Always allow DNS when resolving TCP and UDP adresses. DNS resolution is done after interface resolution, so it can always be enabled to have a fallback mecanism on hostname resolution. 2023-06-12 20:28:32 +01:00
Guillaume DELACOURT
e0296d9cdd Checks for pthread setname and setaffinity API are compilation checks, not execution checks. 2023-06-12 00:12:26 +01:00
Guillaume DELACOURT
797c7f09f8 When setting thread priority, always set the value to zero when the policy is not compatible. Also, only call nice when the priority is set to a strictly positive value. 2023-06-12 00:11:21 +01:00
Luca Boccassi
5bf04ee2ff Problem: docs for ZMQ_RECONNECT_IVL_MAX are stubs
Solution: write them now that the option is back
2023-06-06 18:09:12 +01:00
Luca Boccassi
346907065f Problem: trailing whitespace
Solution: remove it
2023-06-06 18:00:08 +01:00
Luca Boccassi
7175f0acb5
Merge pull request #4556 from stvales/master
Problem: relicensing forced to remove support for ZMQ_RECONNECT_IVL_MAX option
2023-06-06 16:40:57 +01:00
Stéphane Valès
de1bd5c8e7 Problem: relicensing forced to remove support for ZMQ_RECONNECT_IVL_MAX option
Solution: reimplement support for ZMQ_RECONNECT_IVL_MAX without knowledge of the previous code.
2023-06-06 15:15:22 +02:00
Luca Boccassi
1a921db728
Merge pull request #4555 from bluca/relicense
Relicense from LGPL3 + exceptions to Mozilla Public License version 2.0
2023-06-06 13:50:00 +01:00
Luca Boccassi
3e5e405f33 Remove RELICENSE/ directory
Grants archived at:

https://github.com/rlenferink/libzmq-relicense/blob/master/RELICENSE

No longer necessary to keep them here, as the relicensing is complete.
2023-06-05 20:31:47 +01:00
Luca Boccassi
da31917f4f Relicense from LGPL3 + exceptions to Mozilla Public License version 2.0
Relicense permission collected from all relevant authors as tallied at:
https://github.com/rlenferink/libzmq-relicense/blob/master/checklist.md
The relicense grants are collected under RELICENSE/ and will be moved
to the above repository in a later commit.

Fixes https://github.com/zeromq/libzmq/issues/2376
2023-06-05 20:31:47 +01:00
Luca Boccassi
87bb4db114
Merge pull request #4554 from bluca/relicense
Problem: cannot relicense due to missing agreement from 3 authors
2023-06-05 20:00:28 +01:00
Luca Boccassi
7bbd49726b Problem: no permission to relicense ZMQ_RECONNECT_IVL_MAX
Solution: remove the implementation. Thijs Terlouw <thijsterlouw@gmail.com>,
the author, did not respond to requests to allow relicensing to MPL2,
so we have to remove his copyrighted work.
Remove the implementation and make get/set return -EOPNOTSUPP.
2023-06-05 00:22:20 +01:00
Luca Boccassi
ff47aeb791 Problem: no permission to relicense tweetnacl integration
Solution: remove implementation. Frank Hartmann <soundart@gmx.net>,
the author, rejected our request to relicense under MPL2, so we
have to remove his copyrighted work.
Tweetnacl is not security-supported and could not be used in
production environments anyway, the supported backend is libsodium.
2023-06-04 23:54:31 +01:00
Luca Boccassi
13bc1de421 Problem: no permission to relicense zmq_proxy_steerable
Solution: remove implementation. Laurent Alebarde <l.alebarde@free.fr>,
the author, did not respond to requests to allow relicensing to MPL2,
so we have to remove his copyrighted work.
Make the API into an empty stub that returns -EOPNOTSUPP.
2023-06-04 23:54:31 +01:00
Jeff Weston
eaaea73bf1
Change NORM to set TTL using MULTICAST_HOPS sockopt (#4552)
* Change NORM to set TTL using MULTICAST_HOPS instead of hard-coding.  Changes default TTL from 255 to 1.
2023-05-19 20:53:20 +01:00
Nicolas Benes
4d1dccaebd Fix pkg_config_defines in CMakeFile
PR #4545 sets `pkg_config_defines` too late, i.e. after the pkg-config
file is already generated. It must be set before `configure_file`.
2023-05-16 17:47:51 +01:00
Luca Boccassi
cc12997a17
Merge pull request #4545 from panicgh/pc-file-fix
Add missing pkg_config_defines when built with CMake
2023-05-12 10:16:57 +01:00
Nicolas Benes
2da2bd8f6d RELICENSE: add statement
Signed-off-by: Nicolas Benes <nbenes.gh@xandea.de>
2023-05-12 06:29:44 +02:00
Luca Boccassi
077dd92616
Merge pull request #4546 from cdepillabout/link-openpgm-cmake-fresh
Link to openpgm when building with cmake
2023-05-11 13:59:13 +01:00
Dennis Gosnell
a6c2f6ba72 Problem: no relicense agreement by cdepillabout
Solution: added relicense agreement
2023-05-11 20:22:42 +09:00
Dennis Gosnell
5381be6c71 Problem: don't link to openpgm when building with cmake
Solution: Add `target_link_libraries()` to `libzmq` for openpgm when
openpgm has been enabled.
2023-05-11 20:22:42 +09:00
Nicolas Benes
c079ca5cc4 Add missing pkg_config_defines when built with CMake
The pkg_config_defines variable was only set in configure.ac, but not in
CMake. This lead to the `-DZMQ_BUILD_DRAFT_API=1` flag to be omitted
from the generated pkg-config file.

Signed-off-by: Nicolas Benes <nbenes.gh@xandea.de>
2023-05-09 23:15:46 +02:00
Luca Boccassi
532b61275e
Merge pull request #4542 from bjornstromberg/libzmq-patch-pr-4432
Problem: merged pr-4432 broke FindSodium on linux
2023-04-22 11:59:25 +01:00
Björn Strömberg
f56a44d35d
Problem: no relicense agreement by bjornstromberg
Solution: added relicense agreement
2023-04-22 09:13:22 +02:00
bjornstromberg
47b2aec813
Problem: merged pr-4432 broke FindSodium on linux
Solution: rename the FindSodium to Findsodium so it matches what the build script actually looks for. tested on ubuntu-20.04lts with cmake 3.16.
2023-04-22 08:58:55 +02:00
Jeff Weston
2d30020691
Add NORM Transport configuration sockopts (#4541)
* added NORM transport configuration socket options, and enabled NORM use of existing sockopts ZMQ_RATE for NORM fixed-rate operation, and ZMQ_TOS
2023-04-20 18:55:40 +01:00
Luca Boccassi
be8af6f128
Merge pull request #4540 from keith-dev/master
Support clang-16 on Termux
2023-04-19 11:57:08 +01:00
Keith Williams
bf3d37b7d0 Add RELICENSE for Keith Williams 2023-04-19 01:16:05 +01:00
Keith Williams
abf2444f09 remove c99 extention from c++11 code 2023-04-18 22:27:06 +01:00
Keith Williams
27dda213fe extend tipc check to support Android under Termux 2023-04-18 22:25:00 +01:00
Constantin Rack
5a5f90e07e
Merge pull request #4537 from chachoi/master
Add support for QNX 7.1 build
2023-04-11 22:22:54 +02:00
James Choi
c19d4c9bf0 Add RELICENSE for James Choi
Signed-off-by: James Choi <chachoi@blackberry.com>
2023-04-11 15:48:27 -04:00
James Choi
10e5847fa8 Add support for QNX 7.1 build
Signed-off-by: James Choi <chachoi@blackberry.com>
2023-04-11 15:48:07 -04:00
Luca Boccassi
1b52e19b2b
Merge pull request #4533 from autoantwort/gnutls-include-dir
Don't assume that GnuTLS is on the search path
2023-03-27 22:34:39 +01:00
Leander Schulten
08a6f8f84d license 2023-03-27 17:47:30 +02:00
Leander Schulten
f508394909 Don't assume that GnuTLS is on the search path 2023-03-27 16:06:23 +02:00
Luca Boccassi
94bf58e43c
Merge pull request #4522 from stephanlachnit/p-cmake-fix-devpoll
CMake: fix devpoll detection not working properly
2023-03-05 17:49:19 +00:00
Luca Boccassi
3f5d915b56
Merge pull request #4523 from stephanlachnit/p-fix-cmake-pgm-vmci
CMake: properly set ZMQ_HAVE_OPENPGM and ZMQ_HAVE_VMCI
2023-03-05 17:49:02 +00:00
Luca Boccassi
e6130935c7
Merge pull request #4521 from stephanlachnit/p-fix-pollset
CMake: fix not defining pollset in platform.hpp
2023-03-05 17:48:31 +00:00
Stephan Lachnit
6147de01da
RELICENSE: add statement
Signed-off-by: Stephan Lachnit <stephanlachnit@debian.org>
2023-03-05 13:32:42 +01:00
Stephan Lachnit
87065068ca
CMake: properly set ZMQ_HAVE_OPENPGM and ZMQ_HAVE_VMCI
Signed-off-by: Stephan Lachnit <stephanlachnit@debian.org>
2023-03-03 11:11:41 +01:00
Stephan Lachnit
6fc2a61d16
CMake: fix devpoll detection not working properly
Signed-off-by: Stephan Lachnit <stephanlachnit@debian.org>
2023-03-03 11:01:47 +01:00
Stephan Lachnit
08d60dfdfa
CMake: fix not defining pollset in platform.hpp
Signed-off-by: Stephan Lachnit <stephanlachnit@debian.org>
2023-03-03 10:56:26 +01:00
Luca Boccassi
8c725093ac
Merge pull request #4509 from sphaero/udploop
Problem: infinite loop binding a dgram socket if it fails
2023-02-06 15:23:35 +00:00
Arnaud Loonstra
b261f9a678 treat bind errors as a protocol_error instead of connection_error preventing an infinite loop of trying to create the udp socket as through the protocol_error the creation of the socket fails 2023-02-03 16:33:18 +01:00
Luca Boccassi
6e2d632b18
Merge pull request #4502 from casaroli/fix-for-nuttx
Fixes for memory allocation and zero size
2023-02-03 09:16:26 +00:00
Marco Casaroli
52333da0e2 Add RELICENSE for Marco Casaroli 2023-02-03 09:35:35 +01:00
Marco Casaroli
d16db180d3 Do not break if malloc size is zero
I get a scenario where `size_` is `0` so there is nothing to `malloc()`.

According to `malloc(3)`:

If size is 0, then malloc() returns either NULL, or a unique pointer value thatcan later be
success‐fully passed to free().

According to `free(3)`:

If ptr is NULL, no operation is performed.

So, if `size_` is null and `_data` also, there is no OOM error.

We can adjust the assert to not fail on this scenario.
2023-02-03 09:35:35 +01:00
Luca Boccassi
a666cb1b40
Merge pull request #4507 from daira/zmq_snprintf
#4494 added calls to snprintf, but did not take into account that snprintf can truncate
2023-02-01 21:44:27 +00:00
Daira Hopwood
6dc559c072 #4494 added calls to snprintf, but did not take into account that snprintf
can truncate, and then return the number of characters that would have been
written without truncation.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2023-02-01 19:15:46 +00:00
Luca Boccassi
333c88e9ff
Merge pull request #4505 from barracuda156/darwin
tests: use NOT APPLE instead of NOT MATCHES Clang
2023-02-01 00:30:26 +00:00
Sergey Fedorov
2438952f75 Add relicense statement 2023-02-01 08:02:53 +08:00
Sergey Fedorov
74af53fdfa tests: use NOT APPLE instead of NOT MATCHES Clang 2023-02-01 05:37:59 +08:00
Marco Casaroli
f049edbf12 Use parenthesis for alloc_assert macro 2023-01-31 14:46:46 +01:00
Luca Boccassi
ce6d48c578
Merge pull request #4500 from bluca/ci
CI fixes
2023-01-31 10:48:44 +00:00
Luca Boccassi
bd0a34899a Problem: test_filter_ipc is flacky
Solution: expect send failure and use random endpoint
2023-01-31 01:16:24 +00:00
Luca Boccassi
ccdc2f7583 Problem: VMCI tests are not skipped outside VMs
Solution: check CID and skip if unavailable
2023-01-31 00:28:38 +00:00
Luca Boccassi
acfdf67127
Merge pull request #4497 from MartinDelille/badge
Add conan badge
2023-01-27 01:32:42 +00:00
Martin Delille
8850ccc450
Add relicense statement 2023-01-27 02:26:12 +01:00
Martin Delille
75e9a950d9
Add conan badge 2023-01-27 00:29:47 +01:00
Luca Boccassi
abb0ada5f7
Merge pull request #4494 from sphaero/depr_sprintf
deprecate sprint and replace with snprintf
2023-01-24 23:36:00 +00:00
Arnaud Loonstra
f7df6c8599 deprecate sprint and replace with snprintf 2023-01-24 22:45:48 +01:00
Luca Boccassi
b674ce68d0
Merge pull request #4490 from bluca/ci
Problem: various CI issues
2023-01-16 10:28:05 +00:00
Luca Boccassi
a820627f55 Problem: test_zmq_ppoll_signals does not cleanup context
Solution: do it, to avoid false positive in valgrind
2023-01-16 00:52:30 +00:00
Luca Boccassi
7e0fdd82de Problem: test_zmq_ppol_signals uses fixed TCP port
Solution: use random one to avoid random failures
2023-01-16 00:52:30 +00:00
Luca Boccassi
117cbe690c Problem: buffer overflow in new test case
Solution: fix it
2023-01-15 23:44:12 +00:00
Luca Boccassi
ee9c0919e2 Problem: address sanitizer complains about uninitialised func pointer
Solution: just call the function directly
2023-01-15 23:44:00 +00:00
Luca Boccassi
3cafc0c260
Merge pull request #4489 from bluca/ci
Problem: various CI issues
2023-01-12 09:49:59 +00:00
Luca Boccassi
78777fb9f5 Problem: shipping binaries is a responsibility that requires time
Solution: stop shipping binary releases for Windows. These days there's vcspkg, conda and more
that provide pre-built binaries for Windows.
Being a software supplier requires a lot of time and effort, and we have no bandwidth.
2023-01-12 01:07:06 +00:00
Luca Boccassi
961206abd5 Problem: libsodium doesn't build anymore in VS2010
Solution: disable it in appveyor, not our problem to solve
2023-01-12 01:07:06 +00:00
Luca Boccassi
7781dd1bbd Problem: formatting errors with clang-format-11
Solution: apply update
2023-01-12 01:07:06 +00:00
Luca Boccassi
47d0ecf639 Problem: missing VMCI can also return EPROTONOSUPPORT and the tests fail
Solution: ignore that too
2023-01-12 01:07:06 +00:00
Luca Boccassi
634cf9eea7 Problem: windows-2016 build no longer runs in CI
Solution: remove it
2023-01-12 01:07:06 +00:00
Luca Boccassi
3919956535 Problem: build fails with PGM + CXX98 + clang++
Solution: redefine 'restrict' which is used as an attribute in PGM headers,
but that is not available when using clang and CXX98
2023-01-11 23:43:13 +00:00
Luca Boccassi
049f79f72e
Merge pull request #4488 from ilkondr/ilkondr/poll_eintr
Problem: message can't be received due to signal
2023-01-10 18:55:45 +00:00
Ilya Kondrashkin
04720b6b91 Problem: message can't be received due to signal
Issue caught in Golang runtime, which widely uses signal SIGURG for
scheduling. Sometimes messages cannot be received. Technically
socket_base_t::process_commands() returns failure even if some commands were
processed, but next message from mailbox could not be received during interrupt.

Solution: retry receiving from mailbox with zero timeout after EINTR.

Signed-off-by: Ilya Kondrashkin <ikondrashkin@nfware.com>
2023-01-10 16:04:56 +00:00
Luca Boccassi
8d0f6f359e
Merge pull request #4486 from Rabenda/fix/qemu-user-build
fix: fix build on qemu-user
2023-01-09 17:25:29 +00:00
Han Gao
48960c2293 fix: fix build on qemu-user
In qemu-user, CACHELINE_SIZE probe is undefined

Signed-off-by: Han Gao <gaohan@iscas.ac.cn>
2023-01-10 01:12:20 +08:00
Luca Boccassi
bdd471fa17
Merge pull request #4480 from trofi/gcc-13-rebind-fix
src/secure_allocator.hpp: define missing 'rebind' type
2022-12-22 11:51:15 +01:00
Sergei Trofimovich
438d5d8839 src/secure_allocator.hpp: define missing 'rebind' type
`gcc-13` added an assert to standard headers to make sure custom
allocators have intended implementation of rebind type instead
of inherited rebind. gcc change:
    https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=64c986b49558a7

Without the fix build fails on this week's `gcc-13` as:

    [ 92%] Building CXX object tests/CMakeFiles/test_security_curve.dir/test_security_curve.cpp.o
    In file included from /<<NIX>>/gcc-13.0.0/include/c++/13.0.0/ext/alloc_traits.h:34,
                     from /<<NIX>>/gcc-13.0.0/include/c++/13.0.0/bits/stl_uninitialized.h:64,
                     from /<<NIX>>/gcc-13.0.0/include/c++/13.0.0/memory:69,
                     from tests/../src/secure_allocator.hpp:42,
                     from tests/../src/curve_client_tools.hpp:49,
                     from tests/test_security_curve.cpp:53:
    /<<NIX>>/gcc-13.0.0/include/c++/13.0.0/bits/alloc_traits.h: In instantiation of 'struct std::__allocator_traits_base::__rebind<zmq::secure_allocator_t<unsigned char>, unsigned char, void>':
    /<<NIX>>/gcc-13.0.0/include/c++/13.0.0/bits/alloc_traits.h:94:11:   required by substitution of 'template<class _Alloc, class _Up> using std::__alloc_rebind = typename std::__allocator_traits_base::__rebind<_Alloc, _Up>::type [with _Alloc = zmq::secure_allocator_t<unsigned char>; _Up = unsigned char]'
    /<<NIX>>/gcc-13.0.0/include/c++/13.0.0/bits/alloc_traits.h:228:8:   required by substitution of 'template<class _Alloc> template<class _Tp> using std::allocator_traits< <template-parameter-1-1> >::rebind_alloc = std::__alloc_rebind<_Alloc, _Tp> [with _Tp = unsigned char; _Alloc = zmq::secure_allocator_t<unsigned char>]'
    /<<NIX>>/gcc-13.0.0/include/c++/13.0.0/ext/alloc_traits.h:126:65:   required from 'struct __gnu_cxx::__alloc_traits<zmq::secure_allocator_t<unsigned char>, unsigned char>::rebind<unsigned char>'
    /<<NIX>>/gcc-13.0.0/include/c++/13.0.0/bits/stl_vector.h:88:21:   required from 'struct std::_Vector_base<unsigned char, zmq::secure_allocator_t<unsigned char> >'
    /<<NIX>>/gcc-13.0.0/include/c++/13.0.0/bits/stl_vector.h:423:11:   required from 'class std::vector<unsigned char, zmq::secure_allocator_t<unsigned char> >'
    tests/../src/curve_client_tools.hpp:64:76:   required from here
    /<<NIX>>/gcc-13.0.0/include/c++/13.0.0/bits/alloc_traits.h:70:31: error: static assertion failed: allocator_traits<A>::rebind_alloc<A::value_type> must be A
       70 |                         _Tp>::value,
          |                               ^~~~~

The change adds trivial `rebind` definition with expected return type
and satisfies conversion requirements.
2022-12-20 23:00:53 +00:00
Luca Boccassi
dfbfc59c3f
Merge pull request #4432 from Teebonne/patch-1
sodium, not Sodium
2022-12-06 14:39:21 +01:00
Teebonne
da74015b85
Create Teebonne.md 2022-12-06 10:37:55 +00:00
Francesco Montorsi
c59104a01d
Add ZMQ_TOPICS_COUNT socket option (#4459) 2022-11-29 12:00:11 +00:00
Luca Boccassi
20de92ac0a
Merge pull request #4466 from td-krzysiek/fix-missing-sodium-link-directory
fix missing sodium link_directories
2022-11-24 10:51:11 +01:00
Krzysztof Rosiński
2eb9d59cb7 add relicense note 2022-11-24 10:39:02 +01:00
Krzysztof Rosiński
80e5bfeade fix missing sodium link_directories 2022-11-24 06:40:06 +01:00
Luca Boccassi
037dd199af
Merge pull request #4462 from stephan57160/master
Problem: Android build scripts need more enhancements.
2022-11-21 13:11:48 +01:00
Stephan Guilloux (cos)
684ebb2616 Problem: Main documentation refers to Android NDK 24, when 25 is currently in use.
Solution: Fix invalid NDK reference.
2022-11-21 12:15:59 +01:00
Stephan Guilloux (cos)
fcd519ba66 Android specific documentation update. 2022-11-21 12:15:38 +01:00
Stephan Guilloux (cos)
117ddabd02 Android minor fix in documentation. 2022-11-21 11:41:33 +01:00
Stephan Guilloux (home)
9f47e064a1 Documentation update. 2022-11-21 00:21:30 +01:00
Stephan Guilloux (home)
ebe0edaaa9 More enhancements and configuration variables to Android CI build scripts.
init_dependency_root(): Moved to android_build_helper.sh

ANDROID_DEPENDENCIES_DIR: added to specify a storage for dependencies
when downloaded automatically.

ANDROID_BUILD_DIR: Changed the default in ci_build.sh.

ci_build.sh configures these 2 variables to no more use /tmp by default (
except for Android NDK), but a local clone subfolder.

This helps to find downloaded dependencies and generated binaries.

This avoid to have user permission conflicts, or conflicts with 2
different clones of LIBZMQ (for instance).
2022-11-21 00:21:30 +01:00
Guilloux Stephan (Ubuntu)
40620f9b7b Android helpers minor fixes. 2022-11-21 00:21:30 +01:00
Guilloux Stephan (Ubuntu)
30e950abfd Problem: Android dependencies are downloaded in an hard-coded /tmp/tmp-deps.
Solution: Added variable ANDROID_DEPENDENCIES_DIR, and initialize to
/tmp/tmp-deps, to avoid clash with existing code.
2022-11-21 00:21:30 +01:00
Guilloux Stephan (Ubuntu)
91bc18ee16 Enriched Android helpers
2 more functions are added:
- android_clone_library():

  Similar to android_clone_library(), but fetch a tarball and uncompress it.

  So far, only .tar.gz and .tgz archives are supported, but could be enhanced
  easily, if needed.

- android_init_dependency_root():

  Initialize or check XXX_ROOT, when XXX is a dependency name.

  Enhanced version of init_android_root() in build.sh (to be dropped, then).
  This version is now also applicable in CZMQ & ZYRE CI builds scripts for Android.
2022-11-21 00:21:30 +01:00
Guilloux Stephan (Ubuntu)
3aeadbd1c2 Problem: android_build_library can be more robust & generic
With these changes, this function is now able to build LIBZMQ but also
(almost) CZMQ, ZYRE (and their dependencies) in native or cross compilation
modes.
2022-11-21 00:21:30 +01:00
Guilloux Stephan (Ubuntu)
f91e3e41fa Problem: android_clone_library() review
Basically, only local vars renamed.
New coming functions will use the same local vars naming.
2022-11-21 00:21:30 +01:00
Guilloux Stephan (Ubuntu)
308c94e9d8 Problem: android_download_ndk can be more 'autonomous'. 2022-11-21 00:21:30 +01:00
Francesco Montorsi
7fad9599ab
Fix typo in zmq_socket_monitor_versioned docs (#4458)
* Fix typo in zmq_socket_monitor_versioned docs
2022-11-15 22:18:11 +00:00
Luca Boccassi
3ff3c6cdf3
Merge pull request #4456 from djolemanojlovic/fix_4106
Problem: Handshake timeout error with ZMTP_2_0
2022-11-11 15:14:39 +01:00
Đorđije Manojlović
aeea10c068 Add RELICENSE statement 2022-11-11 12:26:44 +01:00
Đorđije Manojlović
6cc694d8c2 Problem: Handshake timeout error with ZMTP_2_0
When two parties are trying to establish ZMTP connection and do a
handshake, in which one partie selects hanshake version 2 or lower
has been selected, handshake timer fires always (by default after 30s)
as the timer never gets cancelled.

Solution: Cancel handshake timer after handhake has been done.
2022-11-11 12:26:44 +01:00
Luca Boccassi
8d4f4efef0
Merge pull request #4452 from stephan57160/master
Problem: Android helpers have duplicate init code.
2022-10-27 16:09:27 +02:00
Guilloux Stephan (Ubuntu)
6d9c0b8366 Problem: Android helpers have duplicate init code.
Last PRs introduced a duplicate code in Android helper file.
Duplicate "Initialisation" sequence can be observed after the helper functions:

    ########################################################################
    # Initialization

...

    # (Empty string indicates no failure)
    ANDROID_BUILD_FAIL=()

Seen when trying to report last LIBZMQ Android PRs to CZMQ & ZYRE.

Solution: Remove the duplicate code.
2022-10-27 15:46:16 +02:00
Luca Boccassi
1d3ad106ac
Merge pull request #4451 from stephan57160/master
Problem: Android build documentation is outdated.
2022-10-24 23:10:30 +02:00
Luca Boccassi
c1bcb53b12
Merge pull request #4450 from stephan57160/master
Problem: Android docker image is outdated.
2022-10-24 21:32:35 +02:00
Stephan Guilloux (cos)
8742763c04 Problem: Android build documentation to be updated.
Solution: Update Android build documentation.
2022-10-24 21:04:30 +02:00
Stephan Guilloux (cos)
0e887a4037 Problem: Android docker image is outdated.
Solution: Update image.

Added references to tested versions (Ubuntu, debian) and tested NDK.
Carefull though. Android have changed there NDK naming, between 22 and 23.
2022-10-24 20:56:52 +02:00
Luca Boccassi
bfd506094a
Merge pull request #4449 from stephan57160/master
Problem: Android helpers must provide build/clone functions.
2022-10-24 19:58:49 +02:00
Stephan Guilloux (cos)
6fb3a58ca8 Problem: Android helpers must provide build/clone functions.
Reason: Code factorisation & code sharing.

Solution: Create more functions in helper file:
- android_clone_library   # Clone a library source tree.
- android_build_library   # Build a library in its source tree.
2022-10-24 19:32:01 +02:00
Luca Boccassi
3dd2a6964a
Merge pull request #4448 from stephan57160/master
Problem: Android helpers should export more compilation chain related variables
2022-10-24 18:16:28 +02:00
Stephan Guilloux (cos)
69c237efed Problem: Android helpers should export more compilation chain related variables
Among them, CC, LD, CFLAGS, ... could be useful for other tools.

Reason: Many are calculated as "local" to a particular function, which makes
them unavailable outside this helper function.

Solution: Export more variables (CC, LD, CFLAGS, ...).

New exported variables are prefixed with ANDROID_BUILD_xxx.
This naming is expected to avoid any conflicts/problem with other tools:
- ANDROID_BUILD_CC
- ANDROID_BUILD_LD
- ANDROID_BUILD_CFLAGS
- ...
2022-10-24 17:05:20 +02:00
Luca Boccassi
7ff35715ef
Merge pull request #4446 from stephan57160/master
Problem: Android CI build tools does not support LIBSODIUM_ROOT
2022-10-24 14:32:51 +02:00
Stephan Guilloux (cos)
7c3a420be4 Problem: Android CI build tools does not support LIBSODIUM_ROOT
Solution: Implement the current same kind of mechanism as CZMQ & ZYRE, with enhancement.

Enhancement: When required and if LIBSODIUM is not set, the build tool checks
for an already existing clone, close to LIBZMQ. This mechanism is close
to what is done by LIBZMQ/CZMQ/ZYRE for their dependencies.

Additionnaly: Do not copy current source tree to any 'cache' folder. Use
current folder, but make sure all is cleaned before compilation is launched.
This is a lot safer, when building different clones in parrallel...

Enhancement to be reported to CZMQ/ZYRE via ZProject.
2022-10-24 14:10:04 +02:00
Luca Boccassi
34ae0626d4
Merge pull request #4445 from stephan57160/master
Problem: Android CI build helper has no trace function.
2022-10-24 12:08:42 +02:00
Guilloux Stephan (Ubuntu)
e1078f2e7c Problem: Android CI build helper has no trace function.
Solution: Add a trace function.

Requires to move the CI build helper code/check/init/... at the end of
helper file.

This new function is available for (and also used by) build.sh.
Output is like:

    LIBZMQ (x86_64) - Blah ...

To be reported to CZMQ/ZYRE via ZProject.
2022-10-24 10:59:13 +02:00
Stephan Guilloux
2b2fb9c708
Problem: Android NDK 22 download broken since support of NDK 23. (#4444)
* Problem: Android NDK 22 download broken since support of NDK 23.

Due to the PR to support NDK 23.

With NDK 23, the archive file name has changed.
This change is handled by the PR to support NDK23, but now, only 23 and after
are supported.

Also, NDK 23 support introduced a 2nd occurence of the variable
HOST_PLATFORM, with another value. One occurence being exported,
this may confuse next developpers (and it actually confused me).

Solution: Code review

1st occurence is simply dropped, and the algorithm around is changed so that
there is no need of a 'host_platform' kind of stuff.

2nd occurrence is renamed to ANDROID_BUILD_PLATFORM.

Note that 'HOST' is replaced by 'BUILD', as this is the common naming
when talking about the build/compilation machine, when cross compiling.

A dedicated function is created in the helpers, to actually download
the NDK. As this function is made 'public', more checks are performed.

Note:

    To be reported in CZMQ & ZYRE, via ZPROJECT, where NDK is downloaded
    in 2 different files.
2022-10-21 17:36:38 +01:00
Stephan Guilloux
2a7c9efe81
Problem: Android build environment variables need clarifications. (#4443)
* Problem: Android build environment variables need clarifications.

Reason: All are spread and initialized throughout the code.

Solution: Declare, initialize and document environment variables on top of build.sh.

Side effect: This participates to documentation.
2022-10-21 10:55:33 +01:00
Stephan Guilloux
e6e76096bf
Problem: Android APP fails to load ZMQ (ARM64 only) (#4442)
* Problem: Android APP fails to load ZMQ (ARM64 only)

Seen with physical Android devices running ARM64.
Not seen with ARM, X86 or X86_64.

Any Android APP loading ZMQ fails with:
```
[FATAL] Couldn't load library library zmq from jar. Dependency is required!
```

Unpack zyre-android-2.0.1.jar, find libzmq.so for ARM64 and look for missing
symbols:
```
prompt> unzip zyre-android-2.0.1.jar
prompt> cd lib/arm64-v8a
prompt> nm --undefined-only ./libzmq.so | head
                 U __aarch64_ldadd4_acq
                 U __aarch64_ldadd4_acq_rel
                 U __aarch64_ldadd4_rel
                 U __aarch64_ldadd4_relax
                 U __aarch64_ldadd8_acq_rel
                 U __aarch64_ldadd8_relax
                 U __aarch64_swp8_acq
                 U __aarch64_swp8_acq_rel
                 U __aarch64_swp8_rel
                 U __aarch64_swp8_relax
prompt>
```
Some more symbols are missing, but those are relevant for this issue.

OK.
These symbols are present in libc++_shared, but not exported ...:
```
prompt> nm libc++_shared.so | grep aarch64
00000000000ee6d0 t __aarch64_cas1_acq_rel
00000000000ee7a0 t __aarch64_cas8_acq_rel
00000000001028f0 b __aarch64_have_lse_atomics
00000000000ee840 t __aarch64_ldadd4_acq_rel
00000000000ee810 t __aarch64_ldadd4_rel
00000000000ee8a0 t __aarch64_ldadd8_acq_rel
00000000000ee870 t __aarch64_ldadd8_relax
00000000000ee7e0 t __aarch64_swp8_acq_rel
prompt>
```

Issue seen also on the WEB, with GCC & CLANG:
- https://bugzilla.redhat.com/show_bug.cgi?id=1830472
- cea175b838
- ...

Solution: Add `-mno-outline-atomics` to CXXFLAGS (FLUTTER fix).

Additionaly, had to introduce NDK_NUMBER.
This variable is calculated in `android_build_helper.sh`.
It represents the numeric form of NDK_VERSION:
```
  NDK_VERSION          --> NDK_NUMBER
  android-ndk-r25      --> 2500
  android-ndk-r23c     --> 2303
  android-ndk-r22      --> 2200
  android-ndk-r21e     --> 2105
  ... and so on
```

This will help a few other things (NDK download ?).
2022-10-18 10:19:15 +01:00
Luca Boccassi
ec1953e614
Merge pull request #4441 from stephan57160/master
Added RELICENSE statement
2022-10-13 21:36:25 +02:00
Stephan Guilloux (home)
3c50bd6596 Added RELICENSE statement 2022-10-13 21:29:07 +02:00
Luca Boccassi
a3f95107db
Merge pull request #4439 from stephan57160/master
Regression: Android build fails with libsodium.
2022-10-12 10:27:37 +02:00
Stephan Guilloux (cos)
3022e7e099 Regression: Android build fails with libsodium.
Scenario:
```
export CURL=libsodium
cd zyre/builds/android
./ci_build.sh
```

Result:
```
Android (arm) build failed for the following reasons:
  Found no library named libzmq.so libsodium.so
    /home/stephan/git/zproject-android-testing/libzmq/builds/android/prefix/arm/lib/libzmq.so libsodium.so
```

Caused by PR #4437, where the 2nd commit was to fix Sonatype findings.

Lesson learnt: Not always a good idea to add double quotes around variables ...

Solution: Make VERIFY an array, so that Sonatype won't complain.
2022-10-12 02:43:10 +02:00
Luca Boccassi
c19f83027d
Merge pull request #4438 from stephan57160/master
Problem: Android CI build scripts need minor enhancements (traces & cleanup)
2022-10-11 23:32:51 +02:00
Stephan Guilloux (cos)
863b329ccd Problem: Android CI build scripts need minor enhancements (traces & cleanup).
Seen when someone has to relaunch `ci_build.sh` manually, for troubleshooting,
or experiment(s), ci_build.sh stops as libraries are already built.

Solution: Clean more temporary/build folders before build.

Note:

  To be reported in ZYRE/CZMQ via ZProject.

When called from ZYRE/CZMQ, it's difficult to identify which build script is
being executed

Solution: Modify each `echo` trace to show the project name and Android architecture in progress.

Note:

  To be reported in ZYRE/CZMQ via ZProject.
2022-10-11 23:08:08 +02:00
Stephan Guilloux
65b33ebefa
Problem: Android APP fails to load ZMQ since NDK r25.x (#4437)
* Problem: Android APP fails to load ZMQ since NDK r25.x

With the help of the dump of ./configure options (former PR):
```
LIBZMQ (arm) - ./configure options to build 'LIBZMQ':
  > --quiet
  > TOOLCHAIN=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64
  > CC=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi21-clang
  > CXX=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi21-clang++
  > LD=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/ld
  > AS=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-as
  > AR=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar
  > RANLIB=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib
  > STRIP=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip
  > CFLAGS= -D_GNU_SOURCE -D_REENTRANT -D_THREAD_SAFE
  > CPPFLAGS= -I/home/stephan/git/zproject-android-testing/libzmq/builds/android/prefix/arm/include
  > CXXFLAGS=
  > LDFLAGS=-L/home/stephan/git/zproject-android-testing/libzmq/builds/android/prefix/arm/lib -L/tmp/android-ndk-r25/sour\
ces/cxx-stl/llvm-libc++/libs/armeabi-v7a
  > LIBS=-lc -ldl -lm -llog -lc++_shared
  > PKG_CONFIG_LIBDIR=/tmp/android-ndk-r25/prebuilt/linux-x86_64/lib/pkgconfig
  > PKG_CONFIG_PATH=/home/stephan/git/zproject-android-testing/libzmq/builds/android/prefix/arm/lib/pkgconfig
  > PKG_CONFIG_SYSROOT_DIR=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/sysroot
  > PKG_CONFIG_DIR=
  > --with-sysroot=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/sysroot
  > --host=arm-linux-androideabi
  > --prefix=/home/stephan/git/zproject-android-testing/libzmq/builds/android/prefix/arm
  > --disable-curve
  > --without-docs
```

We can observe that LDFLAGS has invalid `-L<path_to_libc++_shared.so>`:
```
-L/tmp/android-ndk-r25/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a

```
This path is no more valid, since NDK r25, where one should use LLVM path.

Ok, once this is fixed, ./configure requires also the path to libc.so.
I don't understand why libc.so is now required, actually, but without this, ./configure fails
to build its conftest.

Solution: Fix invalid LDFLAGS.

Notes:

- To be reported to CZMQ/ZYRE via ZPROJECT.

- Tested successfully with Android Emulator (x86 & x86_64).

- Still need some more work, as execution still fails with physical devices (observed on arm64).

- Introduced `ANDROID_STL`, `ANDROID_STL_ROOT` & `ANDROID_LIBC_ROOT`. All are initialized in `android_build_helper.sh`.

- New mechanism **MUST** be compatible with former NDK versions.
2022-10-11 21:40:13 +01:00
Luca Boccassi
1c92300933
Merge pull request #4435 from stephan57160/master
Problem: Android build system needs some debug (./configure options)
2022-10-06 18:34:04 +02:00
Guilloux Stephan (Ubuntu)
426985cb2c TAB -> SPACE 2022-10-06 11:32:57 +02:00
Guilloux Stephan (Ubuntu)
a20527da7f Problem: Android build system needs some debug (./configure options)
Proposal is to dump ./configure options to have an output like below:

```
LIBZMQ (x86_64) - ./configure options to build 'LIBZMQ':
  > --quiet
  > TOOLCHAIN=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64
  > CC=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android21-clang
  > CXX=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android21-clang++
  > LD=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/ld
  > AS=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-as
  > AR=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar
  > RANLIB=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib
  > STRIP=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip
  > CFLAGS= -D_GNU_SOURCE -D_REENTRANT -D_THREAD_SAFE
  > CPPFLAGS= -I/builds/CrisalidBox/zproject-android-testing/libzmq/builds/android/prefix/x86_64/include
  > CXXFLAGS=
  > LDFLAGS=-L/builds/CrisalidBox/zproject-android-testing/libzmq/builds/android/prefix/x86_64/lib -L/tmp/android-ndk-r25/sources/cxx-stl/llvm-libc++/libs/x86_64
  > LIBS=-lc -ldl -lm -llog -lc++_shared
  > PKG_CONFIG_LIBDIR=/tmp/android-ndk-r25/prebuilt/linux-x86_64/lib/pkgconfig
  > PKG_CONFIG_PATH=/builds/CrisalidBox/zproject-android-testing/libzmq/builds/android/prefix/x86_64/lib/pkgconfig
  > PKG_CONFIG_SYSROOT_DIR=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/sysroot
  > PKG_CONFIG_DIR=
  > --with-sysroot=/tmp/android-ndk-r25/toolchains/llvm/prebuilt/linux-x86_64/sysroot
  > --host=x86_64-linux-android
  > --prefix=/builds/CrisalidBox/zproject-android-testing/libzmq/builds/android/prefix/x86_64
  > --disable-curve
  > --without-docs
```

Note:

  This mechanism is currently in use to identify/fix a bug in a recent PR for NDK update.

This mechanism is added before every call of `./configure`.

To be reported to CZMQ/ZYRE (via ZPROJECT).
2022-10-06 11:08:06 +02:00
Luca Boccassi
875c2b15c3
Merge pull request #4433 from stephan57160/master
Problem: Android build script may fail silently
2022-10-02 10:21:53 +01:00
Stephan Guilloux (cos)
0d49eddf16 Problem: Android build script may fail silently
Solution: Use `set -e`

Note:
To be reported in ZPROJECT, when generating the same for CZMQ & ZYRE.

Note:
`make clean` may fail when Makefile is not yet generated
(case of 1st call of build.sh after git clone).

Additionnaly, cleaned the dependency folder
(report of ZPROJECT generated scripts).
2022-10-02 02:27:12 +02:00
Teebonne
8061a33e13
sodium, not Sodium
sodium, not Sodium
2022-10-01 15:29:42 +01:00
Luca Boccassi
a782d79d45
Merge pull request #4431 from stephan57160/master
Problem: Android helpers no not validate dependent libraries.
2022-10-01 11:56:10 +01:00
Stephan Guilloux (cos)
8b8fb6d80e Problem: Android helpers no not validate dependent libraries.
Seen in the code:
```
function android_build_verify_so {
...
    for dep_soname do
        if [[ $elfoutput != *"library: [${dep_soname}]"* ]]; then
            ANDROID_BUILD_FAIL+=("Library ${soname} was expected to be linked to library with soname:")
            ANDROID_BUILD_FAIL+=("  ${dep_soname}")
        fi
    done
```

The `for xxx` syntax is wrong, most probably a typo somewhere.

Solution: Fix & complete the `for xxx` loop.

Tested with & without LIBSODIUM (only available dependent library for LIBZMQ).

Note: The same has to be done in ZPROJECT, for CZMQ & ZYRE.
2022-10-01 03:59:23 +02:00
Luca Boccassi
e15fb044ef
Merge pull request #4430 from nyfix/test_spec_req_tmo
avoid intermittent timeouts in test (esp. when run w/ASAN etc.)
2022-09-30 21:45:04 +01:00
Bill Torpey
25b3e7af02 avoid intermittent timeouts in test (esp. when run w/ASAN etc.) 2022-09-30 11:45:19 -04:00
Luca Boccassi
c73447b9e7
Merge pull request #4429 from benjdero/master
Problem: Default Android NDK version is not aligned with zproject
2022-09-26 14:15:03 +01:00
Benjamin Deroche
1f1e8145d0 Problem: Default Android NDK version is not aligned with zproject
Solution: Set NDK r25 as the default. No compatiblity changes required.
2022-09-26 14:47:05 +02:00
Luca Boccassi
ec6f3b1dba
Merge pull request #4427 from stephan57160/master
Problem: builds/android/build.sh fails with CURVE=libsodium
2022-09-22 11:35:00 +01:00
Stephan Guilloux (cos)
d4dd8a5417 Changed more git:gihub.com to https://github.com 2022-09-22 02:47:22 +02:00
Stephan Guilloux (cos)
a7774e38e6 Problem: builds/android/build.sh fails with CURVE=libsodium
How to reproduce:
```
prompt> git clone libzmq
prompt> cd libzmq/builds/android
prompt> export CURVE=libsodium
prompt> ./ci_build.sh
Cloning into 'libsodium'...
fatal: unable to connect to github.com:
github.com[0: 140.82.121.4]: errno=Connection timed out

Cloning into 'libsodium'...
fatal: unable to connect to github.com:
github.com[0: 140.82.121.3]: errno=Connection timed out

Cloning into 'libsodium'...
fatal: unable to connect to github.com:
github.com[0: 140.82.121.3]: errno=Connection timed out

Cloning into 'libsodium'...
fatal: unable to connect to github.com:
github.com[0: 140.82.121.4]: errno=Connection timed out

prompt>
```

Reason: Invalid URL to download libsodium:
```
prompt> grep -s 'git clone' libzmq/builds/android/*.sh
libzmq/builds/android/build.sh:70:        (cd "${cache}" && git clone -b stable --depth 1 git://github.com/jedisct1/libsod
                                                                                          ^^^^^^^^^^^^^^^^^
```

URL should be either:
- `git@github.com:`
- `https://github.com/` same given in [zproject](https://github.com/zeromq/zproject/blob/master/zproject_known_projects.xml#L108-L111).

Solution: Change URL to `https://`.

Result:
```
prompt> export CURVE=libsodium
prompt> ./ci_build.sh
Cloning into 'libsodium'...
remote: Enumerating objects: 659, done.
remote: Counting objects: 100% (659/659), done.
remote: Compressing objects: 100% (586/586), done.
remote: Total 659 (delta 159), reused 220 (delta 34), pack-reused 0
Receiving objects: 100% (659/659), 1.97 MiB | 4.00 MiB/s, done.
Resolving deltas: 100% (159/159), done.
autoconf scripts already exist.
...
libtool: install: /bin/install -c tools/.libs/curve_keygen /home/cbox_dev/git/ZEROMQ/libzmq/builds/android/prefix/x86_64/bin/curve_keygen
 /bin/mkdir -p '/home/cbox_dev/git/ZEROMQ/libzmq/builds/android/prefix/x86_64/include'
 /bin/install -c -m 644 include/zmq.h include/zmq_utils.h '/home/cbox_dev/git/ZEROMQ/libzmq/builds/android/prefix/x86_64/include'
 /bin/mkdir -p '/home/cbox_dev/git/ZEROMQ/libzmq/builds/android/prefix/x86_64/lib/pkgconfig'
 /bin/install -c -m 644 src/libzmq.pc '/home/cbox_dev/git/ZEROMQ/libzmq/builds/android/prefix/x86_64/lib/pkgconfig'
make[2]: Leaving directory `/tmp/android_build/x86_64/libzmq'
make[1]: Leaving directory `/tmp/android_build/x86_64/libzmq'
libzmq android build succeeded
prompt>
```
2022-09-22 00:43:57 +02:00
Jack·Boos·Yu
9d4685d90c
[document] add vcpkg instruction (#4425)
* [document] Add vcpkg instruction step
2022-09-16 11:24:11 +01:00
Luca Boccassi
0ec2178edf
Merge pull request #4422 from minrk/bind-can-fail
Problem: bind can fail after open_socket succeeds on Windows without AF_UNIX
2022-09-08 16:17:39 +01:00
Min RK
bf906ee346
AF_UNIX support may fail on bind 2022-09-08 15:10:04 +02:00
Min RK
b2921d7183
check rc in make_fdpair
since it can fail, e.g. Windows + AF_UNIX
2022-09-08 11:17:51 +02:00
Abael He
4e193f36fc Problem: some tools misdetect null access or broken libsodium implementation
Build all projects

** BUILD SUCCEEDED **

bash-3.2# cd  bin/Debug/
bash-3.2# for x in ./* ; do ./$x 1> /dev/null 2>/dev/null  || echo $x ; done
./test_bind_curve_fuzzer
./test_bind_fuzzer
./test_bind_null_fuzzer
./test_connect_curve_fuzzer
./test_connect_fuzzer
./test_connect_null_fuzzer
Segmentation fault: 11
./test_security_curve
./test_z85_decode_fuzzer
bash-3.2# ./test_bind_curve_fuzzer
bash-3.2# ./test_bind_curve_fuzzer
bash-3.2# ./test_bind_fuzzer
bash-3.2# ./test_bind_null_fuzzer
bash-3.2# ./test_connect_curve_fuzzer
bash-3.2# ./test_connect_fuzzer
bash-3.2# ./test_security_curve
Segmentation fault: 11
bash-3.2# lldb ./test_security_curve
(lldb) target create "./test_security_curve"
Current executable set to '/Users/abaelhe/Downloads/libzmq-master/build/bin/Debug/test_security_curve' (x86_64).
(lldb) r
Process 39009 launched: '/Users/abaelhe/Downloads/libzmq-master/build/bin/Debug/test_security_curve' (x86_64)
Process 39009 stopped
* thread #3, name = 'ZMQbg/IO/0', stop reason = signal SIGSEGV
    frame #0: 0x00007ff80f64f192 libsystem_kernel.dylib`__pthread_sigmask + 10
libsystem_kernel.dylib`__pthread_sigmask:
->  0x7ff80f64f192 <+10>: jae    0x7ff80f64f19c            ; <+20>
    0x7ff80f64f194 <+12>: movq   %rax, %rdi
    0x7ff80f64f197 <+15>: jmp    0x7ff80f64a1c5            ; cerror_nocancel
    0x7ff80f64f19c <+20>: retq
Target 0: (test_security_curve) stopped.
(lldb) bt
warning: could not find Objective-C class data in the process. This may reduce the quality of type information available.
* thread #3, name = 'ZMQbg/IO/0', stop reason = signal SIGSEGV
  * frame #0: 0x00007ff80f64f192 libsystem_kernel.dylib`__pthread_sigmask + 10
    frame #1: 0x00007ff80f685acb libsystem_pthread.dylib`pthread_sigmask + 9
    frame #2: 0x00007ff80f5d1d19 libsystem_c.dylib`abort + 112
    frame #3: 0x0000000100333551 libsodium.23.dylib`_out_of_bounds.cold.1 + 17
    frame #4: 0x0000000100316229 libsodium.23.dylib`_out_of_bounds + 9
    frame #5: 0x0000000100316218 libsodium.23.dylib`sodium_free + 408
    frame #6: 0x00000001005a6d0d libzmq.5.dylib`zmq::secure_allocator_t<unsigned char>::deallocate(this=0x00007000014c6ce0, p="", (null)=96) at secure_allocator.hpp:63:56
    frame #7: 0x00000001005a6c25 libzmq.5.dylib`std::__1::allocator_traits<zmq::secure_allocator_t<unsigned char> >::deallocate(__a=0x00007000014c6ce0, __p="", __n=96) at allocator_traits.h:282:13
    frame #8: 0x00000001005a6484 libzmq.5.dylib`std::__1::__vector_base<unsigned char, zmq::secure_allocator_t<unsigned char> >::~__vector_base(this=0x00007000014c6cd0) at vector:488:9
    frame #9: 0x00000001005acae2 libzmq.5.dylib`std::__1::vector<unsigned char, zmq::secure_allocator_t<unsigned char> >::~vector(this=0x00007000014c6cd0 size=0) at vector:579:5
    frame #10: 0x00000001005ac165 libzmq.5.dylib`std::__1::vector<unsigned char, zmq::secure_allocator_t<unsigned char> >::~vector(this=0x00007000014c6cd0 size=0) at vector:574:5
    frame #11: 0x00000001005ab2e7 libzmq.5.dylib`zmq::curve_server_t::process_hello(this=0x000000010182c600, msg_=0x00006000037001e8) at curve_server.cpp:208:1
    frame #12: 0x00000001005aad30 libzmq.5.dylib`zmq::curve_server_t::process_handshake_command(this=0x000000010182c600, msg_=0x00006000037001e8) at curve_server.cpp:104:18
    frame #13: 0x000000010062ccd7 libzmq.5.dylib`zmq::stream_engine_base_t::process_handshake_command(this=0x000000010182d400, msg_=0x00006000037001e8) at stream_engine_base.cpp:491:32
    frame #14: 0x000000010062ba21 libzmq.5.dylib`zmq::stream_engine_base_t::in_event_internal(this=0x000000010182d400) at stream_engine_base.cpp:309:14
    frame #15: 0x000000010062b665 libzmq.5.dylib`zmq::stream_engine_base_t::in_event(this=0x000000010182d400) at stream_engine_base.cpp:243:22
    frame #16: 0x00000001005c0889 libzmq.5.dylib`zmq::kqueue_t::loop(this=0x00006000037000c0) at kqueue.cpp:218:30
    frame #17: 0x00000001005eefa9 libzmq.5.dylib`zmq::worker_poller_base_t::worker_routine(arg_=0x00006000037000c0) at poller_base.cpp:146:51
    frame #18: 0x0000000100637e66 libzmq.5.dylib`thread_routine(arg_=0x0000600003700100) at thread.cpp:256:5
    frame #19: 0x00007ff80f6864e1 libsystem_pthread.dylib`_pthread_start + 125
    frame #20: 0x00007ff80f681f6b libsystem_pthread.dylib`thread_start + 15
(lldb)
2022-08-10 22:21:00 +01:00
Luca Boccassi
05701e4a56
Merge pull request #4412 from caicaiking/master
Problem: get_opt function read the options value not thread safe
2022-08-10 22:15:08 +01:00
Abama.cai
65eee9354a
Update tongsong-cai.md 2022-08-11 03:02:56 +08:00
Abama cai
6d131718f3 Add RELICENSE statement 2022-08-11 02:46:31 +08:00
Abama cai
717d1980ee Problem: get_opt function read the options value maybe not thread safe
Solution: use scoped lock to prevent them from being modified during reading
2022-08-10 22:35:14 +08:00
Luca Boccassi
0251be4d77
Merge pull request #4409 from nevalsar/master
Problem: Incorrect formatting of documentation in zmq_udp.txt
2022-08-03 16:19:01 +01:00
Nevin Valsaraj
5a9523227a
Add relicense for nevalsar
Add relicense statement for nevalsar.
2022-08-03 08:09:26 -07:00
Nevin Valsaraj
ea1962b825
Problem: Incorrect formatting of documentation in zmq_udp.txt
Solution: Replace incorrect underline pattern in zmq_udp.txt that
makes part of the text show up as pre-formatted code block with
regular underline pattern.
2022-07-22 09:19:13 -07:00
Luca Boccassi
8fd1ec0592
Merge pull request #4406 from abaelhe/patch-2
Permission to Relicense under relevant approved license
2022-07-17 16:10:58 +01:00
Abael He
ceaccd7f9d
Permission to Relicense under relevant approved license
Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
By Abael He<abaelhe@icloud.com>
2022-07-17 23:08:08 +08:00
Luca Boccassi
37224c93de
Merge pull request #4383 from benjdero/master
Revert "Problem: Libs crash at runtime on Android when built with NDK 23+
2022-05-12 09:55:35 +01:00
Benjamin Deroche
5f6f708f29 Revert "Problem: Libs crash at runtime on Android when built with NDK 23+"
This reverts commit 9c6f09cbe551e08782b67fae367b56dc69f656f7.
2022-05-11 17:25:46 +02:00
Luca Boccassi
2d805026bb
Merge pull request #4382 from benjdero/master
Problem: Libs crash at runtime on Android when built with NDK 23+
2022-05-10 18:02:17 +01:00
Benjamin Deroche
9c6f09cbe5 Problem: Libs crash at runtime on Android when built with NDK 23+
Solution: Fix the recently updated scripts
2022-05-10 15:21:06 +02:00
Luca Boccassi
f7d4910017
Merge pull request #4381 from benjdero/master
Problem: Accidentaly deleted a comment when updating Android build sc…
2022-05-09 15:25:18 +01:00
Benjamin Deroche
a49a4d0997 Problem: Accidentaly deleted a comment when updating Android build scripts
Solution: Restore it
2022-05-09 16:18:02 +02:00
Luca Boccassi
ecfa5eccfb
Merge pull request #4380 from benjdero/master
Problem: Android build scripts does not work with latest NDK versions
2022-05-09 13:47:26 +01:00
Benjamin Deroche
d1ee71a634 Problem: Android build scripts does not work with latest NDK versions
Solution: Update the build scripts to work with NDK versions r23 and r24
2022-05-09 12:15:49 +02:00
Bill Torpey
edfbb1ced6
default to not building tests if cmake version can't handle skipped tests (#4376)
* default to not building tests if cmake version can't handle skipped tests (see https://github.com/zeromq/libzmq/issues/4375)
2022-05-03 22:18:44 +01:00
Luca Boccassi
572eb008f1
Merge pull request #4365 from bluca/obs
Problem: cannot use obs_scm which is faster than tar_scm
2022-04-09 01:16:41 +01:00
Luca Boccassi
c5d1bbf6f0 Problem: cannot use obs_scm which is faster than tar_scm
Solution: rename dsc file so that it matches expected format
2022-04-08 01:41:50 +01:00
Luca Boccassi
2ab472e735 Problem: manual release OBS trigger is flaky
Solution: use workflow instead
2022-04-08 01:23:51 +01:00
Luca Boccassi
e9e01faa73
Merge pull request #4360 from darkdragon-001/fix-pkgconfig
Fix pkgconfig
2022-03-15 13:43:25 +00:00
Darkdragon-001
58c2ac15b4 Add RELICENSE. 2022-03-15 12:44:01 +01:00
Darkdragon-001
ff2987d24a Fix pkgconfig
Use CMake install variables instead of hardcoded values.
2022-03-15 12:12:21 +01:00
Luca Boccassi
f13f891c91
Merge pull request #4357 from ferdnyc/doc-spec-ref
Problem: Docs reference outdated spec
2022-03-03 10:34:50 +00:00
FeRD (Frank Dana)
159bf0f3ad Problem: Docs reference outdated spec
Solution: Update with URL to current stable spec
2022-03-03 02:20:39 -05:00
Luca Boccassi
81a8211eeb
Merge pull request #4348 from rex4539/typos
Fix typos
2022-02-10 23:35:37 +00:00
Dimitris Apostolou
538fdb6e4c
Add relicense statement 2022-02-11 01:31:14 +02:00
Dimitris Apostolou
6b8dd84a63
Fix typos 2022-02-11 00:45:06 +02:00
Luca Boccassi
ca6dc86178
Merge pull request #4346 from Jasper-Bekkers/patch-2
Fix minor casing issue in include files
2022-02-08 20:52:21 +00:00
Jasper Bekkers
d01f244cf6
Add relicense 2022-02-08 16:17:29 +01:00
Jasper Bekkers
aea0665eec
Fix minor casing issue in include files
This fails when compiling x86_64-pc-windows-msvc targets on a case sensitive file system.
2022-02-06 22:12:19 +01:00
Luca Boccassi
a01d259db3
Merge pull request #4334 from bluca/gcc_fix
Problem: build fails with gcc 12
2022-01-18 20:17:32 +00:00
Luca Boccassi
176d72cc9b Problem: build fails with gcc 12
Solution: change test_monitor and example
2022-01-18 16:15:07 +00:00
Wojciech Kula
f03391640b Add relicense statement for Cziken 2022-01-13 09:08:23 +00:00
Luca Boccassi
612170a570 Add relicense grant from hitstergtd
Received via email, message-id:

<CAMiF1Pqf9c=KPAC9SMinKdPLVdfwB0D1B-ZbJAEMzyZmSyqQQg@mail.gmail.com>
2022-01-08 14:26:09 +00:00
Luca Boccassi
36f3d50c59
Merge pull request #4328 from tranthamp/master
Add license file for tranthamp
2022-01-07 19:06:54 +00:00
Patrick Trantham
e38a7f84d8 Add license file for tranthamp 2022-01-07 12:55:45 -06:00
fanquake
6473bf4166 problem: kevent udata is now void* on NetBSD Current (10)
solution: check for the intptr_t variant in configure.
2022-01-03 18:03:14 +00:00
Luca Boccassi
8e98b79f23
Merge pull request #4325 from fanquake/fix_builtin_typo
problem: typo in configure.ac output
2022-01-03 12:56:35 +00:00
fanquake
25d0a280e0
problem: typo in configure.ac output
solution: fix the typo
2022-01-03 19:44:07 +08:00
Luca Boccassi
ee09926cbd
Merge pull request #4323 from boscosiu/cmake-export-use-draft-api
Problem: ZMQ_BUILD_DRAFT_API define is not propagated to dependent CMake projects
2021-12-29 12:46:47 +00:00
boscosiu
4d0f4ebd69 Problem: ZMQ_BUILD_DRAFT_API define is not propagated to dependent CMake projects
Solution: Add the definition to the relevant CMake targets in public scope.  Fixes #4194
2021-12-28 18:23:05 -08:00
Luca Boccassi
7755c8442e
Merge pull request #4317 from tarmo/router-metadata-prefetch
Problem: ROUTER loses first frame metadata on message prefetch
2021-12-16 12:20:31 +00:00
Tarmo Tänav
74529d97b2 Problem: ROUTER loses first frame metadata on message prefetch
Solution: copy metadata on prefetch to the first frame
2021-12-16 10:17:44 +02:00
Luca Boccassi
ab9c7add58
Merge pull request #4314 from ThalesGroup/issue-4312-epoll-invalid-null-pointer
Issue 4312 : Fix epoll invalid event data pointer
2021-12-03 18:31:51 +00:00
patrick-volante
f6eb59c269 issue-4312 Add relicnce file. 2021-12-03 16:21:51 +01:00
patrick-volante
2c415b6f68 Problem: inside the event array, epoll return an event with invalid data pointer which create a segmentation fault
Tests to prevent segmentation fault due to null pointer are added.
2021-12-03 11:58:20 +01:00
Luca Boccassi
1d3633742a
Merge pull request #4311 from myd7349/fix-sockaddr_un-redefinition
Problem: struct sockaddr_un redefinition
2021-11-25 12:07:00 +00:00
myd7349
471ea68caf Problem: struct sockaddr_un redefinition
The definition of sockaddr_un should be protected by the include guard.
2021-11-25 08:35:58 +08:00
myd7349
5eb0b00c87
Problem: In rare cases, afunix.h doesn't contain a definition for struct sockaddr_un (#4310)
* Problem: In rare cases, afunix.h doesn't contain a definition for struct sockaddr_un

According to https://github.com/microsoft/vcpkg/issues/21623,
struct sockaddr_un might be unavailable on some machines even afunix.h exists.

For example, on some machines, the content of afunix.h looks like this:
typedef struct _SOCKADDR_UN
{
     ADDRESS_FAMILY Family;
     wchar_t Path[63];
} SOCKADDR_UN, *PSOCKADDR_UN;

but on other machines, it may looks like this:
#define UNIX_PATH_MAX 108

typedef struct sockaddr_un
{
    ADDRESS_FAMILY sun_family;
    char sun_path[UNIX_PATH_MAX];
} SOCKADDR_UN, *PSOCKADDR_UN;

Fixes #3949

References:
- [Enable Unix-domain sockets support on Windows](8f3ec75de4)
- [AF_UNIX equivalent for Windows](https://stackoverflow.com/questions/9029174/af-unix-equivalent-for-windows)
- https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/
2021-11-24 14:55:45 +00:00
Luca Boccassi
5a9c174dab
Merge pull request #4309 from dgloe-hpe/3313-fork-detection
Problem: Fix fork detection on gcc 7
2021-11-23 19:17:26 +00:00
David Gloe
72b5359049 Problem: Missing relicense statement for dgloe-hpe
Solution: Add new author to the existing HPE relicense statement.
2021-11-23 16:27:52 +00:00
David Gloe
240e36af4e Problem: Fix fork detection on gcc 7
Solution: When compiling with gcc 7 and newer, the program produced by
AC_CHECK_FUNCS(fork) produces a warning, which results in configure
incorrectly disabling fork support. Fix the issue by using an
AC_COMPILE_IFELSE which correctly detects fork availability.
Tested by running configure and make check on a system with gcc 7
installed, and verifying that HAVE_FORK was defined correctly.

See issue #3313.
2021-11-23 15:47:57 +00:00
Niyas Sait
4b48007927 add win/arm64 to supported platform list 2021-11-15 14:33:20 +00:00
Luca Boccassi
2375ca8b26
Merge pull request #4299 from nsait-linaro/enable_woa64
Get cycle count from ARM64 PMCCNTR_EL0 register
2021-11-15 12:56:22 +00:00
Niyas Sait
0d86aa517f Fix linting error reported by clang-format 2021-11-15 10:31:21 +00:00
Niyas Sait
c3b3ea7ec2 add relicense for niyas sait 2021-11-15 09:42:28 +00:00
Niyas Sait
e9f86fee61 Get cycle count from ARM64 PMCCNTR_EL0 register 2021-11-15 09:12:11 +00:00
Luca Boccassi
329824cafe
Merge pull request #4294 from thielepaul/master
Problem: if ZMQ_XPUB_VERBOSER is used with proxies unsubscribe messages are lost
2021-11-05 17:44:34 +00:00
Paul Thiele
add81132c5 Problem: no relicense agreement by thielepaul
Solution: added relicense agreement
2021-11-05 15:15:19 +01:00
Paul Thiele
6737d50933 Problem: if ZMQ_XPUB_VERBOSER is used with proxies unsubscribe messages are lost
Solution: add socket option ZMQ_XSUB_VERBOSE_UNSUBSCRIBE to forward all unsubscribe messages
2021-11-05 15:12:31 +01:00
Luca Boccassi
d62fd1ac7a Problem: formatting broken
Solution: run make clang-format-diff
2021-11-03 19:39:50 +00:00
Qqzk
bb7a1cc018 Update decoder_allocators.cpp
zmq::shared_message_memory_allocator::deallocate () need to descontruct the object created by new operator.
2021-11-03 19:37:41 +00:00
Qqzk
8f238ae0b4 Create qzkLicense 2021-11-03 15:30:31 +00:00
Luca Boccassi
bddd0bc690
Merge pull request #4290 from thxkiwi/PR_issue_4287
Problem: (Windows) /GL /LTCG breaks builds when the compiler/linker o…
2021-10-29 00:30:24 +01:00
Michael Ngarimu
a6ed5b7a3f Adding missing RELICENSE file
Resolves zeromq/libzmq#4287
2021-10-28 11:28:19 -07:00
Michael Ngarimu
7c625afcc0 Problem: (Windows) /GL /LTCG breaks builds when the compiler/linker of static library differs from compiler/linker of executable
Solution: Enable /GL and /LTCG if and only if building as a Release (i.e. non-DEBUG) DLL.

Resolves zeromq/libzmq#4287
2021-10-27 22:17:21 -07:00
mjvankampen
36d6b5d923
Problem: polling_util.hpp missing sys/select.h include (#4283)
* Problem: polling_util.hpp missing sys/select.h include

Solution: include sys/select.h
2021-10-21 20:56:32 +01:00
Luca Boccassi
b2ab09bf79
Merge pull request #4285 from mjvankampen/fix/cmake_cxx_standard
Problem: newer cmake versions set CMAKE_C(XX)_FLAGS at a later stage …
2021-10-21 14:51:14 +01:00
Mark Jan van Kampen
c036d66286
Problem: newer cmake versions set CMAKE_C(XX)_FLAGS at a later stage not allowing a user to override the standard
Solution: check for C(XX)_STANDARD/CMAKE_C(XX)_STANDARD as well
Fixes #4284
2021-10-21 12:24:12 +02:00
Benjamin Deroche
519e2bf129
Problem: Android build script isn't compatible with latest NDK version (#4278)
* Problem: Android build script isn't compatible with latest NDK version

Solution: Update to Android NDK r22b
2021-10-18 10:05:10 +01:00
Gudmundur Adalsteinsson
7c2df78b49 Problem: Invalid and inconsistent poller docs
Solution: Fix it and make example code more complete
2021-10-10 11:55:56 +01:00
Luca Boccassi
e39a93e652 Problem: OBS CI config needs update following breaking change
https://openbuildservice.org/2021/09/28/support-for-push-events/
2021-10-07 11:45:59 +01:00
E. G. Patrick Bos
9fbfa40bab Problem: when linking to libzmq in my project, I want zmq symbols to remain invisible to users of my library. There is no way to control this, since visibility is set automatically through ZMQ_EXPORT based on OS and compiler.
Solution: add a preprocessor variable ZMQ_NO_EXPORT that, when set, bypasses the automatic ZMQ_EXPORT determination block and just sets ZMQ_EXPORT to empty.

By combining this solution at configuration time with manually passing -fvisibility=hidden to CXXFLAGS, I solved my visibility problem. Just passing -fvisibility=hidden is not enough, because __attribute__ ((visibility ("default"))) has higher priority.
2021-10-07 10:48:58 +01:00
Luca Boccassi
5d8d857540
Merge pull request #4264 from analogist/master
mingw-w64 10.3 build fix - winsock socket() return unsigned
2021-09-25 11:31:27 +01:00
James Wu
228edc92a9 fix test comparison between -1 and unsigned winsock2.h socket return 2021-09-24 13:13:19 -07:00
Luca Boccassi
de0b3e72dd
Merge pull request #4255 from egpbos/zmq_ppoll
add zmq_ppoll
2021-09-24 12:56:27 +01:00
E. G. Patrick Bos
36e4c9b474
add zmq_ppoll
zmq_ppoll mostly mimics zmq_poll behavior, except for the added feature of being able to specify a signal mask. Signals in this mask will be blocked during execution of zmq_ppoll. Switching of the process' active signal mask happens atomically with the actual poll call, so that no race conditions can occur. This behavior is useful when one wants to gracefully handle POSIX signals without race conditions. See e.g. the discussion below https://250bpm.com/blog:12/ for an explanation.

Also includes two new tests:
1. test_zmq_ppoll_fd does the same thing as test_zmq_poll_fd, demonstrating backwards compatibility with zmq_poll when used with a default signal mask.
2. test_zmq_ppoll_signals demonstrates the use of zmq_ppoll with a signal mask, blocking out SIGTERM everywhere except in zmq_ppoll, allowing to handle the signal in one place without having to worry about race conditions.
2021-09-24 11:04:20 +02:00
Luca Boccassi
f730e03835
Merge pull request #4259 from bluca/ci
Problem: Travis is no longer free for FLOSS projects
2021-09-22 21:13:27 +01:00
Luca Boccassi
cf8afcc411 Problem: Travis is no longer free for FLOSS projects
Solution: switch to Github Actions

Travis recently started enforcing credits for OSS projects without
any funding. While it is possible to get free credits, it is a manual
step that involves contacting customer support via email and asking to
add them, every week. While this does not require money, it requires
something far scarcer: volunteers time.

Drop Travis and migrate to Github Actions.
2021-09-22 16:42:09 +01:00
Luca Boccassi
6f200814cd Problem: some tests occasionally fail on OBS
Solution: ignore them
2021-09-22 16:42:09 +01:00
Luca Boccassi
2a954b301e Problem: test_security_curve always fails when run by CMake under Github Actions
Solution: skip it
2021-09-22 16:42:09 +01:00
Luca Boccassi
276bab8d3b Problem: test_socks and test_proxy hang under valgrind in Github Actions
Solution: skip them
2021-09-22 16:40:17 +01:00
Luca Boccassi
e3d37a82e1 Problem: some tests time out in CI under Valgrind
Solution: triple the timeouts
2021-09-22 16:40:17 +01:00
Luca Boccassi
0f706bdd97 Problem: formatting errors
Solution: run make clang-format-diff
2021-09-22 16:40:17 +01:00
Luca Boccassi
11f0802912 Problem: VMCI might not be supported by CI
Solution: skip tests if zmq_bind fails with EAFNOSUPPORT
2021-09-22 16:40:17 +01:00
Luca Boccassi
37c548d62b Problem: test_pair_tcp_cap_net_admin requires privileges and might fail
Solution: skip it if EOPNOTSUPP is returned instead of failing
2021-09-22 16:40:17 +01:00
Luca Boccassi
0eefa8b582 Problem: README.md does not mention Libera.chat
Solution: fix it

Closes #4261
2021-09-22 15:56:26 +01:00
Tim Blechmann
2bfef9aff3 epoll: add missing override statement 2021-09-22 10:11:03 +01:00
Luca Boccassi
ade334faa4
Merge pull request #4258 from timblechmann/feature/add-missing-override-statements
add missing override statements
2021-09-21 15:24:51 +01:00
Tim Blechmann
51e97c5480 add missing override statements 2021-09-21 20:13:41 +08:00
Tim Blechmann
5d04e20a01 relicense: add relicense statement for tim blechmann 2021-09-21 20:13:41 +08:00
Gudmundur Adalsteinsson
056f37f352 Problem: fast vector resize bug
Solution: init correct vector size and copy previous data into it
2021-09-01 09:58:34 +01:00
Luca Boccassi
80fef55955
Merge pull request #4246 from YunYe-Pu/yunye-patch-wss
Problem: WSS broken under high load
2021-08-31 18:31:52 +01:00
Yunye Pu
c8dfa36935 Add relicense statement for Yunye Pu 2021-08-31 13:47:33 +08:00
Yunye Pu
0e3073f402 Problem: WSS broken under contention
Solution: Make wss_engine_t's read and write consistent with stream_engine_base_t
2021-08-31 13:29:41 +08:00
Min RK
bcb659e00e
Problem: calling randombytes_close with libsodium can crash Contexts in other threads (#4242)
* add opt-out for randombytes_close

Problem: randombytes_close is either a no-op or unsafe when a Context is running.

Unfortunately, there does not appear to be a single always correct choice,
so let builders pick between two not-great options.

Opting out can leak an FD on /dev/urandom which may need to be closed explicitly.
However, with the default behavior,
using multiple contexts with CURVE can crash with no application-level workaround available.

randombytes_close is not threadsafe and calling it while still in use by a Context can cause a crash.

For implementations using /dev/[u]random, this can leave up to one leftover FD per process.

The libsodium docs suggest that this function rarely needs to be called explicitly.
2021-08-13 15:11:29 +01:00
Luca Boccassi
f6e99e72ec
Merge pull request #4236 from ChrisThrasher/enable-drafts-messages
Correct messages about whether or not the draft API is being built
2021-08-03 09:39:17 +01:00
Chris Thrasher
4756c04da0 Correct messages about whether or not the draft API is being built
If you cloned and built this repo or built it from a submodule, it
would always report "Build and install draft classes and methods"
which first might be wrong if ENABLE_DRAFTS is OFF but also didn't
match the tense of other similar messages about build options.
2021-08-02 21:13:14 -06:00
Luca Boccassi
c45750a29f Problem: formatting broken
Solution: run make clang-format-diff
2021-07-30 14:40:47 +01:00
Luca Boccassi
1caef95b48
Merge pull request #4235 from saschavv/fix_widechar_path_crash
Fix crash in context with wide characters in path
2021-07-30 14:39:44 +01:00
Sascha van Vliet
efd62e3e38 Add missing relicense agreement
To add code to the repository a relicense agreement is needed.
2021-07-30 13:28:11 +02:00
Sascha van Vliet
720ad05529 Fix crash in context with wide characters in path
The create_ipc_wildcard_address doesn't takes wide characters
into account while building a string from a temporary path.
The tmpnam_s can return a path in the user temp folder which
can contain special characters.
The string that is returned from the create_ipc_wildcard_address
will be used in the bind routine which will return an error code.
2021-07-30 10:47:08 +02:00
Luca Boccassi
a2d21f63cf
Merge pull request #4234 from sabotagebeats/fix/issues/4231
fix: building libzmq fails with error src/clock.cpp
2021-07-24 11:48:25 +01:00
sabotagebeats
430ffe61b7 fix: relicense 2021-07-24 01:36:58 -07:00
sabotagebeats
06aba27b04 fix: building libzmq fails with error src/clock.cpp:131:16: error: unused variable 'nsecs_per_usec' 2021-07-22 21:53:19 -07:00
Arnaud Loonstra
72b03aa281
Merge pull request #4230 from bluca/ci
Problem: some CI jobs always fail
2021-07-04 22:46:43 +02:00
Luca Boccassi
ddfddf8f01 Problem: appveyor has broken libsodium cache
Solution: fetch and reset instead of pulling
2021-07-04 18:35:14 +01:00
Luca Boccassi
0e795be8a8 Problem: OSX Travis builds using homebrew are timing out
Solution: use the Travis addon instead of installing manually
2021-07-04 16:15:32 +01:00
Luca Boccassi
6f76026541 Problem: Appveyor build fails to clone libsodium
Solution: set git user/email, otherwise git clone fails
2021-07-04 16:15:32 +01:00
Luca Boccassi
5cc6755174
Merge pull request #4227 from ChrisThrasher/remove_language_extensions
Use standard C and C++
2021-07-01 19:21:20 +01:00
Chris Thrasher
ef110f92c3 Add RELICENSE statement 2021-07-01 09:38:04 -06:00
Chris Thrasher
4fc83178aa Use standard C11 and C++11
Retain GNU extensions for C99 and C++98 since testing old compilers
is especially difficult and these compilation modes exist to maintain
compatability.
2021-07-01 09:37:02 -06:00
Doron Somech
1d2e972876
Merge pull request #4228 from bluca/update_wepoll
Problem: wepoll is out of date, known issues on Windows
2021-07-01 01:43:53 -04:00
Luca Boccassi
c7edbea971 Problem: wepoll is out of date, known issues on Windows
Solution: update to latest version, v1.5.8
2021-06-30 20:44:27 +01:00
Bill Torpey
ca8e30ed48
fixes for UBSAN warnings (#4223)
Problem: UBSAN shows warnings

Solution: fix alignment issues and signed to unsigned conversion
2021-06-29 13:02:35 +01:00
Luca Boccassi
fb9fb00eda Problem: formatting is broken
Solution: run clang-format-diff
2021-06-15 19:22:19 +01:00
Luca Boccassi
9b2e1fa26c
Merge pull request #4211 from egpbos/patch-1
fix unused parameter warning when POLL_BASED_ON_SELECT
2021-06-15 19:21:01 +01:00
E. G. Patrick Bos
535bc2abb8
add relicense statement for egpbos
Copyright of the Netherlands eScience Center.
2021-06-15 17:39:02 +02:00
Luca Boccassi
3b9ef60f2b
Merge pull request #4215 from bluca/test_inproc_connect
Problem: test_inproc_connect occasionally fails on slow archs
2021-06-15 14:05:07 +01:00
Luca Boccassi
de03c9a6ab Problem: test_inproc_connect occasionally fails on slow archs
Solution: actually send a message rather than just opening/closing
the sockets, as connecting is asynchronous.

tests/test_inproc_connect.cpp:341:test_bind_before_connect:PASS
tests/test_inproc_connect.cpp:342:test_connect_before_bind:PASS
tests/test_inproc_connect.cpp:343:test_connect_before_bind_pub_sub:PASS
tests/test_inproc_connect.cpp:344:test_connect_before_bind_ctx_term:PASS
tests/test_inproc_connect.cpp:345:test_multiple_connects:PASS
tests/test_inproc_connect.cpp:346:test_multiple_threads:PASS
Assertion failed: _state == active || _state == waiting_for_delimiter (src/pipe.cpp:504)
0  0xffffa015d3e4 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::zmq_abort(char const*)+0xc)
1  0xffffa017b208 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::pipe_t::process_delimiter()+0xb0)
2  0xffffa017b420 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::pipe_t::read(zmq::msg_t*)+0xd8)
3  0xffffa01a4b28 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::xpub_t::xread_activated(zmq::pipe_t*)+0x110)
4  0xffffa01a3758 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::xpub_t::xattach_pipe(zmq::pipe_t*, bool, bool)+0x68)
5  0xffffa018dc3c in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::socket_base_t::attach_pipe(zmq::pipe_t*, bool, bool)+0x94)
6  0xffffa016f288 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::object_t::process_command(zmq::command_t const&)+0x148)
7  0xffffa014ee3c in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::ctx_t::connect_inproc_sockets(zmq::socket_base_t*, zmq::options_t const&, zmq::ctx_t::pending_connection_t const&, zmq::ctx_t::side)+0xdc)
8  0xffffa0150bec in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::ctx_t::connect_pending(char const*, zmq::socket_base_t*)+0x1fc)
9  0xffffa0190034 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (zmq::socket_base_t::bind(char const*)+0x3e4)
10  0xaaaae50475d8 in /usr/src/packages/BUILD/tests/.libs/test_inproc_connect (simult_bind(void*)+0x28)
11  0xffffa019bfb8 in /usr/src/packages/BUILD/src/.libs/libzmq.so.5 (thread_routine+0x70)
12  0xffffa00e07e4 in /lib/aarch64-linux-gnu/libpthread.so.0 (start_thread+0x18c)
13  0xffff9fdcab2c in /lib/aarch64-linux-gnu/libc.so.6 (clone+0x5c)
2021-06-14 11:43:06 +01:00
Luca Boccassi
d3d685bbc1
Merge pull request #4214 from bluca/obs_pr
Problem: build/test breakages on various distros are discovered only after merge
2021-06-14 11:42:36 +01:00
Luca Boccassi
6fc817a18e Problem: build/test breakages on various distros are discovered only after merge
Solution: try the new Open Build Service PR integration workflow
2021-06-14 10:48:24 +01:00
Doron Somech
416b7aea47
Merge pull request #4213 from bluca/build
Problem: build with curve fails on GCC 11
2021-06-13 20:03:39 +03:00
Luca Boccassi
92b2c38a2c Problem: build with curve fails on GCC 11
Solution: ignore false positives due to compiler bug:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99578

Fixes https://github.com/zeromq/libzmq/issues/4206
2021-06-13 16:21:55 +01:00
Patrick Bos
ece244dd3c
fix unused parameter warning when POLL_BASED_ON_SELECT
When the build is performed with cmake option `-DPOLLER=select`, the following warning is triggered from 4 locations that import `polling_util.hpp`:

```
[...]/src/polling_util.hpp:115:50: warning: unused parameter 'pollset_' [-Wunused-parameter]
inline size_t valid_pollset_bytes (const fd_set &pollset_)
                                                 ^
1 warning generated.
```

This is fixed here.
2021-06-10 12:23:22 +02:00
Luca Boccassi
b40a793142
Merge pull request #4207 from benjdero/master
Problem: Outdated Android build tools
2021-06-07 11:19:49 +01:00
Benjamin Deroche
2af72796a7 Problem: Outdated Android build tools
Solution: Update Android NDK version
2021-06-07 11:34:13 +02:00
Luca Boccassi
e86237da58
Merge pull request #4205 from somdoron/master
problem: no way to know when connection is temporarly dropped
2021-06-06 16:21:24 +01:00
Doron Somech
1c6c5514ed problem: no way to know when connection is temporarly dropped
This is important in order to send the login sequence of a client to the server.

Solution: add ZMQ_HICCUP_MSG to a socket, socket would send that message whenever a connection get temporarly disconnected
2021-06-06 17:14:22 +03:00
Luca Boccassi
d7e439d336 Problem: travis badge points to old travis-ci.org
Solution: Change badge to point to travis-ci.com
2021-05-27 10:05:06 +01:00
Tobias Schlüter
2ac9755ee9 Remove Windows-specific defines from zmq.h.
These are redundant with the ones in windows.hpp
and aren't needed for the public interface.
2021-05-26 16:04:24 +01:00
Simon Giesecke
78ea4ee787
Merge pull request #4193 from somdoron/master
problem: outpipe can be null when sending disconnect msg
2021-05-19 14:14:35 +02:00
Doron Somech
30a0c590d8 problem: outpipe can be null when sending disconnect msg 2021-05-19 14:41:27 +03:00
Luca Boccassi
e3c4ec241a
Merge pull request #4192 from minrk/appveyor-gh-release
[appveyor] upload windows artifacts to GitHub releases
2021-05-19 09:22:52 +01:00
Min RK
60bf76a4fd [appveyor] upload artifacts to GitHub releases 2021-05-18 22:50:11 +02:00
Luca Boccassi
0c5da25dcb
Merge pull request #4190 from yitzchak/fix-poll-docs
Update fd slot type to zmq_fd_t
2021-05-16 23:52:19 +01:00
Tarn W. Burton
59040f8dfe Add RELICENSE for yitzchak 2021-05-16 16:10:54 -04:00
Tarn W. Burton
d6e7ea44f7 Update fd slot type to zmq_fd_t 2021-05-16 08:50:06 -04:00
Chengye Ke
04c37982b1
Support so_busy_poll (#4188)
* Support so_busy_poll.
2021-05-14 23:05:56 +01:00
Luca Boccassi
ceb5fa39fe
Merge pull request #4181 from neheb/patch-1
fix unused variables under windows
2021-05-03 09:07:21 +01:00
Rosen Penev
a02cbd0646
fix unused variables under windows
Fixes compilation as -Werror is passed.
2021-05-02 16:49:27 -07:00
Luca Boccassi
497bcacb0e
Merge pull request #4176 from nyfix/reconn-options
ZMQ_RECONNECT_STOP options are intended to be inclusive
2021-04-29 19:26:55 +01:00
Bill Torpey
6bf7728e6e ZMQ_RECONNECT_STOP options are intended to be inclusive (i.e., can be OR'ed together), and so values must be powers of two 2021-04-28 10:30:35 -04:00
Luca Boccassi
2e932bb536
Merge pull request #4175 from mceSystems/master
Fix iOS build failure for x86_64
2021-04-28 11:11:01 +01:00
Koby Boyango
00d1000538 Fix iOS build failure for x86_64 2021-04-28 11:41:36 +03:00
Luca Boccassi
b4f758da35
Merge pull request #4174 from jlsantiago0/build-fix-bsd
Fix Build BSD
2021-04-15 23:16:33 +01:00
Luca Boccassi
895e976f51
Merge pull request #4173 from jlsantiago0/mingw-build-fix2
Fix MINGW with pthread cv
2021-04-15 23:15:50 +01:00
Luca Boccassi
43cb2600ca
Merge pull request #4172 from jlsantiago0/mingw-build-fix1
MINGW Build Fix.
2021-04-15 21:48:24 +01:00
Jose Santiago
7d8b149681 Fix Build BSD
This fixes build under BSD. Tested with OpenBSD-6.4 and FreeBSD-11.3.
2021-04-15 14:04:27 -05:00
Jose Santiago
e6e683731d Fix MINGW with pthread cv
ZeroMQ works and MINGW and pthread conditional variables if pthread
mutexes are used. POSIX conditional variables require POSIX mutexes, but
ZeroMQ unconditionally uses WIN32 critital sections even when configured
with pthread conditional variables. This of course does not work. This
patch fixes the build so that MINGW builds do not use WIN32 critical
sections and instead use POSIX mutexes when configured with pthread
conditional variables.

Tested with:

```
 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ ../libzmq/configure --host=x86_64-w64-mingw32 --prefix=`pwd`/stage --enable-debug --disable-Werror --enable-libunwind=no   --with-cv-impl=pthread --enable-libbsd=no
```

```
x86_64-w64-mingw32-gcc --version

   x86_64-w64-mingw32-gcc (GCC) 10.2.0.....
```
2021-04-15 13:43:55 -05:00
Jose Santiago
235654697f MINGW Build Fix.
There is a macro that redefines claose to closesocket, but then close is
later defined in unistd.h which is included in testutil_unity.cpp which
then causes the regular close() prototype to be defined with the new
function name closesocket which does not match the signature of the
original closesocket in winsock2.h from the toolchain.

We can work around this issue, by making sure that unistd.h is included
before the macro is defined. HMM> Yes macro substitution is the root of
evil.
2021-04-15 12:53:02 -05:00
Luca Boccassi
3070a4b246
Merge pull request #4163 from bluca/gcc11
Problem: build broken on Fedora Rawhide and SUSE Leap
2021-03-22 18:41:04 +00:00
Luca Boccassi
b82777bfb6 Problem: compiler error with GCC 11
Solution: downcast size to uint32_t to match vector size
range
2021-03-20 19:22:46 +00:00
Luca Boccassi
02be28e86b rpm: fix license shortname 2021-03-20 15:49:48 +00:00
Luca Boccassi
5a139a556a rpm: fix Group metadata 2021-03-20 15:45:27 +00:00
Luca Boccassi
347555f4f6 rpm: run make check in %check area 2021-03-20 15:44:34 +00:00
Luca Boccassi
4e8f02a8da
Merge pull request #4156 from nyfix/clangtidy-new
add more suppressions
2021-03-04 09:48:57 +00:00
Luca Boccassi
229fbeee1a
Merge pull request #4155 from nyfix/clangtidy-format
fix formatting problems in .clang-tidy options
2021-03-03 19:36:25 +00:00
Bill Torpey
251a155833 add suppressions for clang-tidy-10 on ubuntu:
-hicpp-avoid-goto: duplicate of -cppcoreguidelines-avoid-goto
-readability-magic-numbers: duplicate of -cppcoreguidelines-avoid-magic-numbers
-readability-identifier-naming: avoid complaints about variables like i, n
2021-03-03 14:26:17 -05:00
Bill Torpey
dc2ee409cb - fix formatting problems in .clang-tidy options 2021-03-03 11:14:49 -05:00
Luca Boccassi
bd5f5a1093
Merge pull request #4148 from bluca/vmci
Problem: VMCI build broken
2021-02-23 11:57:18 +00:00
Luca Boccassi
4bb9a4ccff Problem: no CI coverage for VMCI transport
Solution: add a build test
2021-02-21 11:50:38 +00:00
Luca Boccassi
8fe5b54b8a Problem: VMCI build broken
Solution: refactor it
2021-02-21 11:50:38 +00:00
Luca Boccassi
4ecb0454fb
Merge pull request #4149 from gummif/gfa/strtok
Problem: strtok is not thread safe
2021-02-21 10:30:54 +00:00
Luca Boccassi
38bb82b0c8 Problem: vmci tests built in repo root
Solution: move them with the rest
2021-02-20 21:38:02 +00:00
Gudmundur Adalsteinsson
c325ed127e Problem: strtok is not thread safe
Solution: use strtok_r
2021-02-20 20:29:17 +00:00
Luca Boccassi
c515671bc8
Merge pull request #4145 from gummif/gfa/malloc-vec
Problem: C style malloc and free
2021-02-19 14:06:20 +00:00
Luca Boccassi
31ebe35144
Merge pull request #4146 from gummif/gfa/unused-vars
Problem: Unused member variables _last_in
2021-02-19 14:05:44 +00:00
Luca Boccassi
fc6255ffec
Merge pull request #4143 from jlsantiago0/master
Fix Fedora33 s390x build.
2021-02-19 14:05:27 +00:00
Gudmundur Adalsteinsson
10078a9225 Problem: Unused member variables _last_in
Solution: Remove them
2021-02-18 20:38:42 +00:00
Gudmundur Adalsteinsson
4b61c67ef0 Problem: C style malloc and free
Solution: use new and delete
2021-02-18 20:31:55 +00:00
Jose Santiago
ce74e39ae3 Add Relicense statement. 2021-02-18 11:47:32 -06:00
Jose Santiago
72c8cc3912 Fix Fedora33 s390x build. 2021-02-18 11:05:29 -06:00
Luca Boccassi
54c7f7969b Problem: formatting errors
Solution: run make clang-format-diff
2021-02-08 11:39:09 +00:00
Luca Boccassi
8432cc37f8
Merge pull request #4137 from tarmo/xpub-manual-subscription-race
Problem: XPUB socket allows manual subscription on terminated pipe
2021-02-08 09:57:15 +00:00
Tarmo Tänav
2df7ab6aee Problem: XPUB socket allows manual subscription on terminated pipe
Solution: Avoid setting pipe as _last_pipe if it has been terminated
2021-02-08 06:02:10 +02:00
Doron Somech
b3722cf983
Merge pull request #4132 from sab24/master
Fixes Firefox WebSocket upgrade request in WebSocket engine
2021-01-30 23:09:52 +02:00
sab24
bdcc4cf06c Adds RELICENSE 2021-01-30 20:05:15 +01:00
sab24
133f0d00b6 Fixes indentation 2021-01-30 16:40:26 +01:00
sab24
15408f5609 Fixes Firefox WebSocket upgrade request in WebSocket engine 2021-01-30 16:23:48 +01:00
Luca Boccassi
92282785ed Add relicense grant by eponsko
Received via email, message-id:

CAGOEPvVonw=NicjcBKQcdcxGm43fOMgZfiga-4FoAQ=Efau8GQ@mail.gmail.com
2021-01-28 11:08:27 +00:00
Lingqiao Zhao
cc65a9ec93
Problem: exception thrown when debugging cl.exe x64 build with LLDB (#4129)
* Problem: exception thrown when debugging
cl.exe x64 build with LLDB

Solution: Use __try __except with cl.exe and
use pthread_setname_np with MinGW.
Remove usage of pushing exception handler
to TIB->ExceptionList.
2021-01-27 10:39:48 +00:00
Luca Boccassi
16af1bd622 Problem: test_pubsub broken everywhere
Solution: disable it
2021-01-18 09:42:33 +00:00
mjvankampen
2dd24d6d80
Problem: norm fails to compile under windows (#4123)
* Makes norm useable (but maybe slow) on windows
2021-01-18 08:42:14 +00:00
Simon Giesecke
53104ec1b9
Merge pull request #4126 from bluca/news
Problem: 4.3.4 is out, need new version
2021-01-17 16:57:48 +01:00
Luca Boccassi
c7e0342a0a Problem: wrong year in NEWS for 4.3.4
Solution: fix it
2021-01-17 13:24:32 +00:00
Luca Boccassi
cef3225370 Problem: 4.3.4 is out, need new version
Solution: bump to 4.3.5
2021-01-17 12:10:01 +00:00
Luca Boccassi
4097855dda Finalize changelog for 4.3.4 2021-01-17 12:01:58 +00:00
Luca Boccassi
90deed866b
Merge pull request #4124 from bluca/news
Update NEWS and fix build on GNU/Hurd
2021-01-17 11:32:32 +00:00
Luca Boccassi
a9357db1d3 Problem: NEWS out of date with latest changes
Solution: update it
2021-01-16 17:48:29 +00:00
Luca Boccassi
2347a76413 Problem: build broken on debian/hurd
Solution: fix it
2021-01-16 17:48:29 +00:00
Luca Boccassi
e58f047791 Problem: typos in zmq_setsockopt.txt
Solution: fix them
2021-01-16 15:41:58 +00:00
Luca Boccassi
f3eb6916d0
Merge pull request #4120 from martin-g/master
Build and test on ARM64 CPU architecture (#1)
2021-01-11 13:28:46 +00:00
Martin Grigorov
89ff13b54f
Allow failures on ARM64
test_monitor fails on TravisCI
I wasn't able to reproduce the problem on my aarch64 VM and with Docker+QEMU
2021-01-11 14:03:48 +02:00
Martin Tzvetanov Grigorov
98e4f9eb4b
Sign the ICLA 2021-01-11 09:20:32 +02:00
Luca Boccassi
e2a8e7cd08
Merge pull request #4121 from bluca/kfreebsd
Problem: build still broken on kFreeBSD
2021-01-09 14:09:35 +00:00
Luca Boccassi
0742d432e7 Problem: build still broken on kFreeBSD
Solution: fix refactor mistake introduced by:

    091df743a81f3899bd70166060c2082ea0cbd57c

    Fixes https://github.com/zeromq/libzmq/issues/4113
2021-01-08 20:41:51 +00:00
Martin Grigorov
b08a03ac87
Build and test on ARM64 CPU architecture (#1)
* Build and test on ARM64 CPU architecture

Add an extra TravisCI job that runs `ci_build.sh` on arm64/aarch64 CPU architecture
2021-01-08 14:53:29 +02:00
Luca Boccassi
2bf998f7e0 Problem: build broken on kFreeBSD
Solution: fix refactor mistake introduced by:

091df743a81f3899bd70166060c2082ea0cbd57c

Fixes https://github.com/zeromq/libzmq/issues/4113
2021-01-06 22:23:09 +00:00
Andy Heroff
2998ff34aa
Problem: No direct support for setting socket priority (#4118)
* Problem: No direct support for setting socket priority

Solution: Add ZMQ_PRIORITY socket option, which sets the
SO_PRIORITY socket option on the underlying socket. This
socket option is not supported under Windows. Check option
and set socket option on creation of underlying socket.
2021-01-06 22:22:41 +00:00
Luca Boccassi
9936ce8bb9
Merge pull request #4116 from zedalaye/remove_pair_socket_fd
Cleanup socket FD after pair is established. Fix #4086
2021-01-04 18:55:25 +00:00
Pierre Yager
e8f265d136 Added RELICENSE statement 2021-01-04 17:00:59 +01:00
Pierre Yager
dcb6a24ed0 Cleanup socket FD after pair is established. Fix #4086
Avoid filling Temp directory with temporary files.
2021-01-04 17:00:58 +01:00
Constantin Rack
b600eb76d0
Merge pull request #4115 from skaes/relicense-skaes-commits
PROBLEM: missing permission to relicense commits by GH handle skaes
2021-01-04 07:12:20 +00:00
Stefan Kaes
32d30f6937 PROBLEM: missing permission to relicense commits by GH handle skaes
SOLUTION: add file containing permission statement
2021-01-04 08:03:04 +01:00
Luca Boccassi
8b27f11ad1
Merge pull request #4110 from bluca/fixes
Problem: PUB+WS broken, git blame hard to use
2021-01-02 11:41:55 +00:00
Luca Boccassi
26a2e83069
Merge pull request #4107 from bluca/relicense
Problem: typo in RELICENSE/mrvn.md
2020-12-26 23:33:10 +00:00
Luca Boccassi
a6f1000964 Problem: git blame became more difficult with clang-format change
Solution: let git ignore that commit when blame is ran.

Requires to set a git config:

git config blame.ignoreRevsFile .git-blame-ignore-revs

Or to pass --ignore-revs-file .git-blame-ignore-revs to git blame.
2020-12-23 17:44:07 +00:00
Luca Boccassi
41c4ce1817 Problem: ZMQ_PUB broken on ZMQ_WS
Solution: encode subscribe/cancel messages until there are appropriate
opcodes.
Regression introduced by 253e9dd27b3d7c0d736d4fa3802e87d00bd915c9

Fixes https://github.com/zeromq/libzmq/issues/4101
2020-12-23 17:44:07 +00:00
Luca Boccassi
a49aa0d294
Merge pull request #4109 from stanpl/if_nametoindex_fix
Solution: if_nametoindex function is now used when available
2020-12-23 14:12:07 +00:00
Stanisław Maciaś
bac5f69685 Added missing relicense file 2020-12-23 15:04:08 +01:00
Stanisław Maciaś
26cbd4f43f if_nametoindex function is now used when available 2020-12-23 12:32:16 +01:00
Luca Boccassi
f8b84cf86a Problem: typo in RELICENSE/mrvn.md
Solution: fix it
2020-12-22 21:28:32 +00:00
Luca Boccassi
10140050c7
Merge pull request #4105 from bluca/relicense
Add relicense statement from sradomski and mrvn
2020-12-21 17:36:11 +00:00
Luca Boccassi
e389ee53bd Add relicense statement from mrvn
Received via email, message id:

trinity-91a2dd41-0e1c-4976-9811-f32cad78566e-1608482688602@3c-app-webde-bap48
2020-12-20 17:00:00 +00:00
Luca Boccassi
2643470ff0 Add relicense statement from sradomski
As indicated by author's comment on Github:

https://github.com/zeromq/libzmq/pull/810#issuecomment-748587654
2020-12-20 10:57:55 +00:00
Luca Boccassi
76849aa3d5
Merge pull request #4104 from gummif/patch-1
Problem: Build error on MSVC with C++20 in ip.cpp
2020-12-18 12:59:09 +00:00
Gudmundur Adalsteinsson
83032a4d33
Problem: Build error on MSVC with C++20 in ip.cpp
Solution: Move initialization of variables before gotos.
2020-12-18 10:32:59 +00:00
Luca Boccassi
828d6eacba
Merge pull request #4098 from agnosy/problem/android-build-failure
Problem: Android build fails.
2020-12-05 11:10:46 +00:00
Sailaja Nagireddy
89a536dd1d Problem: Android build fails.
Solution: Update the android build helper to locate readelf binary
          included in android ndk.
2020-12-04 20:56:50 +05:30
Luca Boccassi
1533bc3620
Merge pull request #4095 from boxkey/boxkey-patch-2
add relicense.md file
2020-11-29 17:31:03 +00:00
boxkey
0344937e79
add relicense.md file
add relicense.md file boxkey.md
2020-11-30 01:15:34 +08:00
Luca Boccassi
17c5fca9ea
Merge pull request #4075 from nyfix/ndebug
The _DEBUG preprocessor definition is typically only set on Windows. …
2020-11-26 09:07:18 +00:00
Luca Boccassi
33a51f9e8b
Merge pull request #4088 from bluca/test_spec_req_eagain
Problem: tests fails to receive with EAGAIN on slow architectures
2020-11-23 13:32:59 +00:00
Luca Boccassi
bb15d9dd77 Problem: add-path no longer supported in Github Action
Solution: update setup-bsbuild action version

https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/
2020-11-18 13:49:50 +00:00
Luca Boccassi
d77c60a0db Problem: tests fails to receive with EAGAIN on slow architectures
Solution: remove arbitrary timeouts, as they are testing reliable pipes
with no contention, so if it can connect eventually it has to
work. The overall test timeout covers cases where it doesn't.

If tests want to use receive timeouts, they need to handle EAGAIN
properly.
2020-11-18 13:29:33 +00:00
Luca Boccassi
dae894157c
Merge pull request #4083 from ambitslix/patch-1
Create ambitslix.md
2020-11-12 09:43:26 +00:00
Attila M. Szilagyi
b54ad2b373
Create ambitslix.md 2020-11-11 22:07:36 -08:00
Luca Boccassi
1d6b232920
Merge pull request #4082 from zoedberg/fix_autogen
autogen.sh: fix autoreconf exit code log
2020-11-10 19:19:53 +00:00
Zoe Faltibà
b4c7954910
RELICENSE: add zoedberg grant 2020-11-10 20:08:38 +01:00
Zoe Faltibà
51bffc05f5
autogen.sh: fix autoreconf exit code log 2020-11-10 17:31:22 +01:00
Luca Boccassi
6f46375440
Merge pull request #4080 from ardrabczyk/docs-fixes
Fix a typo and wrong order of assert() in the examples
2020-11-10 09:38:33 +00:00
Arkadiusz Drabczyk
f0add07303 Problem: no relicense agreement by Arkadiusz Drabczyk
Solution: add a relicense agreement

Signed-off-by: Arkadiusz Drabczyk <arkadiusz@drabczyk.org>
2020-11-10 10:35:21 +01:00
Luca Boccassi
c642d0f4ee
Merge pull request #4079 from ardrabczyk/errno-fixes
Problem: not all possible errno values were documented (#4078)
2020-11-10 09:16:59 +00:00
Arkadiusz Drabczyk
ce7c1cec87 Problem: assert() was used on undefined variables in the examples
Solution: use assert() on defined variables

Signed-off-by: Arkadiusz Drabczyk <arkadiusz@drabczyk.org>
2020-11-09 22:52:12 +01:00
Arkadiusz Drabczyk
d3f59e68ea Problem: there is a typo: 'threda names'
Solution: fix a typo: threda names -> thread names

Signed-off-by: Arkadiusz Drabczyk <arkadiusz@drabczyk.org>
2020-11-09 22:36:17 +01:00
Arkadiusz Drabczyk
d43ae07456 Problem: not all possible errno values were documented (#4078)
Solution: document more possible errno values

Signed-off-by: Arkadiusz Drabczyk <arkadiusz@drabczyk.org>
2020-11-09 22:23:43 +01:00
Bill Torpey
57e9551744 The _DEBUG preprocessor definition is typically only set on Windows. (e.g., see https://stackoverflow.com/questions/2290509/debug-vs-ndebug/29253284#29253284) 2020-11-02 16:58:14 -05:00
Luca Boccassi
b2a0842063
Merge pull request #4074 from ffontaine/master
src/compat.hpp: fix build with libbsd and strlcpy
2020-11-02 09:18:30 +00:00
Fabrice Fontaine
8cb5708829 src/compat.hpp: fix build with libbsd and strlcpy
Don't include bsd/string.h if strlcpy is also defined in string.h to
avoid the following build failure on uclibc:

In file included from src/compat.hpp:41:0,
                 from src/ipc_address.cpp:31:
/tmp/instance-0/output-1/host/mips64el-buildroot-linux-uclibc/sysroot/usr/include/bsd/string.h:44:54: error: declaration of 'size_t strlcpy(char*, const char*, size_t)' has a different exception specifier
 size_t strlcpy(char *dst, const char *src, size_t siz);
                                                      ^
In file included from src/compat.hpp:34:0,
                 from src/ipc_address.cpp:31:
/tmp/instance-0/output-1/host/mips64el-buildroot-linux-uclibc/sysroot/usr/include/string.h:424:15: error: from previous declaration 'size_t strlcpy(char*, const char*, size_t) throw ()'
 extern size_t strlcpy(char *__restrict dst, const char *__restrict src,
               ^

Fixes:
 - http://autobuild.buildroot.org/results/51220b1b82774e8f6f6ed8593c58d2e3c31a1531

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2020-11-02 07:58:01 +01:00
Luca Boccassi
97b5f8560d Problem: formatting errors
Solution: run make clang-format-diff
2020-10-09 20:08:05 +01:00
Luca Boccassi
f578b26790
Merge pull request #4060 from martin-ksti/fix-stack-overflow-on-windows-x64
fix stack overflow on windows x64
2020-10-09 19:01:44 +01:00
Luca Boccassi
4f6d94de42
Merge pull request #4061 from martin-ksti/patch-1
Create martin-ksti.md
2020-10-09 17:15:56 +01:00
martin-ksti
4e5a328998
Create martin-ksti.md 2020-10-09 18:07:47 +02:00
Martin Labsch
3156764265 fix stack overflow on windows x64 2020-10-09 15:17:46 +02:00
Luca Boccassi
22d218a182 Problem: CI fails with formatting errors
Solution: run make clang-format-diff
2020-09-28 10:30:20 +01:00
C-sir
d4f03edd47
stop reconnect after called zmq_disconnect() (#4053) 2020-09-28 09:59:57 +01:00
Davit Kalantaryan
dfc85af4d0
using '_M_ARM' macros for Windows ARM comilation (#4051)
[why]
This is a standard microsoft compiler macros https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=vs-2019
This macros is defined for example for Windows 10 core Iot (for example paspberry pi windows compilation)

Co-authored-by: Davit Kalantaryan <davit.kalantar@desy.de>
2020-09-26 18:39:28 +01:00
Stéphane Valès
1495ccad58
Problem: warnings with xcode (#4043)
* remove override instructions to avoid a chain reaction with other overridden functions missing it

Co-authored-by: Stéphane Valès <stephane@vales.fr@users.noreply.github.com>
Co-authored-by: stephane vales <vales@ingenuity.io>
2020-09-17 15:12:36 +01:00
Stéphane Valès
86bf83bce8
Problem: cmake generates faulty xcode projects also for dynamic lib (#4042)
* apply the use of sources for xcode project also to dynamic library

Co-authored-by: Stéphane Valès <stephane@vales.fr@users.noreply.github.com>
Co-authored-by: stephane vales <vales@ingenuity.io>
2020-09-16 15:52:18 +01:00
Stéphane Valès
c098fa3c18
Problem: using targets in CMakeLists.txt creates a corrupted xcode project with cmake (#4041)
* use sources instead of objects only when generating an xcode project

Co-authored-by: Stéphane Valès <stephane@vales.fr@users.noreply.github.com>
Co-authored-by: stephane vales <vales@ingenuity.io>
2020-09-16 14:25:46 +01:00
Doron Somech
e915449184
Merge pull request #4038 from bluca/api_breakage
Problem: zmq_ctx_get API broken
2020-09-11 09:54:50 +03:00
Luca Boccassi
792ffe4d7a Problem: zmq_ctx_get API broken
Solution: restore EINVAL as errno on unknown option.
Broken by https://github.com/zeromq/libzmq/pull/3642 which started to
return EFAULT instead
2020-09-10 22:37:01 +01:00
Doron Somech
44786232f7
Merge pull request #4034 from bluca/news
Problem: 4.3.3 is out, need new version
2020-09-07 20:42:00 +03:00
Luca Boccassi
04f5bbedee Finalize changelog for 4.3.3 2020-09-07 11:12:14 +01:00
Luca Boccassi
f2e364777e Problem: 4.3.3 is out, need new version
Solution: bump to 4.3.4
2020-09-07 11:12:14 +01:00
Luca Boccassi
b97ce25c26 Problem: NEWS does not mention security advisories
Solution: add them
2020-09-07 11:12:14 +01:00
Simon Giesecke
fd094fe2fc
Merge pull request #4032 from bluca/fuzzers
Problem: no fuzzing coverage for ZMQ_STREAM
2020-09-06 19:21:15 +02:00
Luca Boccassi
e708623c12 Problem: no fuzzing coverage for ZMQ_STREAM
Solution: add tests
2020-09-06 11:05:15 +01:00
Doron Somech
cbce0cbffe
Merge pull request #4031 from sigiesec/test-coverage-3
Some more test coverage for invalid IPC addresses
2020-09-05 15:03:07 +03:00
Simon Giesecke
2741e93361 Problem: no test for (invalid) too long ipc endpoint name
Solution: add test
2020-09-05 13:17:13 +02:00
Simon Giesecke
90d5cf29d8 Problem: no test for (invalid) empty abstract ipc endpoint name
Solution: add test
2020-09-05 13:17:13 +02:00
Luca Boccassi
04ac547c20
Merge pull request #4030 from sigiesec/test-coverage-3
Problem: code duplicated between handshake and out_event
2020-09-04 16:24:28 +01:00
Luca Boccassi
446d61a13b
Merge pull request #4029 from sigiesec/test-coverage-2
Add test covering tcp_address_mask_t and remove unused code
2020-09-04 15:51:33 +01:00
Simon Giesecke
6a45737073 Problem: code duplicated between handshake and out_event
Solution: extract do_handshake member function
2020-09-04 16:39:16 +02:00
Simon Giesecke
af7df64ae7 Problem: mask and to_string member functions of tcp_address_mask_t are not referenced
Solution: remove them
2020-09-04 15:51:43 +02:00
Simon Giesecke
c6301206dc Problem: no tests for ZMQ_TCP_ACCEPT_FILTER
Solution: add some tests
2020-09-04 15:51:33 +02:00
Luca Boccassi
e7974c3b72
Merge pull request #4028 from sigiesec/test-coverage
Some improvements to the test coverage job
2020-09-04 11:07:16 +01:00
Simon Giesecke
3033b1ef18 Problem: coverage build is using old distro
Solution: update to default distro
2020-09-04 11:10:37 +02:00
Simon Giesecke
eb7b7db05d Problem: assert used instead of zmq_assert
Solution: replace by zmq_assert
2020-09-04 10:58:16 +02:00
Simon Giesecke
bafd626dff Problem: coverage build script doesn't recognize several config options
Solution: extrace and reuse regular config option setting
2020-09-04 10:58:16 +02:00
Simon Giesecke
74543a921c Problem: coverage report includes irrelevant files
Solution: properly set file filter to only include files in src except tweetnacl
2020-09-04 10:58:16 +02:00
Simon Giesecke
1d62d7c94a Problem: coverage is not measured with all features
Solution: enable all features on coverage build
2020-09-04 10:58:16 +02:00
Luca Boccassi
9c1801554f
Merge pull request #4027 from ffontaine/master
configure.ac: fix build with openpgm-5-3-128
2020-09-02 10:33:40 +01:00
Fabrice Fontaine
883d432c29 configure.ac: fix build with openpgm-5-3-128
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2020-09-02 07:54:36 +02:00
Doron Somech
9fe56b175d
Merge pull request #4023 from bluca/fuzzers
Problem: setsockopt of CURVE key ignores parameter length
2020-08-23 16:21:27 +03:00
Luca Boccassi
97f8274129 Problem: setsockopt of CURVE key ignores parameter length
Solution: create std::string using length to avoid overflow
2020-08-23 13:47:17 +01:00
Luca Boccassi
8cc56d9f0f
Merge pull request #4022 from bluca/fuzzers
Problem: test_socket_options_fuzzer does not work
2020-08-22 21:54:46 +01:00
Luca Boccassi
5b0956c381 Problem: test_socket_options_fuzzer does not work
Solution: fix it
2020-08-22 17:01:10 +01:00
Luca Boccassi
2fb04c1018 Problem: ZMQ_METADATA setsockopt ignores length and assumes nUL-terminated string
Solution: use length too
2020-08-22 17:01:10 +01:00
Doron Somech
241240b79f
Merge pull request #4020 from bluca/fuzz_options
Problem: test_socket_options_fuzzer can pass non-NUL terminated data …
2020-08-21 18:38:54 +03:00
Luca Boccassi
6386bc13d3 Problem: test_socket_options_fuzzer can pass non-NUL terminated data buffers
Solution: ensure they are valid strings
2020-08-21 16:23:24 +01:00
Doron Somech
36dc251ed0
Merge pull request #4019 from bluca/fuzz_options
Problem: zmq_z85_decode doesn't check its input length
2020-08-21 18:08:43 +03:00
Luca Boccassi
b84e164698 Problem: zmq_z85_decode doesn't check its input length
Solution: do it
2020-08-21 16:03:57 +01:00
Doron Somech
f447169e82
Merge pull request #4018 from bluca/fuzz_options
Problem: no fuzz testing for options
2020-08-21 18:01:24 +03:00
Luca Boccassi
f43013a7d1 Problem: no fuzz testing for options
Solution: add it
2020-08-21 15:25:55 +01:00
Doron Somech
eecd796106
Merge pull request #4017 from bluca/news
Problems: build broken on Solaris, NEWS out of date
2020-08-21 16:41:40 +03:00
Luca Boccassi
64a575eede Problem: test_bind_ws_fuzzer needs DRAFT sockets
Solution: use ZMQ_DEALER instead
2020-08-21 14:39:08 +01:00
Luca Boccassi
a4dbdb614e Problem: some platforms do not have strnlen
Solution: move compat redefinition to compat.hpp header so that
it can be used from msg.cpp
2020-08-21 14:39:08 +01:00
Luca Boccassi
d40c79cef4 Problem: missing items in NEWS
Solution: add them
2020-08-21 14:22:28 +01:00
Doron Somech
700fd13cad
Merge pull request #4016 from bluca/news
Problem: NEWS out of date
2020-08-21 14:51:51 +03:00
Luca Boccassi
7f1e219d09 Problem: NEWS out of date
Solution: add latest entries
2020-08-21 12:05:39 +01:00
Doron Somech
29f5ede684
Merge pull request #4013 from bluca/fuzzers
Problem: ws_engine leaks memory if Sec-WebSocket-Protocol header pass…
2020-08-17 06:53:52 +03:00
Luca Boccassi
b02bdd566a Problem: ws_engine leaks memory if Sec-WebSocket-Protocol header passed multiple times
Solution: ensure it's passed only once
2020-08-16 22:35:42 +01:00
Doron Somech
d280c44fe0
Merge pull request #4011 from bluca/fuzzers
Problem: use-after-free in WS
2020-08-15 17:06:58 +03:00
Luca Boccassi
c733067d6d Problem: use-after-free in WS
Solution: bail out of the stream engine out_event if ws_engine raises
an error
2020-08-15 14:31:09 +01:00
Doron Somech
1412078db6
Merge pull request #4010 from bluca/fuzzers
Problem: WS might use handshake buffer for data
2020-08-15 14:59:30 +03:00
Luca Boccassi
110551d5df Problem: formatting errors
Solution: apply clang-format-diff
2020-08-15 12:26:14 +01:00
Luca Boccassi
1668432894 Problem: WS might use handshake buffer for data
Solution: check for it before reusing it to avoid overflows
2020-08-15 12:25:52 +01:00
Luca Boccassi
87ee106438
Merge pull request #4009 from benjdero/master
Problem: libzmq use outdated Android NDK version
2020-08-14 16:57:23 +01:00
Benjamin Deroche
83667099bb Problem: libzmq use outdated Android NDK version
Solution: Update Android NDK version
2020-08-14 16:49:14 +02:00
Stéphane Valès
3da6fde592
Problem : if socket is invalid for any reason, as_socket_base_t() will return NULL and 'as_socket_base_t (items_[i].socket)->is_thread_safe ()' will crash (#4004)
* Problem : if socket is invalid for any reason, as_socket_base_t() will return NULL and 'as_socket_base_t (items_[i].socket)->is_thread_safe ()' will crash

Solution: expand the code to test the returned value from as_socket_base_t() before calling is_thread_safe() and make zmq_poll() return -1 if as_socket_base_t() returned NULL.

NB: this occurred on the destruction of a SUB socket while running a zloop and without previously calling zloop_reader_set_tolerant and zloop_reader_end. When entering zmq_poll, the PUB socket was already destroyed but still registered in the poll items.

NB: making zmq_poll return -1 is OK as it is what happens anyway, and errno is properly set to ENOTSOCK by as_socket_base_t() when it returns NULL.

Co-authored-by: Stéphane Valès <stephane@vales.fr@users.noreply.github.com>
2020-08-07 09:13:52 +01:00
Luca Boccassi
5d77cd8118
Merge pull request #4005 from stvales/patch-1
Create StephaneVales.md
2020-08-07 09:13:23 +01:00
Stéphane Valès
a246b255d3
Create StephaneVales.md 2020-08-07 09:53:40 +02:00
Davit Kalantaryan
0a424486a0
Modifications to compile code for WINDOWS ARM and ARM64 (#4003)
* Modifications to compile code for WINDOWS ARM and ARM64

[why]
In order to compile ZMQ related software on WINDOWS ARM

[how]
Replaced code in the file clock.cpp around the line 240.
Added intrinsics for ARM to replace '__rdtsc'

[todo]
Find proper tick counter query for ARM64 (see file:clock.cpp,line:~250)

* RELICENSEing

[why]
To make usage of changed code properly usable by libzmq project team

[how]
Added file /RELICENSE/kalantar.md with necessary information
2020-08-06 17:41:15 +01:00
Luca Boccassi
22e37933b3
Merge pull request #3997 from kaczmarj/enh/dockerfile
make Docker image smaller + use `debian:buster-slim` base
2020-07-30 00:18:02 +01:00
Jakub Kaczmarzyk
131716c897 add relicense statement for @kaczmarj 2020-07-29 19:11:14 -04:00
Jakub Kaczmarzyk
ddbef32103 make Docker image smaller + use debian:buster-slim base
This commit updates the Dockerfile to use multiple stages. In the first stage, compile-time dependencies are installed, and libzmq is compiled and tested. The second stage starts with a fresh, slim Docker image, and the compiled outputs of the first stage are copied over. Runtime dependencies, like libsodium and kerberos, are installed as well.
2020-07-29 15:39:07 -04:00
Luca Boccassi
7deb8ded43
Merge pull request #3996 from tarmo/xpub-unmatch
Problem: XPUB keeps matched pipes between failed non-blocking sends
2020-07-29 17:35:18 +01:00
Tarmo Tänav
27bf9bf7d0 Problem: XPUB keeps matched pipes between failed non-blocking sends
Solution: always unmatch all pipes before matching for an initial
message part.
2020-07-29 16:35:43 +03:00
Tarmo Tänav
75669de3c7 RELICENSE: Tarmo Tänav 2020-07-29 16:29:48 +03:00
Luca Boccassi
49f4c1898b
Merge pull request #3994 from fanquake/no_werror_macos
build: compile with -Werror by default on Darwin
2020-07-21 11:15:38 +01:00
fanquake
3a7b77d5f6
build: compile with -Werror by default on Darwin
Using -Werror has been disabled for Darwin since very early on in the
codebase. However at this point, I can't see an obvious reason why it
should still be disabled compared to when building for the other
operating systems.

I've tested compiling on macOS using Apple Clang 11.0.3, LLVM Clang
10.0.0 and GCC 10.1.
2020-07-21 16:08:21 +08:00
mileschet
571045d129
Ios135 (#3991)
* build_ios.sh now build for different archs

* change typo on build_ios.sh

Co-authored-by: Roberto Santacroce Martins <roberto.martins@transferoswiss.ch>
2020-07-11 13:11:59 +01:00
Luca Boccassi
d2d9719b4e
Merge pull request #3987 from fanquake/gethrtime_not_gethrtimei
build: fix gethrtime() function check in CMake
2020-07-07 21:36:35 +01:00
fanquake
c14817075c
build: fix gethrtime() function check in CMake
This looks like a typo introduced by
2d8ef84760b673d90db331e077fac369665cdbbd.
2020-07-07 21:45:08 +08:00
Luca Boccassi
1529ffbf42
Merge pull request #3986 from fanquake/ipc_mingw_cross_compile
build: disable IPC when cross-compiling with mingw
2020-07-07 09:11:42 +01:00
Luca Boccassi
4b4e19f915
Merge pull request #3985 from fanquake/test_flag_before_turning_off_warnings
build: test for warning options before enabling -Wno-* variant
2020-07-07 09:10:52 +01:00
Luca Boccassi
42a0977988
Merge pull request #3984 from fanquake/darwin_no_wno_uninitialized
build: don't compile with -Wno-uninitialized on darwin
2020-07-07 09:10:07 +01:00
fanquake
a396b780fd
build: disable IPC when cross-compiling with mingw
Master doesn't currently compile when crossing compiling using
autotools and mingw-w64. i.e:

```bash
x86_64-w64-mingw32-g++ (GCC) 9.3.0

./autogen.sh
./configure --host=x86_64-w64-mingw32
make src/libzmq.la
....
  CXX      src/libzmq_la-curve_server.lo
In file included from src/address.cpp:37:
src/ipc_address.hpp:40:10: fatal error: sys/socket.h: No such file or directory
   40 | #include <sys/socket.h>
      |          ^~~~~~~~~~~~~~
compilation terminated.
```

I assume this hasn't been caught because appveyor is using CMake.

Mingw also does not have an afunix.h header. There is a thread upstream,
but there doesn't seem to have been any discussion:
https://sourceforge.net/p/mingw-w64/discussion/723797/thread/4c8ecdbe0d/.
2020-07-07 13:25:21 +08:00
fanquake
fc5239e880
build: test for warning options before enabling -Wno-* variant
Some compilers, like GCC, will only warn about unknown -Wno-* options
when other warnings are being thrown, i.e:
```bash
  CXX      src/libzmq_la-address.lo
src/address.cpp: In function 'zmq::zmq_socklen_t zmq::get_socket_address(zmq::fd_t, zmq::socket_end_t, sockaddr_storage*)':
src/address.cpp:137:9: warning: unused variable 'unused' [-Wunused-variable]
  137 |     int unused;
      |         ^~~~~~~
At global scope:
cc1plus: note: unrecognized command-line option '-Wno-tautological-constant-compare' may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option '-Wno-atomic-alignment' may have been intended to silence earlier diagnostics
  CXX      src/libzmq_la-channel.lo
```

They will also seem to accept the -Wno-* variant when it's tested for
using AX_CHECK_COMPILE_FLAG. So, rather than test for -Wno-* variants
that the compiler may pretend to understand, test for the actual option,
and only enable the -Wno-* case when it is available.
2020-07-07 11:06:44 +08:00
fanquake
f26b1ad8bb
build: don't compile with -Wno-uninitialized on darwin
This flag has been enabled for Darwin targets since the initial commit
in 4ed70a930202b103e7e80b8dc925e0aaa4622595. However, aside from the
fact that we likely no longer want to suppress uninitialized warnings,
this flag wont suppress them anyways, as it's included in the
CXX flags before -Wall (which enables -Wuninitialized). i.e:

```bash
g++ -std=gnu++11 ... -Wno-uninitialized ... -Wall <rest of flags>
```
2020-07-07 09:48:11 +08:00
Luca Boccassi
fc99911d90
Merge pull request #3983 from mileschet/ios135
added script to compile the lib to iphone sdk >= 13.5
2020-07-06 21:13:37 +01:00
Roberto Santacroce Martins
95e343caf3 added script to compile the lib to iphone sdk >= 13.5 2020-07-06 15:34:10 +02:00
Doron Somech
47ba2b1ef5
Merge pull request #3981 from bluca/fuzzers
Problem: no fuzz testing for websockets
2020-07-06 07:21:18 +03:00
Luca Boccassi
eb9118f0c9 Problem: no fuzz testing for websockets
Solution: add tests for plain WS
2020-07-05 23:43:58 +01:00
Luca Boccassi
2352e0a896 Problem: Github Action for fuzzer has a syntax error
Solution: fix it
2020-07-04 19:06:27 +01:00
Doron Somech
3396e95179
Merge pull request #3980 from bluca/fuzzers
Problems: fuzzer corpus file can be quite large, fuzzers not run in PRs
2020-07-04 21:01:58 +03:00
Luca Boccassi
877978adf7 Problem: fuzzers not run in PRs
Solution: do it
2020-07-04 17:50:35 +01:00
Luca Boccassi
e95e57d385 Problem: fuzzer corpus file can be quite large
Solution: move all corpora to the zeromq/libzmq-fuzz-corpora repository
for easier handling, and to avoid inflating the size of zeromq/libzmq.
Clone it for the CI on the fly.
2020-07-04 17:50:35 +01:00
Doron Somech
61c7ae0610
Merge pull request #3976 from bluca/fuzzers
Problem: we have to send a PR to oss-fuzz on every build change on the fuzzers
2020-06-30 20:34:30 +03:00
Luca Boccassi
734d6e4870 Problem: we have to send a PR to oss-fuzz on every build change on the fuzzers
Solution: move the script to our repo, and simply call it from oss-fuzz's script
2020-06-30 16:03:04 +01:00
Luca Boccassi
4dd504abeb
Merge pull request #3973 from bluca/fuzzers
Problem: test_security_zap occasionally segfaults
2020-06-30 16:02:04 +01:00
Bill Torpey
1cfd41c064 update sanitizer support
- enable undefined behavior sanitizer
- force release mode for sanitizer builds
2020-06-29 15:40:20 +01:00
Luca Boccassi
c8e3dfca90
Merge pull request #3974 from somdoron/pthread_cond_timedwait
problem: pthread_cond_timedwait sometimes fail with EINVAL
2020-06-28 17:36:26 +01:00
Doron Somech
fb852fd3e7 problem: pthread_cond_timedwait sometimes fail with EINVAL
Solution: fix rounding error and assert if the clock_gettime fails
2020-06-28 17:02:38 +03:00
Luca Boccassi
350b4b34f4 Problem: test_security_zap occasionally segfaults
Solution: check if a session's _pipe has been allocated before using
it, since as a consequence of creating the pipes after the handshake
it's no longer guaranteed to be there.

Fixes #3971
2020-06-28 13:37:07 +01:00
Doron Somech
d78ecb8dc8
Merge pull request #3968 from bluca/fuzzers
Problem: test_req_relaxed occasionally fails
2020-06-28 08:40:48 +03:00
Luca Boccassi
218655e4f7
Merge pull request #3969 from serg06/patch-3
Fix zmq_poller.txt
2020-06-27 23:26:58 +01:00
serg06
f03b67a50b
Fix zmq_poller.txt
Fixed three things:
1. Moved asterisks by variable names into the single quotes (to match [zmq_poll](https://github.com/zeromq/libzmq/edit/master/doc/zmq_init.txt) and other pages.)
2. Fixed variable name in example.
3. Fixed extra & in example.
2020-06-27 17:58:16 -04:00
Luca Boccassi
5c5e279108 Problem: test_req_relaxed occasionally fails
Solution: instead of relying on timing to get the order
of connected rep sockets just right, wait for each connection
2020-06-27 21:57:29 +01:00
Doron Somech
ff9efa106e
Merge pull request #3967 from bluca/fuzzers
Problems: OBS build on sid fails, test_req_relaxed occasionally fails
2020-06-27 22:13:53 +03:00
Luca Boccassi
859f39b302 Problem: OBS build on sid fails
Solution: change the version format to non-native as a hack, to match
OBS' debstransform usage of 1.0 format
2020-06-27 18:27:47 +01:00
Luca Boccassi
1ddfeb56ec Problem: formatting errors
Solution: run make clang-format-diff
2020-06-26 23:45:39 +01:00
Bill Torpey
c04f6581e0
rebase reconnect-redux on master (#3960)
* add option to stop reconnecting on failed handshake
2020-06-26 23:41:44 +01:00
Bill Torpey
c7aef56048 - resolve FPE when ZMQ_RECONNECT_IVL == 0 2020-06-26 16:16:31 +01:00
Luca Boccassi
d0d23446f5
Merge pull request #3962 from sigiesec/fix-clang-tidy-analyze
Problem: clang-tidy job is failing because package dependencies are o…
2020-06-19 17:31:20 +01:00
Simon Giesecke
3135f6b503 Problem: clang-tidy job is failing because package dependencies are outdated
Solution: update to llvm-toolchain-10
2020-06-19 17:58:26 +02:00
Doron Somech
522abc7376
Merge pull request #3959 from bluca/fuzzers
Problem: mtrie use of non-tail recursion leads to stack overflow
2020-06-17 14:35:26 +03:00
Luca Boccassi
ab301ebf79 Problem: mtrie use of non-tail recursion leads to stack overflow
Solution: convert add and rm functions to iterative algorithms
2020-06-16 21:10:59 +01:00
Luca Boccassi
e0e3ce081e Problem: XPUB treats non-sub/cancel as sub/cancel
Solution: only process for sub/cancel if the messages are actually sub/cancel.
Regression introduced by cf9ccbb which tried to skip non-sub/cancel processing
for PUB.
2020-06-16 21:05:26 +01:00
Luca Boccassi
b4aa912467
Merge pull request #3958 from bluca/fix_tests
Problems: formatting error in ip.cpp and test_bind_fuzzer doesn't build on OSX
2020-06-16 21:05:04 +01:00
Luca Boccassi
3856027da9 Problem: test_bind_fuzzer does not build on OSX
Solution: use POSIX API instead of GNU extension
2020-06-15 23:47:35 +01:00
Luca Boccassi
1d2af8d388 Problem: formatting error in ip.cpp
Solution: fix it
2020-06-15 23:47:35 +01:00
Luca Boccassi
c8b141d964
Merge pull request #3955 from bluca/thread_doc
Problem: thread safety documentation is misleading
2020-06-11 19:07:56 +01:00
Luca Boccassi
7f83eeb1b7 Problem: thread safety documentation is misleading
Solution: change it to categorically state that non-thread-safe
sockets are not thread safe, ever
2020-06-09 10:25:18 +01:00
Doron Somech
7c3eaf864c
Merge pull request #3954 from bluca/blocklist
Problem: documentation uses unfriendly language
2020-06-08 21:45:22 +03:00
Luca Boccassi
4341f14f41 Problem: documentation uses unfriendly language
Solution: use more descriptive, accurate and welcoming terms like allowing
and blocking
2020-06-08 19:32:45 +01:00
Doron Somech
3f2529f3c7
Merge pull request #3952 from bluca/fuzzers
Problem: test_bind_fuzzer clobbers working directory with random socket files
2020-06-07 14:38:18 +03:00
Luca Boccassi
1ffc21d378 Problem: test_bind_fuzzer clobbers working directory with random socket files
Solution: move to /tmp before running the test
2020-06-07 12:09:17 +01:00
mjvk
b6bb3ef925
Adds NORM support to cmake (#3951) 2020-06-07 10:39:02 +01:00
Luca Boccassi
3a2b3bc625
Merge pull request #3943 from bjovke/small_fix
Problem: The code is wrong, socket option is never set.
2020-05-30 21:16:52 +01:00
Jovan Bunjevacki
c32462cde0 Small fix. 2020-05-30 20:30:23 +02:00
serg06
c89390f0f5 Make including Clang optional
I include libzmq in my cmake project, and I don't want clang-related targets popping up in Visual Studio's solution explorer.
2020-05-25 18:34:17 +01:00
serg06
efaeec33fc RELICENSE grant 2020-05-25 18:33:52 +01:00
serg06
2e87390656 Initialize some CMake variables as empty before build
This prevents a bug that occurs when a parent has a `sources` variable when doing `add_subdirectory("libzmq")`.
2020-05-25 18:33:52 +01:00
Doron Somech
c95f7d0933
Merge pull request #3935 from bluca/fuzzers
Problem: small memory leaks in PUB/XPUB
2020-05-25 19:45:54 +03:00
Luca Boccassi
cf9ccbbd37 Problem: metadata is stored for PUB sockets and never processed
Solution: do not store user messages when the socket type is PUB, they
will never be processed
2020-05-25 15:49:32 +01:00
Luca Boccassi
821ab88f96 Problem: XPUB leaks unprocessed metadata on close
Solution: dereference and delete any metadata object left in memory
2020-05-25 15:49:32 +01:00
Doron Somech
b5a8825542
Merge pull request #3930 from bluca/fuzzers
Problem: MSAN fuzzers cannot run
2020-05-24 17:23:59 +03:00
Luca Boccassi
38349198a6 Problem: MSAN complains about uninitialised buffers in CURVE greetings
Solution: memset some of the CURVE greetings buffers. Most likely false
positives, but easier to fix here than convince Clang of being wrong.
2020-05-24 14:26:14 +01:00
Luca Boccassi
35c4c22c81 Problem: z85 decode test might not always get valid input and pass
Solution: do not fail the test in that case, what's important is checking
for undefined behaviour
2020-05-24 14:26:14 +01:00
Luca Boccassi
85e198c5b4 Problem: wrong testcase name in z85_decode_fuzzer
Solution: fix it
2020-05-21 11:31:24 +01:00
Luca Boccassi
1ac753979a Problem: z85_decode fuzzer does not run regression tests with corpora
Solution: do it to avoid regressions
2020-05-21 10:49:55 +01:00
Luca Boccassi
51c90a6cd5 Problem: z85_decode fuzzer fails if fewer than 5 bytes are passed
Solution: check immediately the size of the input
2020-05-21 10:49:55 +01:00
Bill Torpey
c1d195641d
provide minimal support for TSAN (#3929)
* provide minimal support for thread sanitizer
2020-05-20 20:01:29 +01:00
Simon Giesecke
6e62fb19b4
Merge pull request #3925 from bjovke/timers_issue
Problem: Usage of invalidated iterator of _timers container in zmq::p…
2020-05-20 16:57:24 +02:00
Jovan Bunjevacki
2887c0fbb1 Problem: Usage of invalidated iterator of _timers container in zmq::poller_base_t::execute_timers ().
Solution: Safe iteration through _timers container, valid only for std::multimap (currently it is).
2020-05-20 15:03:10 +02:00
Doron Somech
907ec22475
Merge pull request #3922 from bluca/fuzzers
Problem: build fails with Clang 10
2020-05-17 18:02:34 +03:00
Luca Boccassi
55dfa239ff Problem: build fails with Clang 10
Solution: wrap generic_mtrie_t in zmq namespace
2020-05-17 15:01:51 +01:00
Doron Somech
8df0d99cd8
Merge pull request #3921 from bluca/fuzzers
Problem: invalid address results in out-of-range string access
2020-05-16 17:23:16 +03:00
Luca Boccassi
2d23b599f2 Problem: test_bind_fuzzer does not use corpus for regression tests
Solution: do it
2020-05-16 15:01:15 +01:00
Luca Boccassi
dccf1723cc Problem: invalid address results in out-of-range string access
Solution: check for zone string length before using it in ip_resolver
It turns out std::string::at does not check for string length before
dereferencing
2020-05-16 13:40:55 +01:00
Doron Somech
3033112645
Merge pull request #3918 from bluca/fuzzers
Problem: unfinished message can be leaked by client pipe
2020-05-15 22:15:02 +03:00
Luca Boccassi
6815138501 Problem: unfinished message can be leaked by client pipe
When a pipe processes a delimiter and is already not in active state but still
has an unfinished message, the message is leaked.

Solution: issue a rollback before losing the reference to the pipe.
2020-05-15 18:19:38 +01:00
Luca Boccassi
6439d32254 Problem: fuzz tests do not check that legitimate clients work
Solution: add normal client sockets and bounce at the same time as
the mock client
2020-05-15 18:19:38 +01:00
Luca Boccassi
afacdbeccf
Merge pull request #3913 from somdoron/delay_bind
problem: zeromq connects peer before handshake is complete
2020-05-14 08:30:50 +01:00
Doron Somech
ad3b36ab95 problem: test_xpub_manual is flapping
The test assumed the subscriptions are arrived in some order, but occasionally the order is not as expected

Solution: fix it
2020-05-14 00:01:06 +03:00
Doron Somech
e7f0090b16 problem: zeromq connects peer before handshake is completed
Solution: delay connecting the peer pipe until the handshake is completed
2020-05-13 19:36:13 +03:00
Doron Somech
18cacf2ec1
Merge pull request #3910 from bluca/obs_release
Problem: removing latest_branch breaks ABI CI job
2020-05-12 12:29:31 +03:00
Luca Boccassi
364ae768fe Problem: removing latest_branch breaks ABI CI job
Solution: clone latest tag instead
2020-05-12 09:13:06 +01:00
Luca Boccassi
4a863e334a
Merge pull request #3909 from nyfix/std
allow C/C++ standard to be specified at build time, default to C++11 if supported
2020-05-12 00:05:43 +01:00
Bill Torpey
f474b226b6 allow C/C++ standard to be specified at build time, default to C++11 if supported 2020-05-11 16:47:02 -04:00
Doron Somech
820efb31bd
Merge pull request #3908 from bluca/obs_release
Problem: release script for OBS build fails often
2020-05-11 21:56:49 +03:00
Luca Boccassi
e1d07b61ca Problem: release script for OBS build fails often
Solution: now that tar_scm supports @PARENT_TAG@ as a revision to
automatically fetch the most recent tag on the default branch, use
it to simplify everything

https://github.com/openSUSE/obs-service-tar_scm/pull/359
2020-05-11 19:31:23 +01:00
Doron Somech
0244d809a2
Merge pull request #3905 from bluca/fuzzers
Problems: potential memory leak in test_connect_curve_fuzzer, SECURITY.md could use some updates
2020-05-09 15:27:52 +03:00
Luca Boccassi
fb9d055578 Problem: test_bind_curve_fuzzer might get stuck on some input
Solution: receive with MSG_DONTWAIT on the raw TCP socket
2020-05-09 13:17:36 +01:00
Luca Boccassi
c33da0ea5b Problem: we lack an (internal) definition of severity for security issues
Solution: attempt to define a reasonable one
2020-05-09 13:03:02 +01:00
Luca Boccassi
675a007d74 Problem: SECURITY.md does not mention 4.3.x series
Solution: add it
2020-05-09 12:57:32 +01:00
Luca Boccassi
abb315a6da Problem: potential memory leak in test_connect_curve_fuzzer
Solution: properly initialize zmq_msg before receive
2020-05-09 12:31:36 +01:00
Luca Boccassi
be77a8d932
Merge pull request #3903 from bjovke/msvc_cplusplus
Problem: MSVC always reports __cplusplus macro value as 199711L. Some…
2020-05-09 10:50:43 +01:00
Luca Boccassi
a1d82598bb
Merge pull request #3904 from somdoron/CHANNEL
problem: no thread-safe alternative for ZMQ_PAIR
2020-05-09 10:49:35 +01:00
Doron Somech
3da84c6d06 problem: no thread-safe alternative for ZMQ_PAIR
Solution: create ZMQ_CHANNEL, the thread safe alternative
2020-05-09 08:49:01 +03:00
Jovan Bunjevacki
804d528114 Problem: MSVC always reports __cplusplus macro value as 199711L. Some newer features are switched off even with latest Visual studio version.
Solution: Add check for MSVC version along with __cplusplus check.
2020-05-09 01:20:47 +02:00
Doron Somech
28cb820f4f
Merge pull request #3902 from bluca/fuzzers
Problems: ZMTP v1 static allocator is needlessly resized, ZMQ_DISABLE_TEST_TIMEOUT does not work anymore
2020-05-08 21:25:37 +03:00
Luca Boccassi
98efa79f54 Problem: ZMQ_DISABLE_TEST_TIMEOUT does not work anymore
Solution: restore it so that it can be set via CPPFLAGS, to avoid
tests timing out when running in GDB
2020-05-08 18:18:34 +01:00
Luca Boccassi
397ac80850 Problem: ZMTP v1 static allocator is needlessly resized
Solution: don't do it, resizing the shared allocator makes sense
as it can take the message buff for zero copy, but the static allocator
is fixed
2020-05-08 18:18:34 +01:00
Doron Somech
061ce6cea1
Merge pull request #3901 from bluca/fuzzers
Problem: test_connect_null_fuzzer doesn't correctly initialise messages
2020-05-07 13:34:26 +03:00
Luca Boccassi
5fd0711196 Problem: memory leak in test_connect_null_fuzzer
Solution: initialize message before re-using it so that
receive doesn't fail and messages can be deallocated
2020-05-06 22:26:03 +01:00
Luca Boccassi
243503c29e Problem: set infinite timeouts on some tests by mistake
Solution: remove it
2020-05-06 20:56:36 +01:00
Doron Somech
f7b215c639
Merge pull request #3900 from bluca/fuzzers
Use fixed keys in fussers curve tests, run fuzzers github action only on PRs, attempt to fix uninitialised error in test helper
2020-05-06 15:12:03 +03:00
Luca Boccassi
fd3e5daaeb Problem: fuzzing Github action ran on pushes on forks and fails
Solution: run in on PRs only as oss-fuzz uses Docker so the repository is
hard-coded
2020-05-06 12:39:45 +01:00
Luca Boccassi
346f8b8b20 Problem: uninitialised error in testutil helper
Solution: memset struct addrinfo to be sure
2020-05-06 11:51:55 +01:00
Luca Boccassi
5819867cd3 Problem: fuzzer curve tests use random keys
Solution: use fixed keys to reduce variability and increase the chance
that random data derived from it can break something
2020-05-06 11:47:15 +01:00
Doron Somech
d7e58fc880
Merge pull request #3899 from bluca/fuzzers
Problems: address sanitizer not enabled, oss-fuzz images not build-tested
2020-05-06 09:51:11 +03:00
Luca Boccassi
9f94aa866f Problem: oss-fuzz images not tested on PRs
Solution: integrate oss-fuzz build via Github actions
2020-05-06 00:36:29 +01:00
Luca Boccassi
5b7f67a822 Problem: memory sanitizer not enabled in CI
Solution: add -fsanitize=leak to the sanitizers flag, and disable
test_many_sockets as it currently fails due to:
https://github.com/zeromq/libzmq/issues/3898
2020-05-06 00:14:02 +01:00
Luca Boccassi
c2ffe2e6d2
Merge pull request #3897 from bluca/fuzzers
Problem: test_hello_msg binds to hard-coded port and fails when it's in use
2020-05-05 20:36:26 +01:00
Luca Boccassi
2ac5ee7307 Problem: test_hello_msg binds to hard-coded port and fails when it's in use
Solution: use the common wildcard bind pattern instead
2020-05-05 14:13:38 +01:00
Doron Somech
04ecff399b
Merge pull request #3896 from bluca/fuzzers
Problems: memory sanitizer fails due to uninitialised global, want to run more tests with sanitizer
2020-05-05 15:51:00 +03:00
Luca Boccassi
3770937de3 Problem: we want to check for undefined behaviour in the CI
Solution: enable GCC's UBSAN in the sanitizer job
2020-05-05 12:58:39 +01:00
Luca Boccassi
0c5396849b Problem: syntax errors in ci_build.sh
Solution: fix them
2020-05-05 12:16:19 +01:00
Luca Boccassi
cdd9e9d1f4 Problem: Travis uses old-old-old-stable Ubuntu by default
Solution: set default to bionic, and leave a few jobs that manually
set Trusty/Xenial to have more coverage
This is especially useful to get newer gcc for address sanitizer support
2020-05-05 11:48:55 +01:00
Luca Boccassi
96d3cb39e4 Problem: fuzz input which causes extra-large message allocation not stored
Solution: add it
2020-05-05 11:48:11 +01:00
Luca Boccassi
9ab3fbeee2 Problem: we want to have multiple seed corpora per fuzzer binary
Solution: store them each as a single line in the text file and convert them
at install time
2020-05-05 11:48:11 +01:00
Luca Boccassi
c4fd6dfea7 Problem: sanitizer tests cannot allocate much memory
Solution: restrict maximum message size to 64MB in tests
2020-05-05 11:42:06 +01:00
Luca Boccassi
7df845fb82 Problem: memory sanitizer detects uninitialised global variable usage
Solution: revert "Problem: complexity of start_connecting"

https://travis-ci.org/github/google/oss-fuzz/jobs/680325364

This reverts commit c590873ff7a81a3c373884eab37cbe2068fbfe4a.

Conflicts:
	src/session_base.cpp
	src/session_base.hpp
2020-05-04 22:02:04 +01:00
Doron Somech
309d1f1cb7
Merge pull request #3894 from bluca/fuzzers
Problems: sub/cancel broken with CURVE, fuzzers need corpora and better unit testing
2020-05-04 14:43:47 +03:00
Luca Boccassi
6b259224ee Problem: fuzzer regression tests do very little
Solution: run them with the seed corpora
2020-05-04 11:42:22 +01:00
Luca Boccassi
c8e62cb2e0 Problem: no dictionaries and seed corpora for fuzzers
Solution: add them and install them where oss-fuzz expects them
2020-05-04 02:11:15 +01:00
Luca Boccassi
60ccf54fa6 Problem: sub/cancel broken with CURVE
Solution: handle downgrading sub/cancel messages in CURVE engine
2020-05-03 17:42:53 +01:00
Luca Boccassi
534580c31d
Merge pull request #3893 from gummif/gfa/blob-ref
Problem: extra blob copy
2020-05-02 14:26:06 +01:00
Luca Boccassi
103e39bd6f
Merge pull request #3892 from gummif/gfa/poller-event
Problem: unnecessary event struct and UB
2020-05-01 23:42:32 +01:00
Gudmundur Adalsteinsson
47a080aac0 Problem: extra blob copy
Solution: use reference tag
2020-05-01 22:27:44 +00:00
Gudmundur Adalsteinsson
284d90a436 Problem: unnecessary event struct and UB
Solution: simply use zmq_poller_event_t
2020-05-01 22:12:30 +00:00
Constantin Rack
e05fe370fe
Merge pull request #3890 from gummif/gfa/retfd
Problem: -1 used for invalid socket
2020-04-29 17:23:10 +00:00
Gudmundur Adalsteinsson
e18772f942 Problem: -1 used for invalid socket
Solution: use retired_fd instead
2020-04-29 17:12:08 +00:00
Luca Boccassi
aa29f7caff
Merge pull request #3889 from bluca/fuzzers
Problem: testutil build broken with gcc 4.4 on CentOS 6
2020-04-28 13:33:03 +01:00
Luca Boccassi
1443c0e787
Merge pull request #3887 from gummif/gfa/unify-fd
Problem: Multiple fd_t definitions
2020-04-28 13:32:52 +01:00
Luca Boccassi
5867d7cf5f
Merge pull request #3888 from gummif/gfa/poller-fd
Problem: Poller event fd unspecified
2020-04-28 11:26:58 +01:00
Gudmundur Adalsteinsson
d426f2ab0c Problem: Multiple fd_t definitions
Solution: Unify definition
2020-04-28 08:50:18 +00:00
Luca Boccassi
a909e7296d Problem: testutil build broken with gcc 4.4 on CentOS 6
Solution: do not alias sockaddr_un, but take a copy

tests/testutil.cpp: In function 'fd_t bind_socket_resolve_port(const char*, const char*, char*, int, int)':
tests/testutil.cpp:468: error: dereferencing pointer 'un_addr' does break strict-aliasing rules
2020-04-28 00:49:37 +01:00
Luca Boccassi
882cb6fdfb Problem: static analysis shows dead store in testutil
Solution: remove it and rework the ifdefs to be safe against uninitialised use
2020-04-28 00:49:37 +01:00
Luca Boccassi
12a2f81717
Merge pull request #3885 from bluca/fuzzers
Problem: no fuzz testing
2020-04-27 23:21:50 +01:00
Gudmundur Adalsteinsson
bf22a9f3e9 Problem: Poller event fd unspecified
Solution: Specify an invalid file descriptor for socket events
2020-04-27 21:00:45 +00:00
Luca Boccassi
96787c35f8 Problem: no fuzz testing for API with variable input
Solution: add tests for zmq_bind, zmq_connect and zmq_z85_decode
2020-04-27 01:18:45 +01:00
Luca Boccassi
57df836381 Problem: no fuzz testing for CURVE
Solution: add simple, initial tests for client and server
2020-04-27 01:18:31 +01:00
Luca Boccassi
8e774f3cd6 Problem: no integration with fuzz testing
Solution: port the 2 new tests from oss-fuzz, and wire them up to
be ran manually with a static input in normal builds.
Add a specific configure option to use the external fuzzing engine
from oss-fuzz.
2020-04-27 01:18:08 +01:00
Luca Boccassi
c6d3bc68c8 Problem: ZMTP mocks duplicated across tests
Solution: define buffers in common header
2020-04-26 21:04:53 +01:00
Luca Boccassi
4f35d1af1a Problem: using BSD sockets in test is duplicated across many tests
Solution: refactor in testutil.lib, so that they can be used for fuzzers too
2020-04-26 17:59:26 +01:00
Luca Boccassi
c81a973cd8 Problem: assert macros not detecting errors from syscall that do not return -1 on failure
Solution: add a new TEST_ASSERT_SUCCESS_RAW_ZERO_ERRNO macro so that
it can check explicitly for non-zero values. This will be used
for getaddrinfo().
2020-04-26 17:59:26 +01:00
Luca Boccassi
727637082f Problem: test_shutdown_stress_tipc fails sometimes
Solution: create socket in the same thread where it is used
2020-04-26 15:08:04 +01:00
Luca Boccassi
b56195e995
Merge pull request #3882 from laplaceyang/relicense
RELICENSE: Grant from laplaceyang.
2020-04-22 10:16:42 +01:00
laplaceyang
491defdf12 RELICENSE: Grant from laplaceyang. 2020-04-22 17:11:58 +08:00
Luca Boccassi
9984d43143
Merge pull request #3879 from somdoron/master
problem: appveyor is very slow
2020-04-20 21:20:21 +01:00
Doron Somech
81056a7237 problem: appveyor is very slow
Solution: move to github actions
2020-04-20 22:55:28 +03:00
Luca Boccassi
a525323757
Merge pull request #3878 from Eelis/master
Problem: out-of-bounds array access in socket_poller::check_events.
2020-04-20 12:50:41 +01:00
Luca Boccassi
f00f464566
Merge pull request #3866 from gummif/gfa/poller-refactoring
Problem: poller item lookup can be simplified
2020-04-20 09:34:57 +01:00
Eelis van der Weegen
063f14a940 Problem: out-of-bounds array access in socket_poller::check_events. 2020-04-20 03:22:31 +02:00
Gudmundur Adalsteinsson
0b32fb3629 Problem: poller item lookup can be simplified
Solution: Extract generic find function
2020-04-19 20:53:56 +00:00
Luca Boccassi
d882e807dd
Merge pull request #3876 from somdoron/HELLO_MSG
problem: checking the wrong socket when sending hello msg
2020-04-18 23:32:31 +01:00
Luca Boccassi
08d94d0e16
Merge pull request #3877 from gummif/gfa/spinlock-fix
Problem: Spinning on atomics can cause hangs
2020-04-18 22:21:47 +01:00
Doron Somech
6ca07a30e3 problem: checking the wrong socket when sending hello msg 2020-04-18 22:45:49 +03:00
Doron Somech
2745ac31d7
Merge pull request #3875 from bluca/test
Fix coverage job and appveyor job
2020-04-18 20:25:17 +03:00
Gudmundur Adalsteinsson
ff80089939 Problem: Spinning on atomics can cause hangs
Solution: Add a sleep in the loop. Some versions of
valgrind may hang when spinning on atomic variables.
2020-04-18 12:44:59 +00:00
Luca Boccassi
5a78bad2a8 Problem: coverage CI job fails
Solution: bump OS to Xenial for newer python libraries
2020-04-18 11:06:58 +01:00
Luca Boccassi
7cac73401a Problem: test_many_sockets always fails on Windows
Solution: don't run it
2020-04-18 11:03:15 +01:00
Luca Boccassi
ada6f0c058
Merge pull request #3871 from somdoron/DISCONNECT_MSG
problem: router doesn't know when peer disconnected
2020-04-18 10:49:50 +01:00
Luca Boccassi
7ce7b8b888
Merge pull request #3874 from shgalym/patch-1
typo fix root README
2020-04-18 10:48:07 +01:00
Galymzhàn Sh
d0b5713709
typo fix root README 2020-04-18 15:24:14 +06:00
Luca Boccassi
97a52af242
Merge pull request #3872 from gummif/gfa/poller-size
Problem: No support to query poller size
2020-04-17 22:50:34 +01:00
Gudmundur Adalsteinsson
9c6738bb45 Problem: No support to query poller size
Solution: Add zmq_poller_size that queries the number
of objects registered, allowing safer usages of poller
to avoid livelock situations.
2020-04-17 18:37:01 +00:00
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
Kevin Sapper
511d39c179 Problem: Unable to overwrite the ANDROID_BUILD_DIR
Solution: Use pwd only a default value
2020-02-12 16:20:27 +01:00
Luca Boccassi
917921095e
Merge pull request #3827 from sappo/master
Improve android build handling
2020-02-12 12:27:45 +00:00
Kevin Sapper
1fc4f513f4 Problem: Tables in README are difficult to read
Solution: Re-factor them to look like usual tables
2020-02-12 12:25:19 +01:00
Kevin Sapper
341f56ccac Problem: Android build is hard to understand
Solution: Modify the build scripts so the user can specify the platform
for which to build, e.g. `./build.sh arm`. This approach originally
significantly reduces the parameters which have to be set before running
the script.

Further the build process is documented in a README now.
2020-02-12 12:22:27 +01:00
Doron Somech
d5bd1642d1
Merge pull request #3825 from bluca/relicense
Add grant by ninoles
2020-02-11 22:18:13 +02:00
Luca Boccassi
b4bfd0f058 Add grant by ninoles
Received via email, message-id:

ed4de883-640b-bf7e-ac56-911e117b649e@tzone.org
2020-02-11 20:16:11 +00:00
Luca Boccassi
52044b38f7
Merge pull request #3823 from somdoron/ZMQ_PEER
problem: zeromq doesn't has a thread-safe peer to peer socket
2020-02-09 21:53:18 +00:00
Doron Somech
70bc7dd925 problem: zeromq doesn't has a thread-safe peer to peer socket
Solution: a new socket type, called PEER. Very similar to SERVER, but can only connect to other PEERs. Also a new zmq_connect_peer method, that connect and return a routing-id in thread-safe and atomic operation
2020-02-09 23:20:14 +02:00
Luca Boccassi
821685f249
Merge pull request #3822 from somdoron/GROUPMAXLENGTH
problem: maximum size of group doesn't match the RFC maximum size
2020-02-09 13:10:47 +00:00
Doron Somech
05194eb549 problem: maximum size of group doesn't match the RFC maximum size 2020-02-09 14:46:23 +02:00
Simon Giesecke
f17a794d59
Merge pull request #3814 from bluca/sub_cancel_decoder
Implement ZMTP 3.1 subscribe/cancel via commands
2020-02-07 09:26:21 +01:00
Luca Boccassi
a7bb41ef77
Merge pull request #3820 from somdoron/WSENCODING
websocket problems
2020-02-06 16:39:38 +00:00
Doron Somech
652834296b problem: ws_transport is missing the path the endpoint name 2020-02-06 17:22:28 +02:00
Doron Somech
071ec1a9bb problem:Fallback to localhost in ws_address has no effect
Solution: return after the fallback

fixes #3809
2020-02-06 17:22:11 +02:00
Constantin Rack
6b75209f0e
Merge pull request #3821 from bluca/relicense
Grant from KLNikita
2020-02-06 15:26:49 +01:00
Luca Boccassi
8c618e0247 Grant from KLNikita
Received via email, message-id:
81ce91c8-df40-13c2-7abf-6f648d0b123f@elyzion.net
2020-02-06 10:29:32 +00:00
Doron Somech
7bfd9512e6 problem: ws_encoder allocate a new msg for masking
solution: if msg is not shared or constant, mask the message in place
2020-02-06 09:34:22 +02:00
Simon Giesecke
dca59c940e
Merge pull request #3819 from bluca/relicense
Grant by asafkahlon
2020-02-05 20:30:47 +01:00
Luca Boccassi
b7c1d932fb Grant by asafkahlon
Received via email, message-id:

CALFsTFVZLgujRE3V_30G9V9b35kE566K5cWi0vKbNkZGSHrszA@mail.gmail.com
2020-02-05 17:06:27 +00:00
Luca Boccassi
38b6888c3e Problem: libzmq does not advertise ZMTP 3.1
Solution: bump minor version number in the engine as all 3.1 features
are now implemented
2020-02-05 17:03:39 +00:00
Luca Boccassi
253e9dd27b Problem: libzmq does not send ZMTP 3.1 sub/cancel commands
Solution: if all peers of a socket are >= 3.1 use sub/cancel commands
instead of the old 0/1 messages.
For backward compatibility, move the handling of 0/1 or sub/cancel
command strings to the encoders, so that the right thing can be done
depending on the protocol version.
Do not set the command flag until the encoder, so that we can handle
the inproc case (which skips the encoder).
2020-02-05 17:03:39 +00:00
Luca Boccassi
d4af92cd15
Merge pull request #3818 from SCOREC/xlClang
support compiling with IBM XL 16.1 w/ clang front end
2020-02-05 16:59:24 +00:00
Cameron Smith
f4dff8eed6 relicense stmt 2020-02-05 11:46:08 -05:00
Cameron Smith
49ecde8d80 support compiling with IBM XL 16.1 w/ clang front end 2020-02-05 11:00:34 -05:00
Luca Boccassi
0d073e0b67
Merge pull request #3816 from somdoron/SCATTER-GATHER-DOC
problem: no docs for scatter-gather
2020-02-05 08:29:37 +01:00
Doron Somech
40de45396f problem: no docs for scatter-gather 2020-02-05 02:33:38 +02:00
Luca Boccassi
27f2f5e745
Merge pull request #3815 from gummif/gfa/doc-typo
Problem: Documentation for option name mismatch
2020-02-04 21:44:21 +01:00
Gudmundur Adalsteinsson
ee32b833a7 Add relicence agreement 2020-02-04 20:07:35 +00:00
Gudmundur Adalsteinsson
f80830c4a8 Problem: Documentation for option name mismatch
Solution: Fix typo
2020-02-04 20:00:07 +00:00
Luca Boccassi
e7f802d1ac
Merge pull request #3813 from sigiesec/code-style
Improve code style, remove duplications in test code
2020-02-04 19:05:01 +01:00
Simon Giesecke
21b8d5cff7 Problem: duplicated code in tests related to monitoring
Solution: extract new receive_monitor_address function
2020-02-04 18:36:03 +01:00
Simon Giesecke
495fb00b7e Problem: pointee types are unnecessarily non-const
Solution: add const where possible
2020-02-04 18:34:19 +01:00
Simon Giesecke
db8f4fba21 Problem: redundant inline/ZMQ_FINAL declarations
Solution: remove them
2020-02-04 18:34:13 +01:00
Luca Boccassi
21d80e42a8
Merge pull request #3812 from pavel-pimenov/RELICENSE-pavel-pimenov
RELICENSE pavel-pimenov
2020-02-04 16:40:36 +01:00
Pavel Pimenov
c9845bfbf4 RELICENSE pavel-pimenov 2020-02-04 18:36:19 +03:00
Luca Boccassi
84ec65482f
Merge pull request #3808 from sigiesec/fix-test-monitor-to-be-checked
Fix intermittent test_monitor and test_security_zap timeouts/deadlocks for now
2020-02-04 15:23:58 +01:00
Luca Boccassi
d8851c5ca8
Merge pull request #3807 from sigiesec/fix-test-heartbeats
Problem: intermittent timeouts on test_heartbeats
2020-02-04 14:42:16 +01:00
Simon Giesecke
66094678d1 Problem: intermittent deadlocks/timeouts in test_monitor and test_security_zap
Solution: wait for monitor to stop resp. unregister monitor before
closing monitored socket.
2020-02-04 14:34:36 +01:00
Doron Somech
0a1fc44ed7
Merge pull request #3811 from sigiesec/fix-libsodium-1-0-0
Problem: curve_encoding_t build fails with old libsodium versions
2020-02-04 10:34:27 +01:00
Simon Giesecke
dfcca75d0b Problem: curve_encoding_t build fails with old libsodium versions
Solution: add version check and fall back to old implementation for old versions
2020-02-04 10:04:40 +01:00
Simon Giesecke
58b636675a Problem: on POSIX systems, all tests have a timeout of 60 seconds; disabling it via ZMQ_DISABLE_TEST_TIMEOUT doesn't work anymore
Solution: remove ZMQ_DISABLE_TEST_TIMEOUT guard but add default parameter to setup_test_environment
2020-02-04 09:48:55 +01:00
Simon Giesecke
577d64c007 Problem: intermittent timeouts on test_heartbeats
Solution: increase number of retries when reading monitor event,
and increase timeout
2020-02-04 09:48:55 +01:00
Luca Boccassi
06bdebfe8d
Merge pull request #3805 from sigiesec/curve-zerocopy
CURVE: Reduce number of memory allocations and message copies
2020-02-04 08:58:31 +01:00
Luca Boccassi
f1513f96d8
Merge pull request #3806 from sigiesec/increase-reconnect-ivl-timeout
Problem: intermittent timeouts of test_reconnect_ivl
2020-02-04 08:54:32 +01:00
Simon Giesecke
e7043c815d Problem: intermittent timeouts of test_reconnect_ivl
Solution: increase timeout to 15 seconds
2020-02-03 23:19:45 +01:00
Simon Giesecke
4177bf7445 Problem: curve_encoding_t involves unnecesary heap allocations and copying of message data
Solution: use crypto_box_easy_afternm and crypto_box_open_easy_afternm
in-place
2020-02-03 22:33:15 +01:00
Simon Giesecke
2fa8185340 Problem: cannot use static libsodium library on Windows
Solution: add CMake option WITH_LIBSODIUM_STATIC
2020-02-03 22:24:16 +01:00
Simon Giesecke
b01685ea0a Problem: no unittests for curve_encoding_t
Solution: add initial tests
2020-02-03 22:24:16 +01:00
Luca Boccassi
48aed8df11
Merge pull request #3803 from bluca/relicense
Grant by jimenezrick, xantares
2020-02-03 19:10:32 +01:00
Telford Berkey
499624927a
Submitting permission to relicense under MPLv2 statement. (#3804)
* Adding permission to relicense for tberkey.

Co-authored-by: bzimmerman-qb <bzimmerman@4qbase.com>
2020-02-03 17:34:52 +01:00
Simon Giesecke
78b94a4fcf Problem: testutil.hpp pulls in min/max macro definitions on Windows
Solution: define NOMINMAX
2020-02-03 17:07:15 +01:00
Simon Giesecke
4ad239acbc Problem: curve encoding and decoding are not easily testable
Solution: extract into separate class curve_encoding_t
2020-02-03 17:07:15 +01:00
Luca Boccassi
a7b328a79a Revert "Problem: nuget internal metadata not maintained, no relicense"
Relicense grant received.

This reverts commit d2a8be8da72f893d23a611bff0ba09e3ee9872e1.
2020-02-03 16:23:38 +01:00
Luca Boccassi
7cceedda2d Grant by phreed
Received via email, message-id:

BYAPR08MB506237D85857D053D749888C91000@BYAPR08MB5062.namprd08.prod.outlook.com
2020-02-03 16:22:20 +01:00
Luca Boccassi
f6de0dcafa Grant by xantares
Set via github comment:

https://github.com/zeromq/libzmq/pull/1366#issuecomment-581451018
2020-02-03 15:56:11 +01:00
Luca Boccassi
687241e93f Grant by jimenezrick 2020-02-03 14:19:36 +01:00
Kevin Sapper
af5ac60631
Merge pull request #3801 from bluca/relicense
Add relicense from zoobab, acsearle
2020-02-03 14:13:23 +01:00
Luca Boccassi
d69f4dc855 Problem: commented out code in CMakeLists.txt
Solution: remove it, never used
2020-02-03 13:40:42 +01:00
Luca Boccassi
d2a8be8da7 Problem: nuget internal metadata not maintained, no relicense
Solution: remove it for now
2020-02-03 13:40:42 +01:00
Luca Boccassi
a2b4cca266
Merge pull request #3802 from FredTreg/patch-1
Adding relicensing grant from FredTreg
2020-02-03 13:29:37 +01:00
Frederic Tregon
0b66262bda
Adding relicensing grant from FredTreg 2020-02-03 13:08:45 +01:00
Luca Boccassi
2a6cc306da Grant by acsearle 2020-02-03 11:56:11 +01:00
Simon Giesecke
3e394fddb4 Problem: naming convention violated by curve_mechanism_base
Solution: change to conform with naming convention
2020-02-03 11:44:10 +01:00
Luca Boccassi
fc8eec6d39 Add relicense from zoobab 2020-02-03 10:26:35 +01:00
Luca Boccassi
75dfbae0d1
Merge pull request #3798 from std-any-emplace/msvc-cmake-clang-buildfix
Add an extra space after "/Z7" in CMakeLists.txt.
2020-01-28 22:34:58 +00:00
Simon Giesecke
e73789620d
Merge pull request #3797 from std-any-emplace/msvc-cmake
Both libzmq and libzmq-static are trying to work in precompiled.pch. …
2020-01-28 22:14:10 +01:00
std-any-emplace
e29495373e Add an extra space after "/Z7". Else the flag gets joined with the flag following this and clang-cl does not like that. 2020-01-28 21:30:56 +01:00
std-any-emplace
9b66fe2fba Both libzmq and libzmq-static are trying to work in precompiled.pch. Solution: enforce order.
Fixes https://github.com/zeromq/libzmq/issues/3776.
2020-01-28 20:57:53 +01:00
Luca Boccassi
fde2a7a65d
Merge pull request #3795 from sigiesec/final-override-analyze
Code style improvements
2020-01-27 11:42:57 +00:00
Simon Giesecke
406c423c9a Problem: C-style casts used
Solution: use static_cast instead
2020-01-27 10:38:00 +01:00
Simon Giesecke
78961eeab7 Problem: non-modifying member functions not marked as const/static
Solution: add const/static
2020-01-27 10:38:00 +01:00
Simon Giesecke
41e3f14d6a Problem: ptr/ref parameters and local variables are non-const but never modified
Solution: add const
2020-01-27 10:38:00 +01:00
Simon Giesecke
759fed8e7e Problem: meaningless inline specified on function declarations
Solution: remove them
2020-01-27 10:38:00 +01:00
Simon Giesecke
f8f7913737 Problem: irregular loop conditions
Solution: use standard loop constructs and optimize some loops
2020-01-27 10:38:00 +01:00
Simon Giesecke
628adf1cb7 Problem: inconsistent polymorphic inheritance
Solution: consistently use virtual, override and final
2020-01-27 08:46:55 +01:00
Luca Boccassi
6d69898240
Merge pull request #3794 from sigiesec/fix-ctx-shutdown
Problem: sockets can be created after calling zmq_ctx_shutdown
2020-01-26 18:09:47 +00:00
std-any-emplace
fbf85448c3 Clarify used C++-standard for compilation. (#3793)
* Clarify used C++-standard for compilation.

* More than a conforming compiler may be necessary to compile the library. Just refer to the list of known "good" platforms below.
2020-01-26 18:50:17 +01:00
Simon Giesecke
36a8df2f8c Problem: sockets can be created after calling zmq_ctx_shutdown
Solution: fix handling of _starting and _terminate flags

Add tests for this situation.

Clarify documentation of zmq_ctx_shutdown and zmq_socket.

Fixes #3792
2020-01-26 18:06:14 +01:00
Simon Giesecke
ebc9314339
Merge pull request #3790 from std-any-emplace/master
EAGAIN: Refer to ZMQ_RCVTIMEO when receiving in blocking-mode
2020-01-25 21:46:35 +01:00
std-any-emplace
337ec270a4 EAGAIN: Refer to ZMQ_RCVTIMEO when receiving in blocking-mode 2020-01-25 20:04:59 +01:00
Luca Boccassi
349e3e21db
Merge pull request #3789 from std-any-emplace/master
Some minor documentation fixes
2020-01-23 19:29:54 +00:00
std-any-emplace
feb4f3d424 Fix minor typo 2020-01-23 20:09:08 +01:00
std-any-emplace
81d522bb66 Refer to zmq_socket because there are more thread-safe sockets than just client/server 2020-01-23 20:08:38 +01:00
Luca Boccassi
72865e1b61
Merge pull request #3788 from colletted/feature
Replace strtok with strtok_r
2020-01-23 09:34:12 +00:00
Denis Collette
64fc106123 Problem: preious commit contains tabs
Solution: replace tabs with spaces
2020-01-22 20:15:50 -04:00
Denis Collette
851ae90319 Problem: No relicense agreement by Denis Collette
Solution: added relicence agreement
2020-01-22 19:59:51 -04:00
Denis Collette
1450681fb4 Problem: Issue #3766 states that strtok is not thread safe and should be replaced
Solution: Replaced calls to strtok with strtok_r (strtok_s for windows)
in ws_engine.cpp
2020-01-22 19:40:26 -04:00
Simon Giesecke
b7dd31db5a
Merge pull request #3785 from bluca/wss_option
Problem: WS build option is independent of DRAFT
2020-01-20 14:13:36 +01:00
Luca Boccassi
1f00a5bf59 Problem: WS build option is independent of DRAFT
Solution: make the default depend on the value of the DRAFT build flag
2020-01-19 16:36:29 +00:00
Luca Boccassi
ddae567f16 Problem: ZMQ_WSS socket options not defined in src/zmq_draft.h
Solution: add them
2020-01-19 14:39:29 +00:00
Doron Somech
07052ad309
Merge pull request #3784 from bluca/news
Problem: NEWS out of date with latest changes
2020-01-19 16:13:19 +02:00
Luca Boccassi
68e6d8c07f Problem: NEWS out of date with latest changes
Solution: update it
2020-01-19 13:52:35 +00:00
Doron Somech
d47b7fa065
Merge pull request #3783 from std-any-emplace/master
Documentation fix regarding thread-safety of zmq_poll/zmq_poller.txt.
2020-01-19 11:48:12 +02:00
std-any-emplace
c09b794ac6 Add a relicense-file. 2020-01-19 10:45:18 +01:00
std-any-emplace
8004c10f39 Documentation fix regarding thread-safety of zmq_poll/zmq_poller.txt.
See https://github.com/zeromq/libzmq/issues/3778.
2020-01-19 09:54:11 +01:00
Doron Somech
1b8a352480
Merge pull request #3782 from mloy/fix_websocket_without_path_with_test
Fix websocket without path with test
2020-01-19 07:38:31 +02:00
Matthias Loy
65ce499bef Added relicense file mloy 2020-01-18 23:20:15 +01:00
Matthias Loy
67adc458df Roundtrip test for websocket url without a path 2020-01-18 23:19:31 +01:00
Matthias Loy
c357c378d8 fix: websocket url without path
websocket urls without a path caused crash!
2020-01-18 23:04:16 +01:00
Luca Boccassi
7ea72e5692
Merge pull request #3780 from somdoron/WSPINGPONG
problem: ws_engine don't support WS RFC ping-pong and close
2020-01-18 19:31:00 +00:00
Doron Somech
60ef14f80b problem: ws_engine don't support WS RFC close control msg
Solution: when peer send a close msg, close the connection
2020-01-18 19:30:23 +02:00
Doron Somech
b120ec33a9 problem: ws_engine don't support WS RFC ping-pong
Solution: implement both PONG response and producing pings
2020-01-18 18:28:00 +02:00
Constantin Rack
b9b901e89d
Merge pull request #3775 from ffontaine/master
acinclude.m4: add -latomic to PKGCFG_LIBS_PRIVATE
2020-01-12 12:10:08 +00:00
Fabrice Fontaine
d59dcbcaeb acinclude.m4: add -latomic to PKGCFG_LIBS_PRIVATE
Add -latomic to PKGCFG_LIBS_PRIVATE so applications linking statically
with libzmq (such czmq) will know that they have to link with -latomic
and the following build failure will be avoided:

  CCLD     src/czmq_selftest
/home/buildroot/autobuild/run/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/sparc-buildroot-linux-uclibc/7.4.0/../../../../sparc-buildroot-linux-uclibc/bin/ld: /home/buildroot/autobuild/run/instance-3/output-1/host/sparc-buildroot-linux-uclibc/sysroot/usr/lib/libzmq.a(src_libzmq_la-ctx.o): in function `zmq::ctx_t::create_socket(int)':
ctx.cpp:(.text+0x1710): undefined reference to `__atomic_fetch_add_4'

Fixes:
 - http://autobuild.buildroot.org/results/4a12f1ede260cd956a0b5ccb4eec6ca8b44cb04f

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2020-01-12 10:18:23 +01:00
Luca Boccassi
a9cca0d568
Merge pull request #3772 from kanonet/mingw-lib
mingw: add missing namespace
2020-01-09 20:53:29 +00:00
Christoph Kahl
c5dab4f48f mingw: add missing namespace 2020-01-09 21:44:53 +01:00
Simon Giesecke
73eb1eac05
Merge pull request #3767 from bluca/libbsd
Problems: reimplementation of strlcpy, CMake does not use pkg-config for NSS, wrong pc generated by autoconf with GNUTLS
2020-01-06 11:46:38 +01:00
xqcool
382c6d7186 Update array.hpp (#3769)
* Update array.hpp

Problem:Calling back on an empty container causes undefined behavior.
Solution:Check with the function empty()

* Create xqcool.mq

Adds relicensing grant
2020-01-01 10:37:51 +01:00
Luca Boccassi
c560a41473 Problem: mingw build broken
Solution: check correct preprocessor define in test_reconnect_ivl to match the
test invocation
2019-12-28 21:17:09 +01:00
Luca Boccassi
3832bd6b11 Problem: UWP build fails
Solution: initialize local variable in all cases to false positive
compiler warning
2019-12-28 21:17:09 +01:00
Luca Boccassi
21f763c872 Problem: libbsd not used on Travis
Solution: add it to one build to exercise all the code paths
2019-12-28 21:17:09 +01:00
Luca Boccassi
9d2899af87 Problem: libzmq.pc does not include gnutls dependency for static linking
Solution: add it to the Requires.private list
2019-12-28 21:17:09 +01:00
Luca Boccassi
2c2ff01e85 Problem: CMake does not look for NSS using pkg-config
Solution: use pkg-config by default and FindPackage only as a
fallback
2019-12-28 21:17:09 +01:00
Luca Boccassi
068385c951 Problem: internal reimplementation of strlcpy used by default on Linux
Solution: use libbsd by default when available, and the internal implementation
only as a fallback, to take advantage of Linux distros maintenance of the
string libraries.
2019-12-28 16:21:06 +01:00
Luca Boccassi
246cc77efc
Merge pull request #3763 from sigiesec/replace-strcpy
Avoid possible buffers overruns in ws_engine
2019-12-25 16:13:13 +01:00
Luca Boccassi
59095f9d06
Merge pull request #3765 from sigiesec/various-improvements
Various improvements
2019-12-25 15:07:10 +01:00
Simon Giesecke
3dbbc28bb8 Problem: use of unsafe strcpy
Solution: use memcpy with known size instead
2019-12-25 13:56:26 +01:00
Simon Giesecke
334e837b88 Problem: ws_engine uses unsafe strcpy
Solution: use strcpy_s instead (define custom if not available)
2019-12-25 13:56:26 +01:00
Simon Giesecke
14ab794671 Problem: local functions not declared static
Solution: add static
2019-12-25 13:52:21 +01:00
Simon Giesecke
fa804c7783 Problem: pseudo-loops which had exactly one iteration
Solution: removed them
2019-12-25 13:52:21 +01:00
Simon Giesecke
579aa5b440 Problem: non-loop-variables initialized via loop initializer
Solution: move initialization to declaration
2019-12-25 13:52:21 +01:00
Simon Giesecke
d4cc592387 Problem: loop variable modified in loop step and body
Solution: modify it in loop body only
2019-12-25 13:52:21 +01:00
Simon Giesecke
a64c3e6c7d Problem: redundant consecutive return statements
Solution: remove the redundant one
2019-12-24 10:17:10 +01:00
Simon Giesecke
ddbf45cf8d Problem: redundant break after return
Solution: remove them
2019-12-24 10:17:10 +01:00
Simon Giesecke
2256bd5b0b Problem: unnecessary copying of string literals
Solution: just copy the address
2019-12-23 14:12:07 +01:00
Simon Giesecke
4c3f115469 Problem: raw malloc used unnecessarily
Solution: use std::string instead
2019-12-23 14:12:07 +01:00
Simon Giesecke
30e2398e67 Problem: WSS-specific members and options are compiled without ZMQ_HAVE_WSS
Solution: properly guard members and options
2019-12-23 11:58:07 +01:00
Simon Giesecke
9e548bd591 Problem: insecure and inefficient strcpy used
Solution: use memcpy with known length
2019-12-23 11:58:07 +01:00
Simon Giesecke
3e7995f7f7
Merge pull request #3758 from sonoware/fix-set-cpu-affinity
Fix set cpu affinity
2019-12-13 15:03:06 +01:00
Stephan Senkbeil
8089529148 Problem: ZMQ_HAVE_PTHREAD_SET_AFFINITY not set correctly
Solution: Set correct define in CMake check and add the cmakedefine
2019-12-13 14:42:45 +01:00
Stephan Senkbeil
3a3192e983 Adds RELICENSE for sonoware 2019-12-13 14:40:42 +01:00
Luca Boccassi
eb54966cb9
Merge pull request #3757 from sigiesec/fix-windows-signaler-regression
Fix windows signaler regression
2019-12-10 18:41:35 +00:00
Simon Giesecke
9f16513ebe Problem: loop sending signaler event is obscure
Solution: add comments and remove continue/break
2019-12-10 16:19:25 +01:00
Simon Giesecke
3ace237988 Revert "Removed unreachable code paths"
This reverts commit 4f77cfa3274fcddf9687fc713b8a331ee018cf87.
2019-12-10 16:08:52 +01:00
Doron Somech
9b67fe8a98
Merge pull request #3755 from sigiesec/more-improvements-analyze
Make use of = default and = delete if available
2019-12-09 12:06:49 +02:00
Simon Giesecke
b88b12c77c Problem: sonar has no access to git history
Solution: unshallow clone in analysis job
2019-12-09 09:48:21 +01:00
Simon Giesecke
f60f909899 Problem: missing use of C++11 = delete and = default
Solution: introduce macros ZMQ_DEFAULT and ZMQ_NON_COPYABLE_NOR_MOVABLE
2019-12-09 09:48:21 +01:00
Simon Giesecke
86d7de38ca Problem: redundant empty destructor
Solution: Remove definition
2019-12-08 19:43:31 +01:00
Constantin Rack
400107d765
Merge pull request #3754 from sigiesec/code-improvements-analyze
Improvements to static analysis & resolve some issues identified by static analysis
2019-12-08 17:31:02 +00:00
Simon Giesecke
76460c5e17 Problem: clang-format outdated
Solution: update to clang-format 8
2019-12-08 16:08:16 +01:00
Simon Giesecke
f8adf9ea55 Problem: unnecessary value parameters
Solution: change to const references
2019-12-08 15:24:48 +01:00
Simon Giesecke
cb2b377d9f Problem: redundant else after return
Solution: remove else
2019-12-08 15:24:48 +01:00
Simon Giesecke
1d9c6bcf09 Problem: unittest_udp_address not properly formatted
Solution: run clang-format
2019-12-08 15:24:48 +01:00
Simon Giesecke
fdabd73da6 Problem: parameters not const where const possible
Solution: add const
2019-12-08 15:24:48 +01:00
Simon Giesecke
84267e734b Problem: inconsistent parameter names on definition/declaration
Solution: align them
2019-12-08 15:24:48 +01:00
Simon Giesecke
cd954e207d Problem: use of C-style casts
Solution: use static_cast/reinterpret_cast instead
2019-12-08 15:24:48 +01:00
Simon Giesecke
a83c57d0bb Problem: identifiers not conformant with naming convention
Solution: fix identifier names
2019-12-08 15:24:48 +01:00
Simon Giesecke
18edd28955 Problem: clang version used for analysis is outdated
Solution: update to clang 8
2019-12-08 15:24:48 +01:00
Simon Giesecke
de3e03c147 Problem: new clang-tidy contains checks that do not apply to libzmq
Solution: disable inapplicable checks
2019-12-08 15:24:48 +01:00
Luca Boccassi
b9ddf62261
Merge pull request #3752 from sigiesec/update-sonar-scanner-analyze
Problem: sonar-scanner binary is outdated and no longer available
2019-12-07 10:48:46 +00:00
Simon Giesecke
d2fbfa7bd8 Problem: sonar-scanner binary is outdated and no longer available
Solution: Update to version 4.2.0.1873
2019-12-07 10:38:22 +01:00
Luca Boccassi
df993d113c
Merge pull request #3751 from sigiesec/windows-domain-sockets-signaler
Use Unix domain sockets for listener when available on Windows
2019-12-07 00:25:21 +00:00
Simon Giesecke
cf7e0fb066 Problem: test_capabilities fails on Windows when IPC support is available
Solution: Fix ifdef for expectation of IPC support
2019-12-06 20:24:41 +01:00
Simon Giesecke
76b7478290 Problem: there is no VS2019/IPC build job
Solution: add VS2019 build job
2019-12-06 19:31:41 +01:00
Simon Giesecke
ca552d563f Problem: listener socket uses TCP loopback connections which sometimes go awry
Solution: Use domain sockets instead if available
2019-12-06 19:11:50 +01:00
Simon Giesecke
bd4c2d60ba Problem: zmq::listener_t::create_wildcard_address not reusable in ip.cpp
Solution: move to ip.hpp as zmq::create_ipc_wildcard_address
2019-12-06 19:11:50 +01:00
Simon Giesecke
3bcaea535c Problem: zmq_fdpair function is very long
Solution: Extract TCP/IP loopback variant into zmq_fdpair_tcpip
2019-12-06 17:51:13 +01:00
liedtkeInTUM
65d2f1f498 Problem: if IPC enabled libzmq does not compile when in uwp build (#3747)
* Problem: if IPC enabled libzmq does not compile when in uwp build

* Problem 10.0.##### can be valid windows target versions

* Problem: No builds are triggered on uwp platform

* Problem: epoll is set before UWP platform is checked

* Problem: used wrong CMAKE_SYSTEM_NAME specifier

* Problem: build tests fails during cmake configure

* Use Win32 build step for Win32-uwp platform

* Disable compile options that produce warnings that leads to a ci fail

* winnt version is set by cmake, no need for redefinition in windows.hpp

* Eliminate all warning according Incremental and opt:icf are specified

* Prefer to disable opt flags in debug config rather than incremental linking

* CMAKE_GENERATOR should not include uwp definition

* Add release build with uwp configuration

* Problem: pointer potentially uninitialized
2019-12-06 13:27:24 +00:00
Luca Boccassi
51bf2aff35
Merge pull request #3746 from drolevar/master
Change XSUB -> XPUB message processing.
2019-12-04 16:08:15 +00:00
Andrij Abyzov
5a854780f2 Problem: cannot send arbitrary data from XSUB to XPUB.
Solution: now if the first frame in a multipart message is not subscribe/unsubscribe,
the rest of the parts are also considered to be not subscribe/unsubscribe.
2019-12-04 16:25:08 +01:00
Doron Somech
85df75584e
Merge pull request #3743 from bluca/test_ws_bindport
Fix ZMQ_LAST_ENDPOINT with WS[S] and use it in tests
2019-11-28 17:24:35 +02:00
Luca Boccassi
00a448b1f0 Problem: WS tests bind to hard-coded TCP port and fail when ran in parallel
Solution: bind to wildcard and use ZMQ_LAST_ENDPOINT
2019-11-28 12:37:53 +00:00
Luca Boccassi
a61db18eee Problem: WSS LAST_ENDPOINT returns WS transport
Solution: add wss_address_t subclass of ws_address_t to override the
to_string method
2019-11-28 12:37:53 +00:00
Luca Boccassi
c711941e9a Problem: wildcard port binding does not work with WS sockets
Solution: remove the path from the address when resolving
2019-11-28 09:27:05 +00:00
Luca Boccassi
79d75f017c Problem: WS sockets return TCP protocol strings with ZMQ_LAST_ENDPOINT
Solution: use the correct address class when resolving
2019-11-28 09:27:05 +00:00
Luca Boccassi
75d9d84100
Merge pull request #3744 from liedtkeInTUM/fix_output_name
Problem: static libs are generated without given basename
2019-11-27 09:33:28 +00:00
Sven Liedtke
0cca4b2ce9 Add relicense statement 2019-11-27 10:24:20 +01:00
Sven Liedtke
d9d4dbbbd4 Problem: static libs are generated without given basename 2019-11-27 08:28:07 +01:00
Luca Boccassi
0f9dd85e89
Merge pull request #3741 from drolevar/master
Change XSUB -> XPUB multipart message processing.
2019-11-20 09:01:32 +00:00
Andrij Abyzov
04761133bf Fix zmq::select_t::loop formatting 2019-11-20 09:29:59 +01:00
Andrij Abyzov
d5198693e8 Add relicense grant for Andrij Abyzov 2019-11-19 18:22:15 +01:00
Andrij Abyzov
108977c838 Change XSUB -> XPUB multipart message processing.
Now only the first part in a multipart message will be treated as subscribe/unsubscribe.
The rest will be considered user messages regardless of the first byte.
2019-11-19 18:22:12 +01:00
Luca Boccassi
e0d9e21374
Merge pull request #3738 from eldruin/external-output-name
Allow library output name to be changed externally
2019-11-13 12:40:55 +00:00
Diego Barrios Romero
0605d06f1e Add license grant 2019-11-13 13:23:42 +01:00
Diego Barrios Romero
0bd8f70264 Allow renaming library from the outside 2019-11-13 12:00:47 +01:00
Luca Boccassi
97df2dac3a
Merge pull request #3735 from viciious/no-libsodium-spec
Remove the superfluous build requirement of libsodium-devel
2019-11-12 17:15:56 +00:00
Victor Luchits
e2e0f5c5f0 Add the relicense statement 2019-11-12 20:14:13 +03:00
Victor Luchits
39c63994f9 Remove the superfluous build requirement of libsodium-devel 2019-11-12 18:24:21 +03:00
Luca Boccassi
b788270bda
Merge pull request #3734 from somdoron/tls_key_expired
problem: test_wss_transport keys expired
2019-11-10 10:17:35 +00:00
Doron Somech
a1aeae92cd problem: test_wss_transport expired
Solution: generate new keys that last for 100 years
2019-11-10 10:34:43 +02:00
Luca Boccassi
af86d93d5f
Merge pull request #3726 from bluca/capsh_option
Problem: test_pair_tcp_cap_net_admin requires sudo but is enabled by …
2019-11-02 08:24:34 +00:00
Constantin Rack
c57b2a5cc4
Merge pull request #3729 from bluca/fd_oob
Problem: WSAEventSelect checks for FD_OOB, but select does not
2019-11-01 10:06:18 +00:00
Luca Boccassi
9ced36e407 Problem: WSAEventSelect checks for FD_OOB, but select does not
WSAEventSelect is used on Windows (when select is the polling method)
only if waiting for more than one socket family, excluding IPv4/6.
It is then passed FD_OOB, which means it can be woken by OOB messages,
but select later on never checks for it.
Remove FD_OOB as it's not actually used for anything.
2019-11-01 09:34:03 +00:00
Doron Somech
854354bbd6
Merge pull request #3728 from njsmith/patch-1
Fix typo in email address
2019-10-31 23:30:17 +02:00
Nathaniel J. Smith
4f188fe1ab
Fix typo in email address 2019-10-31 14:02:10 -07:00
Luca Boccassi
30e966fe1b
Merge pull request #3727 from Botje/fix-poller-example
Problem: Poller example has wrong argument order
2019-10-31 18:55:25 +00:00
Dries Harnie
9e4f55d741 RELICENSE: Add grant for Dries Harnie 2019-10-31 19:44:50 +01:00
Dries Harnie
ba6695c59a Problem: zmq_poller example is wrong
Solution: flipped arguments in example
2019-10-31 18:54:07 +01:00
Luca Boccassi
bfa8cf3089 Problem: test_pair_tcp_cap_net_admin requires sudo but is enabled by default in CMake
Solution: add an option to enable it, and default to false. Enable it in
the CI so we don't lose coverage, as it works on Travis.

Fixes #3725
2019-10-31 09:37:22 +00:00
Luca Boccassi
805564b996
Merge pull request #3717 from sigiesec/add-win-ipc-support
Problem: ipc transport not supported under Windows
2019-10-29 23:02:42 +00:00
Simon Giesecke
302436515c Problem: windows socket error number cleared before saved to saved_errno
Solution: call tune_socket only if connect was successful
2019-10-29 23:04:54 +01:00
Simon Giesecke
66d0f3511f Problem: ipc transport not supported under Windows
Solution: implement support
2019-10-29 23:04:54 +01:00
Luca Boccassi
a33f1101dc
Merge pull request #3724 from benjdero/qol-improvements
Add a few quality of life improvements to the Android build scripts
2019-10-28 16:34:33 +00:00
Benjamin Deroche
c1168b2374 Rename my license agreement 2019-10-28 16:48:54 +01:00
Benjamin Deroche
c995032595 Fix android build fail check when using a different locale than english 2019-10-28 16:48:54 +01:00
Benjamin Deroche
0d0899bc0d Download the NDK only the first time 2019-10-28 16:48:54 +01:00
Benjamin Deroche
7ee36a177a Make sure the new file erase the old one and don't get a different name 2019-10-28 16:03:22 +01:00
Benjamin Deroche
947893e79f Keep the unzip quiet but make sure it doesn't fail silently 2019-10-28 16:02:57 +01:00
Doron Somech
11d49d4f47
Merge pull request #3721 from bluca/gnutls_pkg
Problem: libzmq-dev not installable with libczmq-dev on Ubuntu 16.04
2019-10-26 16:21:42 +03:00
Luca Boccassi
44b13a3aa4 Problem: libzmq-dev not installable with libczmq-dev on Ubuntu 16.04
Solution: add alternative dependency as libgnutls-dev | libgnutls28-dev,
so that the resolver can break the tie, as libcurl4-nss-dev depends on
libgnutls-dev which conflicts with libgnutls28-dev
2019-10-26 12:37:18 +01:00
Luca Boccassi
86722502e9
Merge pull request #3720 from BenjaminDeroche/master
Problem: Android build script is severely outdated
2019-10-26 00:04:36 +01:00
Benjamin Deroche
a67f7b09a4 Add the relicense statement 2019-10-26 00:46:49 +02:00
Benjamin Deroche
d2099b7593 Problem: Android build script is severely outdated
Solution: Migrate build scripts from Android NDK r11c to r20.
- Standalone toolchain
- Migration from GCC to Clang
- Migration from libgnustl to libc++
- Dropped support for API level below 16 (Android 4.1), previously it was API level 9 (Android 2.3)
- Dropped support for mips architecture
- The build script now start the build of all 4 Android architectures (arm, arm64, x86, x86_64)
2019-10-25 23:07:04 +02:00
Doron Somech
58deca3fb3
Merge pull request #3716 from sigiesec/fix-winxp-support
Problem: build targeting Windows XP is broken
2019-10-19 09:31:47 -04:00
Simon Giesecke
7f43e7ff75 Problem: build targeting Windows XP is broken
Solution: fix build issues
2019-10-19 14:04:55 +02:00
Luca Boccassi
92e3226869
Merge pull request #3714 from mdionisio/remove_libm
Revert "Problem: pkg-config file cannot be used for static linking on…
2019-10-14 20:44:23 +01:00
Michele Dionisio
9f65720dc0 Revert "Problem: pkg-config file cannot be used for static linking on CentOS 7"
This reverts commit 765c24740d6d2a1e3256ee90dc126d05917ca15d.
2019-10-14 20:43:33 +02:00
Luca Boccassi
683bf1d732
Merge pull request #3713 from mdionisio/useless_ceil
avoid to use std::ceil
2019-10-14 15:53:39 +01:00
Michele Dionisio
f07f47b1e3 avoid to use ceil function
ceil function is usually in math library that can be avoided as dependency
2019-10-14 16:18:27 +02:00
Michele Dionisio
f370cc0070 Add RELICENSE grant for mdionisio
Signed-off-by: Michele Dionisio <michele.dionisio@gmail.com>
2019-10-14 15:21:14 +02:00
Luca Boccassi
c1ff4c2b52
Merge pull request #3711 from yan12125/centos7-static-linking
Fix linking to libzmq.a statically on CentOS 7
2019-10-12 15:46:47 +01:00
Chih-Hsuan Yen
ca30ee78f6
Add relicense note for @yan12125
Based on RELICENSE/templates/relicense-template-mplv2.txt. MPLv2 is
definitely fine, but I'm not sure if I'm OK with other licenses.
2019-10-12 22:37:05 +08:00
Chih-Hsuan Yen
765c24740d
Problem: pkg-config file cannot be used for static linking on CentOS 7
Solution: add -lm to Libs.private of libzmq.pc so that the std::ceil
usage in src/decoder_allocators.cpp is satisfied during static linking
on CentOS 7.

See https://github.com/zeromq/libzmq/issues/3710 for a reproducer.
2019-10-12 22:36:31 +08:00
Doron Somech
96bc59a6ce
Merge pull request #3708 from bluca/gnutls_pkg
Problem: test_wss_transport doesn't compile without DRAFT
2019-10-07 12:54:51 +03:00
Luca Boccassi
5bcb7dc5fe Problem: test_wss_transport doesn't compile without DRAFT
Solution: skip it
2019-10-07 10:50:51 +01:00
Luca Boccassi
688213dbe4
Merge pull request #3706 from somdoron/master
WIP: problem: appveyor is failing
2019-10-07 10:39:52 +01:00
Doron Somech
efb9c5698e
Merge pull request #3707 from bluca/gnutls_pkg
Problem: packages not build with TLS support
2019-10-07 12:26:47 +03:00
Luca Boccassi
be83fe27e2 Problem: RPM builds do not print test failures logs
Solution: add VERBOSE=1
2019-10-07 09:55:42 +01:00
Luca Boccassi
5bfb13032e Problem: packages not build with TLS support
Solution: add dependency to gnutls
2019-10-07 09:55:32 +01:00
Luca Boccassi
de845bd021
Merge pull request #3705 from somdoron/ws_mechanism
problem: zero-sized messages cause assertion when glibc assertion are on
2019-10-07 08:37:32 +01:00
somdoron
cad10d9580 problem: some files are missing in git ignore
solution: add new entries to gitignore
2019-10-07 09:54:53 +03:00
somdoron
55c9e5037f problem: mingw and cygwin builds fail because of line error
Solution: ignore the line error and continue the build
2019-10-07 09:46:43 +03:00
somdoron
2d6a66a81d problem: test_xpub_nodrop fails frequently
Solution: fix the test
2019-10-07 09:46:43 +03:00
somdoron
9b15658eb1 problem: zero-sized messages cause assertion when glibc assertion are on
Solution: when a zero-sized message is encoded or decoded avoid mem copy
2019-10-07 09:11:44 +03:00
Luca Boccassi
539718f35a
Merge pull request #3704 from somdoron/ws_mechanism
problem: GNUTLS handshake is getting blocked because of timeout on some versions
2019-10-06 09:42:56 +01:00
somdoron
618227f63c problem: GNUTLS handshake is getting blocked because of timeout on some versions
Solution: disable handshake timeout
2019-10-06 11:05:56 +03:00
Luca Boccassi
810d3b43d1
Merge pull request #3703 from somdoron/ws_mechanism
problem: wss transport return incorrect return code for error
2019-10-04 19:46:56 +01:00
somdoron
a9bb526403 problem: wss transport return incorrect return code for error
Solution: return -1 for errors
2019-10-04 20:46:00 +03:00
Luca Boccassi
8d9acb72c1
Merge pull request #3702 from somdoron/ws_mechanism
problem: WS transport doesn't support mechanism
2019-10-04 15:38:49 +01:00
somdoron
2018be643a problem: valgrind complain about uninitialized value
Solution: initialize the value
2019-10-04 17:13:48 +03:00
somdoron
977f137a83 problem: cannot check WS and WSS capability
Solution: add capability check to zmq_has
2019-10-04 16:27:36 +03:00
somdoron
41b9af2c79 problem: WS transport doesn't support mechanism
Solution: add support to mechanism
2019-10-04 16:24:48 +03:00
Luca Boccassi
95797422aa
Merge pull request #3701 from JonDyte/master
RELICENSE: add Jon Dyte license grant.
2019-10-03 22:23:32 +01:00
Jon Dyte
9e60dbe780 RELICENSE: add Jon Dyte license grant. 2019-10-03 22:19:20 +01:00
Doron Somech
28f5c9545a
Merge pull request #3700 from bluca/relicense
Add grant by nixman
2019-10-03 15:10:21 +03:00
Luca Boccassi
42408dd9aa Add grant by nixman
Submitted as Github comment:

https://github.com/zeromq/libzmq/pull/242#issuecomment-537903446
2019-10-03 12:36:54 +01:00
Luca Boccassi
1c7ed2484b
Merge pull request #3698 from ThePrez/ibmi
Add IBM i build support
2019-10-03 08:51:04 +01:00
ThePrez
94f92b64ed
Add IBM i to platform list 2019-10-02 17:40:34 -05:00
ThePrez
fb2db30b19
Add relicense notice 2019-10-02 17:28:54 -05:00
ThePrez
25320a3c7b
Add IBM i build support via 'os400' clause 2019-10-02 15:21:28 -05:00
Luca Boccassi
9bb6b21423
Merge pull request #3695 from somdoron/tls
problem: unsecured websocket is rarely used in production
2019-10-02 09:04:38 +01:00
somdoron
7296fb5b15 problem: unsecured websocket is rarely used in production
Solution: support websocket with tls (wss)
2019-10-02 08:58:26 +03:00
Doron Somech
2e9b2f8843
Merge pull request #3696 from bluca/relicense
Add grant by MongoDB, Inc.
2019-10-01 21:47:04 +03:00
Luca Boccassi
a43f03316e Add grant by MongoDB, Inc.
Received by Github comment:
https://github.com/zeromq/libzmq/pull/1451#issuecomment-537169373
2019-10-01 19:39:08 +01:00
Luca Boccassi
8fe620901f
Merge pull request #3690 from ipechorin/master
Add relicense grant
2019-09-24 22:52:22 +01:00
Ivan Pechorin
598d9babf6 Add relicense grant 2019-09-25 09:39:22 +12:00
Luca Boccassi
4ebe92333e
Merge pull request #3687 from trya/fix_conflate
Fix behavior of ZMQ_CONFLATE on PUB sockets
2019-09-24 11:45:15 +01:00
trya
2fe9dd9101 Problem: ZMQ_CONFLATE on PUB sockets delivers to only one subscriber at most
Solution: Fix behavior of dbuffer on writes. Message passed in argument
of dbuffer::write can be assigned directly to the back buffer without
leaking, since the message has already the right reference count (see
dist::distribute and msg_t::add_refs). Secondly, in order to prevent the
message pending in the front buffer from leaking if it hasn't been
closed yet (for example because the peer is not reachable anymore), move
back buffer to front buffer using msg_t::move instead of swapping the
buffers, thus allowing release of the message in the front buffer.
2019-09-24 02:57:24 +02:00
Luca Boccassi
38b485dd75
Merge pull request #3685 from trya/relicensing
Add relicense grant
2019-09-23 20:50:53 +01:00
Luca Boccassi
f24c019ec1
Merge pull request #3686 from trya/doc_sock_block
Fix documentation about sockets blocking on send operations
2019-09-23 20:50:44 +01:00
trya
45e1fc059b Add relicense grant 2019-09-23 02:17:03 +02:00
trya
4378d71247 Problem: Documentation about socket blocking on send operations is incorrect
Solution: Reflect real behavior of sockets blocking on send operations
Sockets that block in mute state only block when no peer is available if
the transport is connection-oriented and the ZMQ_IMMEDIATE socket option
is set.
2019-09-23 02:13:04 +02:00
Luca Boccassi
8d34332ff2
Merge pull request #3683 from dimpase/patch-1
Allow "configure --disable-maintainer-mode"
2019-09-19 07:56:45 +02:00
Dima Pasechnik
3290faa8e6 relicense by dimpase 2019-09-18 23:09:01 +01:00
Dima Pasechnik
a25e3168bb
Allow "configure --disable-maintainer-mode"
Allow "configure --disable-maintainer-mode" to disable timestamp checking.
This is useful for one-off builds, in particular on e.g. clusters, where slightly skew clocks force aclocal and friends to kick in for no good reason.
2019-09-18 16:20:22 +01:00
Simon Giesecke
d76664017c
Merge pull request #3681 from TobiSchluter/bugfix/dont_include_winsock2
Bugfix/dont include winsock2
2019-09-13 09:34:16 +02:00
Tobias Schlüter
38d144731d Add relicensing file 2019-09-13 14:18:38 +09:00
Tobias Schlüter
cb211e4f1e Problem: inclusion of winsock2.h leads to ordering issues in user code.
Solution: don't include winsock2.h, replace its only use (reference to SOCKET) by explicitly naming underlying type.
2019-09-13 14:15:37 +09:00
Doron Somech
3ecaf9fe6e
Merge pull request #3680 from bluca/nss_pkg
Problem: nss package has different name on SUSE
2019-09-12 13:45:26 +03:00
Luca Boccassi
bd5220c505 Problem: nss package has different name on SUSE
Solution: fix it in the spec file
2019-09-12 11:16:46 +01:00
Doron Somech
9b4deeffdb
Merge pull request #3679 from bluca/nss_pkg
Problems: packages not building with nss, build fails on SUSE Tumbleweed, too many Travis builds
2019-09-12 12:08:34 +03:00
Luca Boccassi
3e4c90bbf4 Problem: package build fails on SUSE Tumbleweed
Solution: add -ffat-lto-objects if the compiler supports it
2019-09-11 16:02:10 +01:00
Luca Boccassi
79535f39ca Problem: there are already many Travis builds
Solution: do not add one specifically for nss, but use the existing
catch-all build
2019-09-11 15:46:00 +01:00
Luca Boccassi
5dd433501f Problem: packages are not build with nss
Solution: add relevant dependencies
2019-09-11 15:45:37 +01:00
Luca Boccassi
9acdafb001 Problem: spec file includes libsodium-devel twice
Solution: only do it once if the macro is enabled
2019-09-11 15:44:35 +01:00
Luca Boccassi
adf348b667
Merge pull request #3677 from somdoron/sha1_conflict
problem: sha external file conflict with czmq
2019-09-11 15:36:17 +01:00
somdoron
2fb9e93cfa problem: ci doesn't build with nss
Solution: add an nss build to CI
2019-09-11 15:01:28 +03:00
somdoron
9be8334938 problem: sha1 external module conflict with czmq
Solution: allow to use external library (nss) for sha1 to avoid the conflict
2019-09-11 15:01:28 +03:00
Luca Boccassi
e756743a12
Merge pull request #3674 from herbrechtsmeier/relicense
RELICENSE: add grant from Stefan Herbrechtsmeier
2019-09-09 19:46:34 +01:00
Stefan Herbrechtsmeier
f505e02988 RELICENSE: add grant from Stefan Herbrechtsmeier 2019-09-09 20:42:32 +02:00
Luca Boccassi
be0f52fe57
Merge pull request #3673 from jcfr/relicense-jcfr
Relicense: Jean-Christophe Fillion-Robin
2019-09-09 15:00:27 +01:00
Doron Somech
0858038367
Merge pull request #3672 from bluca/relicense
Relicense granby by RPGillespie6
2019-09-07 09:08:59 +03:00
Luca Boccassi
a643e58902 Relicense granby by RPGillespie6
Received by Github comment:
https://github.com/zeromq/libzmq/pull/2536#issuecomment-528961084
2019-09-07 00:23:21 +01:00
Luca Boccassi
064d5438e6
Merge pull request #3671 from somdoron/ws_protocol
problem: ws_engine doesn't check Sec-WebSocket-Protocol
2019-09-05 22:55:06 +01:00
somdoron
52e0d965b3 problem: ws_engine doesn't check Sec-WebSocket-Protocol
Solution: Validate Sec-WebSocket-Protocol and make sure ZWS2.0 is one of the protocols
2019-09-05 23:11:29 +03:00
Luca Boccassi
df1bec03c0
Merge pull request #3670 from somdoron/ws_host_path
problem: ws_engine doesn't send correct host and path
2019-09-05 20:57:33 +01:00
somdoron
a48fdd6a7f problem: ws_engine doesn't send correct host and path
Solution: extract path and host from the address
2019-09-05 17:33:38 +03:00
Luca Boccassi
3413e05bd0
Merge pull request #3668 from UniStuttgart-VISUS/master
Safer regex replace, keeping options like "/Zc:twoPhase-" intact
2019-09-04 21:55:29 +01:00
Alexander Straub
00cf36e933 Added relicense 2019-09-04 20:40:12 +02:00
Alexander Straub
2ec56d25b6 Safer regex replace, keeping options like "/Zc:twoPhase-" intact 2019-09-04 19:41:34 +02:00
Luca Boccassi
a084deb0b2
Merge pull request #3666 from diorcety/license
Relicense: diorcety
2019-09-04 14:24:10 +01:00
Yann Diorcet
0bbe531861 Relicense: diorcety 2019-09-04 15:21:44 +02:00
Luca Boccassi
4256e5413c
Merge pull request #3664 from cbusbey/relicense
grant relicense
2019-09-03 18:07:52 +01:00
chris busbey
ccabb48265 grant relicense 2019-09-03 11:52:27 -05:00
Jean-Christophe Fillion-Robin
3d656e1ff1 Relicense: Jean-Christophe Fillion-Robin 2019-09-03 09:18:18 -04:00
Simon Giesecke
e33eedc663
Merge pull request #3661 from bluca/autoconf_static_only
Problem: static-only test run fails
2019-09-03 09:43:26 +02:00
Simon Giesecke
223e9266e0
Merge pull request #3662 from bluca/relicense
Grant by psl-felipefarinon
2019-09-02 19:11:51 +02:00
Luca Boccassi
9785e37875 Grant by psl-felipefarinon
Received via Github message:

https://github.com/zeromq/libzmq/pull/751#issuecomment-527205167
2019-09-02 18:02:33 +01:00
Luca Boccassi
2fe2ce1e37 Problem: static-only test run fails
Solution: add libtestutil.a before libzmq.a in LDADD listings, as the
linker will complain about undefined symbols otherwise

Fixes https://github.com/zeromq/libzmq/issues/3646
2019-09-02 12:11:25 +01:00
Doron Somech
21bfa58dad
Merge pull request #3660 from bluca/relicense
Grant by kreuzberger
2019-09-02 13:53:01 +03:00
Luca Boccassi
10aea5c65d Grant by kreuzberger
Received via Github comment:
https://github.com/zeromq/libzmq/pull/1374#issuecomment-527100078
2019-09-02 11:45:54 +01:00
Doron Somech
826e7db7be
Merge pull request #3659 from bluca/xpub_user_msg
Problem: can no longer send user data from XSUB to XPUB
2019-09-02 13:36:30 +03:00
Luca Boccassi
6fb8ef0711 Problem: can no longer send user data from XSUB to XPUB
Solution: fix regression introduced by:
https://github.com/zeromq/libzmq/pull/3168

Correctly fall back to user message if the first byte is neither 0 nor
1, and add a simple unit test

Fixes https://github.com/zeromq/libzmq/issues/3656
2019-09-02 11:33:19 +01:00
Doron Somech
c737e5720f
Merge pull request #3654 from bluca/relicense
Grant by skaller
2019-09-01 07:39:47 +03:00
Luca Boccassi
1925bdccb1 Grant by skaller
Received via email, message-id:
B7B30120-05AF-4A53-8023-D9C092DE0873@internode.on.net
2019-08-31 23:54:49 +01:00
Doron Somech
62fe9bf147
Merge pull request #3653 from rcxdude/master
Add relicense permission
2019-09-01 00:35:05 +03:00
Douglas Young
ecc2eb42ce Add relicense permission 2019-08-31 22:29:41 +01:00
Constantin Rack
017e7d3605
Merge pull request #3652 from mvilim/relicense
Relicense permission
2019-08-31 21:32:31 +02:00
Michael Vilim
a55f2a52e3 Relicense permission 2019-08-31 14:04:26 -05:00
Luca Boccassi
3e3c3d7ba5
Merge pull request #3651 from brian-peloton/master
Add relicense grant
2019-08-31 19:37:45 +01:00
Doron Somech
41a58da49c
Merge pull request #3650 from bluca/relicense
Grant by dmeehan1968
2019-08-31 20:41:49 +03:00
Luca Boccassi
8a3140064f Grant by dmeehan1968
Received via Github comment:
https://github.com/zeromq/libzmq/pull/1082#issuecomment-526840485
2019-08-31 16:46:52 +01:00
Doron Somech
db8447d3b1
Merge pull request #3649 from bluca/relicense
Grants by paddor and mbarbisan
2019-08-31 17:27:35 +03:00
Luca Boccassi
757ae967cf Grant by paddor
Received by Github message:
https://github.com/zeromq/libzmq/pull/2121#issuecomment-526833407
2019-08-31 15:19:36 +01:00
Luca Boccassi
1a0d52db05 Grant by mbarbisan
Received via email, message-id:

CAL4jiWydU5KjXEf1LKKObMgOEfQJVV36zgBY8U5JaXx3mP8c5A@mail.gmail.com
2019-08-31 15:19:18 +01:00
Simon Giesecke
e30186cb00
Merge pull request #3648 from bluca/relicense
Grants by jbreams and DaiyuHurst
2019-08-31 16:03:01 +02:00
Luca Boccassi
b566e2cc77 Grant by jbreams
Received as Github comment:
https://github.com/zeromq/libzmq/pull/1451#issuecomment-526832003
2019-08-31 14:57:53 +01:00
Luca Boccassi
48c6290888 Grant by DaiyuHurst
Received as Github comment:
https://github.com/zeromq/libzmq/pull/1283#issuecomment-526831846
2019-08-31 14:57:43 +01:00
Doron Somech
a76233b727
Merge pull request #3647 from msune/msune_licensing
RELICENSE: add relicense agreement from msune
2019-08-31 12:34:08 +03:00
Marc Sune
ea9d948cde RELICENSE: add relicense agreement from msune
Add RELICENSE document for msune contributions, both for:

* marcdevel at gmail dot com
* marc at voltanet io
2019-08-31 11:27:55 +02:00
Francesco Montorsi
b3582da8fb Introduce extended set/get methods for ZMQ contexts (#3642)
* Introduce DRAFT zmq_ctx_set_ext() and zmq_ctx_get_ext() methods. Change
ZMQ_THREAD_NAME_PREFIX to allow for non-numeric thread name prefixes.
2019-08-27 23:41:23 +01:00
Andrei Tomashpolskiy
2aa87c94cc UDP engine aborts on networking-related errors from socket syscalls (2) #2862 (#3640)
* UDP engine aborts on networking-related errors from socket syscalls #2862
2019-08-25 15:55:42 +01:00
Doron Somech
7559d2daaf
Merge pull request #3639 from sigiesec/fix-win-binaries
Problem: appveyor binary archives do not contain import libraries
2019-08-23 11:57:26 +02:00
Simon Giesecke
c1377ff168 Problem: appveyor binary archives do not contain import libraries
Solution: include all *.lib files
2019-08-23 11:29:10 +02:00
Andrei Tomashpolskiy
f48c86d077 UDP engine aborts on networking-related errors from socket syscalls #2862 (#3638)
* UDP engine aborts on networking-related errors from socket syscalls #2862

* Add relicense statement
2019-08-22 18:52:31 +01:00
Luca Boccassi
e492dea80e
Merge pull request #3637 from spotify/relicense
Add relicense agreement from Spotify AB
2019-08-21 19:04:44 +01:00
Nick Platt
74e7ee0e66
Add relicense agreement from Spotify AB 2019-08-21 13:52:15 -04:00
Luca Boccassi
56ace6d03f
Merge pull request #3636 from schulzch/cmake-precompiled
[CMake] Add ENABLE_PRECOMPILED option
2019-08-21 13:32:15 +01:00
Christoph Schulz
878f1d51f5 Add ENABLE_PRECOMPILED option.
You might want to disable this flag when building with Ninja.
2019-08-21 14:02:31 +02:00
Luca Boccassi
9bb197e030
Merge pull request #3613 from TomzBench/mingw-fix
no void pointer to store function pointer
2019-08-19 11:15:29 +01:00
Simon Giesecke
1d21d2f4e4
Merge pull request #3634 from bluca/relicense
RELICENSE: add grant by Daniel Krikun
2019-08-19 11:20:29 +02:00
Luca Boccassi
205c52009d RELICENSE: add grant by Daniel Krikun
Received via email, message-id:
CAMohcw2mZMPku8OV0Ge0-8+D3a6ayLR=6ivWjVmT0UU_ejZxiA@mail.gmail.com
2019-08-19 09:17:38 +01:00
Simon Giesecke
e9b67001dd
Problem: invalid syntax for calling convention on function pointer
Solution: fix syntax and formatting, remove C-ism for defining struct
2019-08-19 10:13:11 +02:00
Luca Boccassi
19f2d9e529
Merge pull request #3633 from Neopallium/master
Re-license Robert G. Jakabosky (Neopallium)
2019-08-17 10:37:30 +01:00
Robert Gabriel Jakabosky
d63a00b98f
Re-license Robert G. Jakabosky (Neopallium) 2019-08-17 16:06:22 +08:00
Brian Silverman
f4cbe4ba45 Add relicense grant 2019-08-14 13:20:42 -07:00
Luca Boccassi
5de89531f2
Merge pull request #3632 from Suudy/master
RELICENSE:  Add relicensing grant
2019-08-14 16:48:49 +01:00
Pete LaDow
65e67b32bf RELICENSE: Add relicensing grant 2019-08-14 08:33:19 -07:00
Luca Boccassi
ab51e0a81f
Merge pull request #3626 from bluca/relicense
RELICENSE: chymanfx
2019-08-13 14:48:01 +01:00
Luca Boccassi
48ea043311
Merge pull request #3630 from hnwyllmm/patch-1
Adds relicensing grant
2019-08-13 08:31:49 +01:00
Laughing
5650bbab1d
Adds relicensing grant
Adds relicensing grant
2019-08-13 14:56:30 +08:00
Luca Boccassi
66a228ef46
Merge pull request #3628 from murphybytes/murphybytes-relicense
RELICENSE: John Murphy
2019-08-12 15:06:22 +01:00
John Murphy
9d53203ccf relicensing 2019-08-12 08:38:24 -05:00
Luca Boccassi
e8e13c17ad
Merge pull request #3627 from f18m/master
Scripts for graphing benchmark results
2019-08-12 10:24:55 +01:00
Luca Boccassi
e979988d66 RELICENSE: chymanfx
Grant received by PR comment:
https://github.com/zeromq/libzmq/pull/3195#issuecomment-520338586
2019-08-12 10:03:59 +01:00
Luca Boccassi
78c435044d
Merge pull request #3625 from jlauenercern/master
RELICENSE: Joel Lauener
2019-08-12 09:58:14 +01:00
Joel Lauener
95176a53a4 RELICENSE: Joel Lauener 2019-08-12 10:41:11 +02:00
dhammika
a979a99523 Add relicense grant (#3624)
* Add relicense grant

Signed-off-by: Dhammika Pathirana <dhammika@gmail.com>
2019-08-12 09:13:50 +01:00
Simon Giesecke
057331e3f9
Merge pull request #3623 from miniway/relicense
Relicense permission
2019-08-12 08:29:36 +02:00
Min(Dongmin Yu)
b00494226c Relicense permission 2019-08-12 13:23:37 +09:00
Luca Boccassi
c87215380a
Merge pull request #3622 from jens-auer/master
Add relicense statement
2019-08-11 21:49:52 +01:00
Jens Auer
cc83fed11a Add relicense statement 2019-08-11 22:06:28 +02:00
Doron Somech
8443313e0b
Merge pull request #3621 from bluca/relicense
RELICENSE: Aleksander Melnikov
2019-08-11 18:38:05 +03:00
Luca Boccassi
3c951f7d1c
Merge pull request #3620 from bebopagogo/master
Add relicense agreement from Brian Adamson
2019-08-11 16:34:18 +01:00
Luca Boccassi
3bb2a0d487 RELICENSE: Aleksander Melnikov
Grant received via Github PR comment:

https://github.com/zeromq/libzmq/pull/1413#issuecomment-520233278
2019-08-11 16:32:45 +01:00
bebopagogo
becf469865 Add relicense agreement from Brian Adamson 2019-08-11 11:30:36 -04:00
Doron Somech
e161907db9
Merge pull request #3619 from bluca/relicense
Fix formatting and add relicense for mesegura
2019-08-11 16:22:31 +03:00
Luca Boccassi
87988bf4c8 Problem: formatting error
Solution: run make clang-format-diff to fix it
2019-08-11 12:00:13 +01:00
Luca Boccassi
6b71823ad0
Merge pull request #3618 from AxelNennker/master
relicense
2019-08-11 11:41:47 +01:00
Axel Nennker
3c8f4a431e relicense
Signed-off-by: Axel Nennker <axel.nennker@telekom.de>
2019-08-11 12:38:19 +02:00
Luca Boccassi
edc266b3ab RELICENSE: Manuel Segura
Received via email on 10/08/2019, message-id:

CALdfLGZ1N4EkK+kB735_3apOg1QKU5fUz5BWtFmj6BjYv7fN+g@mail.gmail.com
2019-08-11 11:29:27 +01:00
Luca Boccassi
c0db5c3ae3
Merge pull request #3617 from claws/relicense_permission
Relicense permission
2019-08-11 10:37:30 +01:00
Chris Laws
cd4fac3a0c relicense permission 2019-08-11 18:17:08 +09:30
Simon Giesecke
db82835995
Merge pull request #3616 from dennisklein/relicense_permission
RELICENSE permission
2019-08-11 08:16:51 +02:00
Dennis Klein
c44be4aa60
RELICENSE permission 2019-08-11 03:51:59 +02:00
Luca Boccassi
1ef3a68629
Merge pull request #3615 from drbobbeaty/master
Added my relicense doc
2019-08-10 22:27:46 +01:00
Simon Giesecke
4e7a58b983
Merge pull request #3614 from garlick/relicense_garlick
Add relicense agreement from Jim Garlick
2019-08-10 22:12:36 +02:00
Bob Beaty
7d8c86241c Added my relicense doc
Just following the instructions in the email to add my agreement.
2019-08-10 14:28:05 -05:00
Jim Garlick
304843373c Add relicense agreement from Jim Garlick 2019-08-10 11:01:53 -07:00
thomas
64d58c432c relicense add 2019-08-10 11:15:26 -04:00
Luca Boccassi
ec0aa6cef6
Merge pull request #3612 from fanquake/travis_sudo_deprecated
problem: sudo:false has been deprecated by Travis CI
2019-08-10 15:57:21 +01:00
thomas
87b81926aa no void pointer to store function pointer 2019-08-10 10:43:28 -04:00
fanquake
114b1f9516
problem: no relicensing agreement for fanquake
solution: add relicensing agreement for fanquake
2019-08-10 19:56:30 +08:00
fanquake
abe26f0dc3
problem: sudo:false has been deprecated by Travis CI
solution: remove sudo:false usage from travis.yml

Travis has deprecated the usage of sudo:false in travis.yml.
See this blog post for more details: https://blog.travis-ci.com/2018-11-19-required-linux-infrastructure-migration
Also: https://docs.travis-ci.com/user/reference/trusty/#container-based-infrastructure
2019-08-10 19:54:41 +08:00
fmontorsi
5f95e53e0f Allow to graph results from TCP links at 100Gbps nicely. 2019-08-08 11:40:33 +02:00
fmontorsi
9cdef8aa0c Better script for performance tests 2019-08-08 11:18:05 +02:00
Luca Boccassi
b66b2857ad
Merge pull request #3610 from hxw/master
Re-license grant + suggested readme update
2019-08-07 08:18:44 +01:00
Christopher Hall
4cd39feb68 Add re-license grant file
Signed-off-by: Christopher Hall <hsw@ms2.hinet.net>
2019-08-07 11:46:49 +08:00
Christopher Hall
62d8346447 add DragonFly BSD to platforms list
Signed-off-by: Christopher Hall <hsw@ms2.hinet.net>
2019-08-07 11:36:00 +08:00
Simon Giesecke
c3eab89e53
Merge pull request #3608 from hxw/master
[DragonFlyBSD] fix for IPv4 mapping not supported
2019-08-06 08:07:52 +02:00
Christopher Hall
72854e6342 problem: DragonFly BSD does not allow mapping global IPv4 addresses when IPv6 is used
solution: Handle as for OpenBSD by not attemption to set this option on the socket

Signed-off-by: Christopher Hall <hsw@ms2.hinet.net>
2019-08-06 12:11:06 +08:00
Christopher Hall
ba679bcce8 problem: configure for DragonFly need FreeBSD also defined
solution: on DragonFly also define ZMQ_HAVE_FREEBSD
          in addition to ZMQ_HAVe_DRAGONFLY

Signed-off-by: Christopher Hall <hsw@ms2.hinet.net>
2019-08-06 12:11:00 +08:00
Luca Boccassi
6b6043600e
Merge pull request #3607 from f18m/master
Add scripts to ease performance graph generation
2019-08-04 19:38:13 +01:00
Francesco Montorsi
877c32dc3d Add scripts to ease performance graph generation 2019-08-04 01:48:03 +02:00
Simon Giesecke
21a0815f2f
Merge pull request #3605 from bl0x/master
Fix build on SL6.9. Fix #3603.
2019-08-01 08:46:05 +02:00
bl
5a519e1686 Add RELICENSING statement for bl0x. 2019-08-01 05:51:13 +02:00
bl
45243cd009 Fix build on SL6.9. Fix #3603. 2019-08-01 05:43:55 +02:00
Simon Giesecke
a8d19057b1
Merge pull request #3602 from bluca/formatting
Problem: formatting errors introduced by #3601
2019-07-30 18:11:02 +02:00
Luca Boccassi
4d5e97adac Problem: formatting errors introduced by #3601
Solution: fix them with make clang-format-diff
2019-07-30 13:43:48 +01:00
Luca Boccassi
9dcbdd1b09
Merge pull request #3601 from jacquesg/win32threadname
mingw thread name fix
2019-07-30 13:42:18 +01:00
Jacques Germishuys
b3123a2fd1 Problem: __try and __except isn't universally supported on windows
Solution: Manually push/pop an exception registration record.
Only set the thread name with a debugger present
2019-07-30 11:31:22 +01:00
Luca Boccassi
47fc979b2a
Merge pull request #3600 from drbitboy/master
Problem:  include/zmq.h is not so much broken as inconsistent in
2019-07-27 11:38:57 +01:00
Brian Carcich
853aa9801e Problem: include/zmq.h is not so much broken as inconsistent in
how it declares the file descriptor (fd) of a socket
          in struct zmq_pollitem_t vs. struct zmq_poller_event_t

Solution:  Make include/zmq.h consistent in this matter
2019-07-26 20:31:44 -04:00
Luca Boccassi
20a4e4d1be
Merge pull request #3598 from ssbl/contributing
Problem: PR template is mostly about contributing guidelines
2019-07-26 22:47:10 +01:00
Shubham Lagwankar
475a029514 Problem: PR template is mostly about contributing guidelines
Solution: rename it to CONTRIBUTING.md so that it is shown when
creating a pull request or issue
2019-07-26 13:11:52 -04:00
Luca Boccassi
ed4317b0e9
Merge pull request #3597 from ssbl/redundant-check
Problem: redundant check in condition
2019-07-26 17:57:57 +01:00
Shubham Lagwankar
f07d88be09 Problem: redundant check in condition
Solution: remove it
2019-07-26 11:43:57 -04:00
Luca Boccassi
49f4ef1759
Merge pull request #3595 from aixxe/master
Problem: Usage of 'if_nametoindex' not supported in Windows XP.
2019-07-25 23:40:00 +01:00
aixxe
63409579e7
Problem: Usage of 'if_nametoindex' not supported in Windows XP.
Solution: Add ZMQ_HAVE_WINDOWS_TARGET_XP check to src/udp_address.cpp.
2019-07-25 20:38:54 +01:00
Luca Boccassi
69e451c1fa
Merge pull request #3594 from mancasg/master
Problem: stream_engine use after free
2019-07-24 15:53:10 +01:00
Mancaș George
1bbbd77ac4 RELICENSE: Mancaș George grant 2019-07-24 13:11:11 +00:00
Mancaș George
13387c5cdc Problem: stream_engine use after free
Solution: Don't allow concurrent heartbeat timers
2019-07-24 13:04:32 +00:00
Luca Boccassi
60cca513a1
Merge pull request #3593 from jean-airoldie/doc_poller
Problem: behavior of closing a socket registered...
2019-07-24 11:03:14 +01:00
jean-airoldie
1bd94a979d Problem: behavior of closing a socket registered...
...in a poller is not documented.
Solution: Document it.
2019-07-24 05:59:29 -04:00
Luca Boccassi
c83fa74767
Merge pull request #3591 from jean-airoldie/max_sockets
Problem: incorrect ZMQ_MAX_SOCKETS default value in doc
2019-07-23 09:07:51 +01:00
jean-airoldie
7675995fe8 Problem: incorrect ZMQ_MAX_SOCKETS default value in doc
Solution: update the doc with the correct default value
2019-07-22 20:37:00 -04:00
Luca Boccassi
49636f4c88
Merge pull request #3588 from inuik/master
CMake: Install debug libraries for debug msvc builds
2019-07-22 22:13:28 +01:00
Rishi Theivendran
afa11b0dfd Copy debug libraries for debug builds 2019-07-18 10:09:25 -04:00
Luca Boccassi
a56d36b8e5
Merge pull request #3587 from somdoron/stream_engine_base
problem: ws_engine duplicate code from stream_engine
2019-07-18 11:57:27 +01:00
somdoron
157b2a2ee0 problem: ws_engine duplicate code from stream_engine
Solution: New class called stream_engine_base which is inherited by ws_engine, zmtp_engine and raw_engine.
2019-07-18 11:28:08 +03:00
Doron Somech
184e7a55e5
Merge pull request #3585 from bluca/fixes
Problem: build on centos6/ubuntu12 still broken
2019-07-16 21:51:33 +03:00
Luca Boccassi
7262701876 Problem: build on centos6/ubuntu12 still broken
Solution: move the definition of __STDC_LIMIT_MACROS somewhere the test actually uses
2019-07-16 18:15:47 +01:00
Doron Somech
efd7188760
Merge pull request #3584 from bluca/fixes
Problems: build broken on centos6/ubuntu12, missing licenses and wrong copyright dates
2019-07-16 19:54:20 +03:00
Luca Boccassi
496c8eb05a Problem: missing copyright and license header from new file
Solution: add it
2019-07-16 17:37:40 +01:00
Luca Boccassi
10a0baf691 Problem: wrong copyright dates in newly added files
Solution: fix them
2019-07-16 17:36:44 +01:00
Luca Boccassi
38c31154d0 Problem: build broken with older compilers
Solution: define __STDC_LIMIT_MACROS before including stdint.h so that SIZE_MAX
is defined
2019-07-16 17:34:58 +01:00
Luca Boccassi
021c6a706b Problem: no license.txt file for external/sha1/
Solution: add it and mention the inclusion in NEWS
2019-07-16 17:27:01 +01:00
Luca Boccassi
3692b26649
Merge pull request #3579 from somdoron/zws2
problem: browser cannot communicate with zeromq directly
2019-07-16 13:28:30 +01:00
Luca Boccassi
feeed3f27e
Merge pull request #3580 from sigiesec/use-libsodium-based-allocator
Use libsodium based allocator
2019-07-16 13:10:34 +01:00
Simon Giesecke
4756ff3046 Problem: use of tweetnacl vs. libsodium is ambiguous
Solution: properly set defines from test_security_curve
2019-07-16 09:39:29 +02:00
somdoron
39941a0c82 problem: browser cannot communicate with zeromq directly
Solution: implement ZWS 2.0 which websocket transport for zeromq
2019-07-16 10:12:20 +03:00
Simon Giesecke
1781cff37b Problem: plaintext secrets placed in insecure memory
Solution: Use secure_allocator_t for plaintext secrets
2019-07-14 17:12:39 +02:00
Simon Giesecke
92dbb4caee Problem: no C++ style secure memory allocator available
Solution: Added secure_allocator_t based on libsodium's memory management functions when available
2019-07-14 17:12:39 +02:00
Simon Giesecke
8a7a9cb90f Problem: clang-format produces C++11 style nested templated arguments
Solution: Fixed C++ standard in clang-format config
2019-07-12 18:04:30 +02:00
Simon Giesecke
d9dce8f068
Merge pull request #3578 from ssbl/unused-parameter
Problem: unused parameter in benchmark function
2019-07-12 17:49:04 +02:00
Shubham Lagwankar
e26f094193 Problem: unused parameter in benchmark function
Solution: remove it
2019-07-12 11:29:14 -04:00
Doron Somech
9c5cf8573c
Merge pull request #3573 from sigiesec/use-std-vector
Problem: use of malloc is error-prone
2019-07-10 20:07:33 +03:00
Simon Giesecke
02f7dca678
Merge pull request #3570 from bluca/static_analysis
Static analysis warnings
2019-07-10 18:49:10 +02:00
Simon Giesecke
1de4cf6ffa Problem: use of malloc is error-prone
Solution: use std::vector instead, simplify control-flow
2019-07-10 18:26:58 +02:00
Luca Boccassi
77cd206100 Problem: errors do not fail ABI CI test
Solution: set -e in ci_build.sh like in other scripts
2019-07-10 17:08:29 +01:00
Luca Boccassi
eec972a5b4 Problem: unused variable in test tool
Solution: don't write it
2019-07-09 18:10:25 +01:00
Luca Boccassi
c819eedd89 Problem: missing rc checks in udp_engine
Solution: add them
2019-07-09 17:25:58 +01:00
Simon Giesecke
b5db4b4421
Merge pull request #3568 from somdoron/master
problem: wrong api_key for bintray
2019-07-09 09:37:38 +02:00
somdoron
71decb996d problem: wrong api_key for bintray
Solution: update it
2019-07-09 10:30:29 +03:00
Simon Giesecke
89ac4a0f6c
Merge pull request #3566 from TomMD/fix/leaks
Free memory when curve_client sends invalid ready message.
2019-07-09 09:19:24 +02:00
Simon Giesecke
b99bf4e1ce
Merge pull request #3567 from myd7349/fix-include-dir
Problem: Missing ZeroMQ_INCLUDE_DIR when only static lib is built
2019-07-09 09:01:21 +02:00
myd7349
bb3fa9c048
Problem: Missing ZeroMQ_INCLUDE_DIR when only static lib is built 2019-07-09 13:50:24 +08:00
Thomas M. DuBuisson
90ff30c086 Free memory when curve_client sends invalid ready message. 2019-07-08 21:05:36 -07:00
Doron Somech
27057263cd
Merge pull request #3565 from bluca/newver
Problem: 4.3.2 is out, need new version
2019-07-08 20:02:49 +03:00
Luca Boccassi
491a0ae107 Problem: 4.3.2 is out, need new version
Solution: bump to 4.3.3
2019-07-08 17:57:12 +01:00
Luca Boccassi
a84ffa12b2 Finalize changelog for 4.3.2 2019-07-08 17:06:38 +01:00
Doron Somech
fa82aa1120
Merge pull request #3564 from bluca/news
CVE-2019-13132
2019-07-08 19:03:58 +03:00
Luca Boccassi
c2488ed520 Problem: packaging versions out of date
Solution: bump them
2019-07-08 16:18:00 +01:00
Luca Boccassi
f5f1880b58 Problem: NEWS not up to date for v4.3.2
Solution: list new features and bug fixes
2019-07-08 16:18:00 +01:00
Luca Boccassi
0f01fb5134 Problem: markdown errors in zmq_getsockopt.txt
Solution: fix them
2019-07-08 10:47:27 +01:00
Luca Boccassi
8e6bafcbe0 Problem: application metadata not parsed correctly when using CURVE
Solution: create buffers large enough to contain arbitrary metadata
2019-07-08 10:47:27 +01:00
Luca Boccassi
ddd0da2f57
Merge pull request #3476 from TomMD/fix/memory-leak
Request handling leaked memory.  Depending on the application's use o…
2019-07-06 10:05:25 +01:00
Thomas M. DuBuisson
367cedb7c6 Fix request-handling memory leak 2019-07-05 16:53:46 -07:00
Thomas M. DuBuisson
2c89c069a9 Tommd relicensing statement 2019-07-05 16:53:46 -07:00
Luca Boccassi
5368ae0571
Merge pull request #3562 from bear-metal/lourens-relicense
Add relicense agreement from Lourens Naudé
2019-07-01 23:43:35 +01:00
Lourens Naudé
3ec1bf5096 Add relicense agreement from Lourens Naudé 2019-07-01 22:43:34 +01:00
Simon Giesecke
5f8a7b1c22
Merge pull request #3561 from zeromq/secpolicy
Problem: no security policy
2019-06-30 17:03:33 +02:00
Luca Boccassi
153deece66
Problem: no security policy
Solution: add SECURITY.md with supported branches and maintainers public keys for private communications
2019-06-30 16:00:41 +01:00
Luca Boccassi
d5067df2dd
Merge pull request #3559 from ssbl/inconsistent-naming-convention-fix
Problem: code doesn't follow libzmq naming conventions
2019-06-28 18:20:38 +01:00
Shubham Lagwankar
1186e9868a Problem: code doesn't follow libzmq naming conventions
Solution: rename types/variables that are inconsistent
2019-06-28 11:57:45 -04:00
Doron Somech
4a855fba8c
Merge pull request #3557 from bluca/docs
Clarify documentation for zmq_unbind/disconnect and new batch options
2019-06-27 21:07:59 +03:00
Luca Boccassi
364561953a Problem: zmq_disconnect documentation is confusing and breaks semantics
Solution: restore separate zmq_unbind documentation, adding a note that the implementation
might be shared but the semantics are different and should not be mixed.
This avoids tying the API to the implementation details which might change for some
engines.
2019-06-27 18:23:26 +01:00
Luca Boccassi
eba6fb2988 Problem: ZMQ_IN/OUT_BATCH_SIZE are dangerous
Solution: clearly advise users to avoid them in all cases to
avoid unforseen problems.
Also fix markdown syntax, applicable transport types and getter description.
2019-06-27 18:23:26 +01:00
Luca Boccassi
a43c842e0d
Merge pull request #3556 from ssbl/better-names
Problem: variable and type names are not descriptive
2019-06-27 18:23:19 +01:00
Luca Boccassi
68b744fac5
Merge pull request #3555 from jean-airoldie/batch_size_sockopt
Problem: {in,out}_batch_size must be configured at compiled time
2019-06-27 17:57:58 +01:00
Shubham Lagwankar
d1e6fe19b4 Problem: variable and type names are not descriptive
Solution: use more descriptive names

This commit also improves comments related to some of the changes.
2019-06-27 11:57:01 -04:00
jean-airoldie
cfcab66c71 Problem: {in,out}_batch_size must be configured at compiled time
Solution: Added a socket option to configure them at runtime.
2019-06-27 02:31:11 -04:00
Luca Boccassi
4904bf7177
Merge pull request #3550 from jean-airoldie/heartbeat_test
Problem: missing heartbeat test for draft sockets
2019-06-23 19:22:07 +01:00
jean-airoldie
241b073fd3 Problem: missing heartbeat test for draft sockets
Solution: Add heartbeat tests for CLIENT, SERVER, GATHER and SCATTER
    socket types. RADIO and DISH tests won't be added since heartbeating
    is not yet supported.
2019-06-23 13:23:21 -04:00
Luca Boccassi
fcf828d34b
Merge pull request #3547 from jean-airoldie/unbind-doc
Problem: disconnect & unbind doc is misleading
2019-06-21 11:31:20 +01:00
Shubham Lagwankar
15dafb1c1c Problem: radix tree's apply function uses incorrect resizing logic (#3548)
* Problem: radix tree's apply function uses incorrect resizing logic

Solution: rewrite the function using a vector

The buffer is extended once by 256 bytes, which will not be enough if
the node holds data larger than this number.
2019-06-20 07:58:08 +01:00
jean-airoldie
4d933c28be Problem: disconnect & unbind doc is misleading
Make it explicit that the two functions are identical.
Also document the expected disconnect behavior extensively
and illustrate the difference between disconnecting a
connected vs. bound endpoint.
2019-06-17 02:04:52 -04:00
Luca Boccassi
b17e854f15
Merge pull request #3546 from skicc/patch-1
CMake: don't try to link with librt on MinGW
2019-06-15 16:12:44 +01:00
skicc
0503abb336 RELICENSE 2019-06-15 21:56:12 +08:00
skicc
d2be018800
CMake: don't try to link with librt on MinGW
On MinGW, librt will might will found as rt library in MSYS, but fails linking with "cannot find -lrt" error.
As librt is not avaiable on native Windows, we should never try to link with -lrt on MinGW (which is native Windows).
2019-06-15 21:48:32 +08:00
Luca Boccassi
9534bbfc4d
Merge pull request #3539 from guillon/dev-socks-tests
Add tests for SOCKS proxy support
2019-06-13 15:17:32 +01:00
Christophe Guillon
153418e175 Add tests for SOCKS proxy support 2019-06-13 15:35:27 +02:00
Luca Boccassi
46b498e590
Merge pull request #3544 from somdoron/master
problem: no artifacts for x64 on windows
2019-06-13 12:45:53 +01:00
somdoron
e27a13a8ba problem: no artifacts for x64 on windows
solution: add x64 builds to appveyor
2019-06-13 14:22:28 +03:00
somdoron
8f66156aa3 problem: tests might fail and prevent deployment
Solution: don't run tests on tags

This doesn't break anything, as tags was not built until now. Anyway, when building tags we really care about the release of the packages and not tests
2019-06-12 16:11:32 +03:00
Luca Boccassi
27f9be1125
Merge pull request #3542 from guillon/fix-test-asserts
Problem: test assertions not reporting the right line number
2019-06-12 12:07:50 +01:00
Christophe Guillon
f203064374 Problem: test assertions not reporting the right line number
Solution: pass the line number as part of the testutil functions
2019-06-12 11:20:48 +02:00
Luca Boccassi
aa6b6440f2
Merge pull request #3541 from somdoron/master
problem: appveyor with libsodium change the current directory and bre…
2019-06-12 09:32:49 +01:00
somdoron
ee6755ff1d problem: appveyor with libsodium change the current directory and break the build
Solution: do git pull without changing the current directoy
2019-06-12 00:33:59 +03:00
Luca Boccassi
3cb1c377dd
Merge pull request #3540 from somdoron/master
problem: no artifact repository for windows
2019-06-11 21:04:12 +01:00
somdoron
0a696d8774 problem: no artifact repository for windows
Solution: deploy artifcats to bintray
2019-06-11 22:36:42 +03:00
Luca Boccassi
aac3cd4d93
Merge pull request #3535 from bluca/format
Problem: formatting errors
2019-06-11 19:14:00 +01:00
Luca Boccassi
321c288005 Problem: philippeleite relicense statement not added to the repository
Solution: copy it from PR https://github.com/zeromq/libzmq/pull/3537
2019-06-11 10:31:15 +01:00
Luca Boccassi
3c06ec118f Problem: formatting errors
Solution: apply clang-format-diff
2019-06-11 10:31:15 +01:00
Luca Boccassi
1fdb152b9d
Merge pull request #3537 from philippeleite/patch-2
pthread_equal to compare thread ids
2019-06-11 09:05:51 +01:00
Philippe Bernardino Leite
8a02f70706
pthread_equal to compare thread ids
I am trying to port ZeroMQ to z/OS USS and I faced several problems. One of them is this function "is_current_thread" trying to compare two thread ids with operator "==". I've changed the code to use the official function "pthread_equal" to compare thread ids and now it's working fine.
2019-06-10 22:10:01 -03:00
Luca Boccassi
2202587267
Merge pull request #3534 from guillon/dev-socks-basic-auth
Implement SOCKS5 basic authentication
2019-06-10 18:39:29 +01:00
Christophe Guillon
58c30dc7d1 Add support for SOCKS5 basic authentication 2019-06-10 16:40:06 +02:00
Luca Boccassi
68558bc394
Merge pull request #3532 from guillon/fix-socks-connect
Fix issues with SOCKS5 proxy connection
2019-06-10 14:11:39 +01:00
Christophe Guillon
42cfa697f2 Fix issues with SOCKS5 proxy connection
Two issues where introduced by commit 12c4b55a:
- the proxy connection was done to the target address instead of
the proxy address
- on error the proxy connection status was not reset to unplugged
2019-06-10 14:32:20 +02:00
Christophe Guillon
9736f57f08 Add RELICENSE grant for guillon 2019-06-10 14:31:48 +02:00
Luca Boccassi
178f9e3f3c
Merge pull request #3527 from rotty/pr/clarify-zmq_msg_send-wording
Problem: Unclear `zmq_msg_send` failure semantics
2019-05-31 16:49:42 +01:00
Andreas Rottmann
fae26774f5 Problem: Unclear zmq_msg_send failure semantics
Solution: Explicitly explain message ownership semantics when the call
fails.

Fixes #3526.
2019-05-31 17:36:06 +02:00
Luca Boccassi
96b9eece15
Merge pull request #3521 from jackpimbert/master
Add missing information on multicasting with high data rates to PGM docs
2019-05-24 10:14:23 +01:00
jackpimbert
940f54e7ce Problem: PGM doc missing info on high data rates
Solution: Include a new section on configuring both ZMQ and the host
OS tx/rx buffers to facilitate sending large messages at a high data
rate with the PGM protocol.
2019-05-24 09:55:29 +02:00
jackpimbert
840b9ba4fa Problem: No relicense agreement by jackpimbert
Solution: Added relicense agreement
2019-05-24 09:55:29 +02:00
Luca Boccassi
4dca26767e
Merge pull request #3518 from ackalker/fix-use-of-test
acinclude.m4, configure.ac: Fix several non-portable uses of `test`
2019-05-23 10:27:49 +01:00
Alain Kalker
196cb723df Add RELICENSE entry 2019-05-23 11:15:32 +02:00
Alain Kalker
9a397666d2 acinclude.m4, configure.ac: Fix several non-portable uses of test
Fixes #3517
2019-05-22 01:30:54 +02:00
Luca Boccassi
cef806550c
Merge pull request #3516 from moretromain/fedorafix
Fix Fedora 30 build
2019-05-21 14:45:42 +01:00
Romain Moret
5b07a1199c Fix compiler error 2019-05-21 15:07:00 +02:00
Luca Boccassi
2b63a89635
Merge pull request #3515 from moretromain/win-threadname
Implement thread_t::setThreadName() on windows
2019-05-21 13:23:40 +01:00
Romain Moret
27005cc1ae Implement thread name on windows, cleanup thread naming internals 2019-05-21 12:12:19 +02:00
Doron Somech
046ccfc408
Merge pull request #3513 from bluca/clang7
Problem: clang-format 5 has issues with comments
2019-05-18 19:18:42 +03:00
Doron Somech
9cb266edaa
Merge pull request #3512 from bluca/fixes
Problems: typos in docs, unnecessary ifdefs, duplicated APIs
2019-05-18 19:18:30 +03:00
Luca Boccassi
bde18f3ede Problem: comments before ifdefs are wrongly formatted
Solution: now that clang-format 6+ is used in the CI, fix it
2019-05-18 17:09:17 +01:00
Luca Boccassi
5de3aa1555 Problem: clang-tidy 6 has issues with comments
Solution: bump CI to version 7
2019-05-18 17:09:17 +01:00
Luca Boccassi
19ff4d0b6a Problem: zmq_socket_monitor_versioned_typed duplicates zmq_socket_monitor_versioned
Solution: unify the two APIs, as they are both still in DRAFT state and
thus can be changed.
2019-05-18 16:44:07 +01:00
Luca Boccassi
797439c8e2 Problem: typos in manpage entry for ZMQ_XPUB_MANUAL_LAST_VALUE
Solution: fix them
2019-05-18 16:44:07 +01:00
Luca Boccassi
41be0f5386 Problem: new xpub option is in critical path
Solution: use unlikely to optimize for the most common case
2019-05-18 16:44:07 +01:00
Luca Boccassi
a53dfe936a Problem: many unnecessary ifdefs covering new xpub option
Solution: remove them, only public headers have to be ifdef'd
2019-05-18 16:44:07 +01:00
Luca Boccassi
9bcfc251f4 Problem: new test_xpub_manual_last_value not built by automake
Solution: list it
2019-05-18 16:10:12 +01:00
imkcy9
2f98f7034b Support XPub socket send last value caching to last subscription pipe with ZMQ_XPUB_MANUAL_LAST_VALUE. (#3511)
* Add ZMQ_XPUB_MANUAL_LAST_VALUE

* Surpport xpub send last value caching to one pipe with ZMQ_XPUB_MANUAL_LAST_VALUE

* Add test_xpubub_manual_last_value

* Add relicense and doc
2019-05-17 22:12:32 +01:00
Luca Boccassi
6b51f03377
Merge pull request #3509 from jean-airoldie/monitor_typed
Problem: Potentially unitialized variable in #3508
2019-05-15 12:25:03 +01:00
jean-airoldie
8738ada00f Problem: Endpoints are sometimes not unbound quick enough
Solution: Create a unique endpoint for each fcn call.
2019-05-15 06:27:01 -04:00
jean-airoldie
7836ec752c Problem: Potentially unitialized variable in #3508
Solution: Initialized it
2019-05-15 05:35:58 -04:00
Simon Giesecke
3aca047b96
Merge pull request #3508 from jean-airoldie/monitor_typed
Problem: Socket monitoring only allows ZMQ_PAIR
2019-05-15 09:48:29 +02:00
jean-airoldie
606a8f7967 Problem: Socket monitoring only allows ZMQ_PAIR
Solution: Allow ZMQ_PUB and ZMQ_PUSH sockets types for the monitoring.
This way someone could create a ZMQ_PULL socket connected to multiple
monitoring sockets at the same time.
2019-05-15 01:48:46 -04:00
Doron Somech
e285fe6ea7
Merge pull request #3502 from sigiesec/fix-plain-hello-message
Problem: PLAIN HELLO message incorrectly uses WELCOME literal
2019-05-10 11:43:23 +03:00
Simon Giesecke
6e1c58e86e Problem: PLAIN HELLO message incorrectly uses WELCOME literal
Solution: change to HELLO
2019-05-10 03:55:07 -04:00
Doron Somech
65dd38b268
Merge pull request #3499 from sigiesec/fix-windows-build
Problem: signature of zmq_poller_fd does is incompatible with regular…
2019-05-09 20:22:33 +03:00
Simon Giesecke
d46c580977 Problem: signature of zmq_poller_fd does is incompatible with regular error handling
Solution: change return type to int (again) and return fd via an output parameter
2019-05-09 11:09:35 -04:00
Doron Somech
548f31d4b4
Merge pull request #3498 from sigiesec/fix-windows-build
Problem: syntax error on Windows related to socket descriptor type
2019-05-09 14:36:54 +03:00
Simon Giesecke
63c4d8be78 Problem: syntax error on Windows related to socket descriptor type
Solution: use proper fd_t type, and also define and use a zmq_fd_t in the API
2019-05-09 07:21:08 -04:00
Luca Boccassi
d3f52b2b91
Merge pull request #3497 from sigiesec/fix-cmake-config
Problem: generated ZeroMQConfig.cmake does not work when only static …
2019-05-08 11:34:47 +01:00
Simon Giesecke
8996912cad Problem: generated ZeroMQConfig.cmake does not work when only static or shared library was built
Solution: check for availability of shared/static libzmq targets
2019-05-08 05:19:39 -04:00
Luca Boccassi
f41f51461f
Merge pull request #3496 from sigiesec/cleanup-cmakelists
Some cleanup in CMakeLists.txt
2019-05-07 16:49:23 +01:00
Simon Giesecke
2d8ef84760 Problem: CMAKE_REQUIRED_INCLUDES used in a wrong way, check_function_exists is problematic
Solution: use check_cxx_symbol_exists resp. check_type_size instead
2019-05-07 10:37:47 -04:00
Simon Giesecke
3e5843d073 Problem: include directives are cluttered throughout CMakeLists.txt
Solution: Group include directives together at the beginning of the CMakeLists.txt file
2019-05-07 10:37:47 -04:00
Simon Giesecke
7c53567b93 Problem: extra character in option name
Solution: remove it
2019-05-07 10:37:47 -04:00
Simon Giesecke
9e4b6632c2 Problem: misspelled ar program name
Solution: fix spelling
2019-05-07 10:37:47 -04:00
Simon Giesecke
635f093744 Problem: redundant output in CMakeLists.txt
Solution: remove redundant debug output
2019-05-07 10:37:47 -04:00
Luca Boccassi
ea109fcaab
Merge pull request #3493 from moretromain/cmake-fix
Fix a typo in root CMakeLists.txt
2019-05-06 22:49:45 +01:00
Romain Moret
a565718505 RELICENSE: moretromain grant 2019-05-06 20:31:15 +02:00
Romain Moret
8eee5eb1a8 Fix a typo in CMakeLists.txt 2019-05-06 20:19:50 +02:00
Doron Somech
7971be930b
Merge pull request #3491 from bluca/gcc9
Problem: build broken on Fedora 30
2019-05-04 19:03:12 +03:00
Luca Boccassi
ca2e8b3b19 Problem: build broken on Fedora 30
Solution: use AC_COMPILE_IFELSE instead of AC_CHECK_FUNCS to check for
strnlen, as the latter does not work anymore.
2019-05-04 16:14:58 +01:00
Luca Boccassi
8c8110a136
Merge pull request #3490 from jean-airoldie/zmq_poller_fd_doc
Problem: Missing doc & unit tests for zmq_poller_fd
2019-05-02 22:45:02 +01:00
jean-airoldie
cdbe120738 Problem: No invalid pointer handling for zmq_poller_fd
Solution: Add some and document it.
2019-05-02 17:10:20 -04:00
jean-airoldie
19dd8195be Problem: Missing doc & unit tests for zmq_poller_fd
Solution: Add doc & unit tests
2019-05-02 06:31:14 -04:00
Luca Boccassi
92eedc5716
Merge pull request #3489 from normano/master
Problem: zmq_socket_monitor example did not include HANDSHAKE_SUCCEEDED event causing assert failure
2019-05-02 08:12:36 +01:00
normano
dad917e04e fixed date 2019-05-01 21:43:01 -07:00
normano
97b51e81d3 Added RELICENSE for normano contribution 2019-05-01 19:48:49 -07:00
normano
9780011846 Fixed zmq_socket_monitor example 2019-05-01 19:32:53 -07:00
Luca Boccassi
9bee21b364
Merge pull request #3484 from jean-airoldie/poller_fd
Problem: Cannot get thread safe socket fd
2019-04-28 15:18:27 +01:00
jean-airoldie
05aadc4e38 Problem: no relicense agreement by jean-airoldie
Solution: add one
2019-04-27 22:58:42 -04:00
jean-airoldie
046534480b Problem: Cannot get thread safe socket fd
Solution: Add a method to get the zmq_poller's signaler fd. Then we can
associate a poller instance with every thread safe socket and use its
fd.
2019-04-27 22:58:42 -04:00
Luca Boccassi
501f9d8da4
Merge pull request #3483 from ssbl/dead-code-fix
Problem: unused Windows-specific code in sleep_ms
2019-04-24 21:53:01 +01:00
Shubham Lagwankar
e9678efe00 Problem: unused Windows-specific code in sleep_ms
Solution: remove it since sleep_ms isn't used on Windows
2019-04-24 14:39:27 -04:00
Luca Boccassi
e3a96778b6
Merge pull request #3481 from neheb/patch-1
Add <ios> include to fix uClibc++ compilation
2019-04-19 22:57:14 +01:00
Rosen Penev
761af4939f
Add RELICENSE entry
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2019-04-19 14:18:29 -07:00
Rosen Penev
091e15a28d
Add <ios> include to fix uClibc++ compilation
Under uClibc++, streamoff is defined in <ios>. This header is needed to fix compilation.
2019-04-19 12:16:01 -07:00
Luca Boccassi
9067e3ac9d
Merge pull request #3480 from ipa/zeromq-3479
Zeromq 3479: fixed build for QNX 6.6 with CMake
2019-04-18 14:58:06 +01:00
Iwan Paolucci
0a5ca642e2 corrected name in the signature of relicense statement 2019-04-18 14:21:30 +02:00
Iwan Paolucci
c65fa0a34d Problem: QNX crosscompiler needs additional parameters to chosse the correct platform
Solution: Use a toolchain file for QNX x86
2019-04-18 13:41:32 +02:00
Iwan Paolucci
c531514c33 Problem: no relicense agreement by ipa
Solution: added relicense agreement
2019-04-18 13:30:32 +02:00
Iwan Paolucci
e1a895917c Problem: libzmq does not build on QNX 6.6 using CMake #3479
Solution: libm and libsocket have to be linked explicitely
2019-04-18 13:23:36 +02:00
Luca Boccassi
494a82f0e7
Merge pull request #3478 from Omegastick/master
Fix Radix Tree benchmark includes when used as submodule
2019-04-14 11:31:43 +01:00
Omegastick
7d26319247 Problem: No relicense statement for Omegastick
Solution: Add a relicense statement for Omegastick
2019-04-14 16:59:19 +09:00
Omegastick
43e398ed86 Problem: Radix Tree benchmarks break when project is used as a submodule
Solution: Use CMAKE_CURRENT_LIST_DIR instead of CMAKE_SOURCE_DIR when findng includes
2019-04-14 16:53:54 +09:00
Simon Giesecke
cc99846156
Merge pull request #3477 from bluca/manpages
Problems: formatting errors in docs reported by linters
2019-04-12 17:50:00 +02:00
Luca Boccassi
f4b0f327de Problem: markup error in zmq_socket.txt
Solution: fix it
2019-04-12 12:57:54 +01:00
Luca Boccassi
8f77150c80 Problem: man errors, can't break lines
Solution: add space between OR'ed values

zmq_getsockopt.3 2472: warning [p 17, 9.5i, div '3tbd1,1', 0.5i]: can't break line
zmq_setsockopt.3 3471: warning [p 24, 1.8i, div '3tbd1,1', 0.5i]: can't break line
2019-04-12 12:17:12 +01:00
Doron Somech
de4d69f597
Merge pull request #3473 from bluca/format
Problem: CI format check fails
2019-04-06 06:12:19 +03:00
Luca Boccassi
3c21eed0a1 Problem: CI format check fails
Solution: fix it
2019-04-06 00:12:32 +01:00
Simon Giesecke
5b140baf45
Merge pull request #3472 from bluca/hardening
Problem: immediate binding hardening not used by debian package
2019-04-05 21:39:26 +02:00
Luca Boccassi
320ed68ce9 Problem: immediate binding hardening not used by debian package
Solution: set hardening=+all in Debian packaging rules
2019-04-05 20:36:42 +01:00
Serhio
db7bdd1b1a Some explicit endpoint type changes to support GCC 5 (#3468)
* Some explicit endpoint type changes to support GCC 5

* ../RELICENSE/SergheiNovac.md
2019-04-05 10:54:26 +01:00
Luca Boccassi
6c613902da
Merge pull request #3467 from sigiesec/improve-hwm-pubsub-test
Improve hwm pubsub test
2019-04-02 19:44:55 +01:00
Simon Giesecke
b9041bf78c Problem: missing information on assertion failure
Solution: include sent and received counts on assertion failure
2019-04-02 18:52:48 +02:00
Simon Giesecke
d328f90bb7 Problem: inadequate recv variant used which assumes 0-terminated string
Solution: use array recv variant instead
2019-04-02 18:44:55 +02:00
Simon Giesecke
a5ee4fb001 Problem: code duplication for multiple transports, multiple test cases combined in one
Solution: split test cases and remove code duplication
2019-04-02 18:36:18 +02:00
Simon Giesecke
06f5a6f282 Problem: use of generic assertion macro
Solution: use more specific assertion macro
2019-04-02 18:35:35 +02:00
Simon Giesecke
d4401b230b Problem: test case not making use of test_bind helper function
Solution: replace custom code by test_bind
2019-04-02 18:34:51 +02:00
Simon Giesecke
bdccfe4097
Merge pull request #3464 from bluca/ericcson_grant
Relicensing grant from Ericsson
2019-03-28 12:33:11 +01:00
Luca Boccassi
2de7f9ccf9 Relicensing grant from Ericsson
Received via email on 2019/03/27, message-id:

BL0PR1501MB2003AF12CCA96A583B16D10F9A590@BL0PR1501MB2003.namprd15.prod.outlook.com
2019-03-28 10:53:32 +00:00
Luca Boccassi
e20861a065
Merge pull request #3463 from sigiesec/fix-3269
Problem: socket returned by ZMQ_FD cannot be used with CreateIoComple…
2019-03-27 13:17:47 +00:00
Simon Giesecke
42e27b7d0d Problem: socket returned by ZMQ_FD cannot be used with CreateIoCompletionPort
Solution: add WSA_FLAG_OVERLAPPED socket flag
2019-03-27 09:56:11 +01:00
Luca Boccassi
25bb43c33a
Merge pull request #3461 from sigiesec/refactor-tests
Refactor tests
2019-03-25 09:07:21 +00:00
Simon Giesecke
47dba21005 Problem: code is unnecessarily imperative
Solution: make more functional-style
2019-03-24 13:46:15 -04:00
Simon Giesecke
bfec30b1e5 Problem: test_address_tipc is unnecessarily verbose
Solution: make use of custom Unity macros
2019-03-24 13:34:13 -04:00
Simon Giesecke
386de33030 Problem: code from bind_loopback_tipc is duplicated
Solution: call bind_loopback_tipc where applicable
2019-03-24 13:34:13 -04:00
Simon Giesecke
0e0bead3cf Problem: code from bind_loopback_ipc is duplicated
Solution: call bind_loopback_ipc where applicable
2019-03-24 13:34:13 -04:00
Simon Giesecke
7f64b925aa Problem: code from bind_loopback_ipv4 is duplicated
Solution: call bind_loopback_ipv4 where applicable
2019-03-24 13:34:13 -04:00
Simon Giesecke
8dc933f2ed Problem: non-expressive test case name
Solution: rename to more meaningful name
2019-03-24 13:34:13 -04:00
Simon Giesecke
34999d5069 Problem: s_send(more) can be replaced by safer send_string_expect_success
Solution: remove s_send(more) and replace all uses
2019-03-24 13:34:13 -04:00
Simon Giesecke
af4fa22fd8 Problem: default test setUp/tearDown functions duplicated in many test programs
Solution: define setUp/tearDown functions via SETUP_TEARDOWN_TESTCONTEXT macro where possible
2019-03-24 12:53:12 -04:00
Simon Giesecke
2b80dd7add Problem: test_bind used with explicit endpoint where bind_loopback_ipv4 could be used
Solution: use bind_loopback_ipv4 instead
2019-03-24 12:35:19 -04:00
Simon Giesecke
454c0b834a
Merge pull request #3460 from bluca/borken
Problem: removing header from testutil.hpp breaks unittest build with…
2019-03-24 13:18:01 +01:00
Luca Boccassi
dc91981df7 Problem: removing header from testutil.hpp breaks unittest build with gcc8
Solution: include unistd.h in unittest_poller.cpp
2019-03-24 11:37:41 +00:00
Luca Boccassi
6d77558c77
Merge pull request #3459 from sigiesec/migrate-testutil
Migrate testutil* to Unity, and build testutil as separate library
2019-03-23 22:40:41 +00:00
Simon Giesecke
c2cd2966ab Problem: no documentation of testutil_unity functions
Solution: add documentation
2019-03-23 14:58:47 -04:00
Simon Giesecke
de622c8198 Problem: functions are unnecessarily declared in header
Solution: remove from header and declare as static
2019-03-23 14:09:06 -04:00
Simon Giesecke
1450830611 Problem: unused include directives
Solution: remove and add where needed
2019-03-23 09:46:37 -04:00
Simon Giesecke
d0c4402daf Problem: needless use of macros
Solution: convert streq/strneq into functions
2019-03-23 09:09:36 -04:00
Simon Giesecke
a62e9d35be Problem: internal functions present in header file
Solution: remove declaration and make functions static
2019-03-23 09:09:36 -04:00
Simon Giesecke
5d74eba64a Problem: remaining basic assertions
Solution: use unity assertions instead
2019-03-23 09:09:36 -04:00
Simon Giesecke
5b40bdb194 Problem: redundant specific of testutil headers
Solution: remove redundant entries
2019-03-23 09:09:24 -04:00
Simon Giesecke
347708bcf2 Problem: test utilities are in headers and recompiled for every test
Solution: move test utilities to separate testutil library
2019-03-23 09:09:24 -04:00
Simon Giesecke
cbd4157638 Problem: tests without test framework
Solution: migrate to Unity
2019-03-22 12:36:28 -04:00
Simon Giesecke
9528983d95 Problem: tests without test framework
Solution: migrate to Unity
2019-03-22 12:36:24 -04:00
Simon Giesecke
90a4d268d9 Problem: tests without test framework
Solution: migrate to Unity
2019-03-22 12:07:32 -04:00
Simon Giesecke
6ed03e9333 Problem: tests without test framework
Solution: migrate to Unity
2019-03-22 12:07:14 -04:00
Simon Giesecke
75cd23d6af Problem: tests without test framework
Solution: migrate to Unity
2019-03-22 12:06:39 -04:00
Simon Giesecke
06e713e9e0 Problem: tests without test framework
Solution: migrate to Unity
2019-03-22 12:06:39 -04:00
Simon Giesecke
4ab381436d Problem: tests without test framework
Solution: migrate to Unity
2019-03-22 12:06:12 -04:00
Simon Giesecke
6f083df5fb Problem: tests without test framework
Solution: migrate to Unity
2019-03-22 12:06:12 -04:00
Simon Giesecke
2f40d21618 Problem: access to moved object
Solution: use move target instead
2019-03-22 12:06:12 -04:00
Simon Giesecke
740780293a Problem: tests without test framework
Solution: migrate to Unity
2019-03-22 12:06:12 -04:00
Simon Giesecke
e17232f725 Problem: possible use-after-free
Solution: check for failure and do not access any members afterwards
2019-03-22 12:06:12 -04:00
Simon Giesecke
f083e60d8c Problem: use of extra context
Solution: use test context instead
2019-03-22 12:06:12 -04:00
Simon Giesecke
924d47f818 Problem: tests without test framework
Solution: migrate to Unity
2019-03-22 12:06:12 -04:00
Luca Boccassi
f4b9cc994d
Merge pull request #3457 from sigiesec/migrate-zap-test
Migration of further tests & test utilities to Unity
2019-03-20 18:40:25 +00:00
Simon Giesecke
0266d4ac27 Problem: testutil_monitoring not using unity
Solution: migrate to unity and adapt users
2019-03-20 17:03:26 +01:00
Simon Giesecke
f46a96926c Problem: test_security_curve uses custom assertion macro
Solution: use standard TEST_ASSERT_SUCCESS_ERRNO macro instead
2019-03-20 16:49:46 +01:00
Simon Giesecke
efaca82bff Problem: testutil_security not using unity
Solution: migrate to unity and adapt users
2019-03-20 16:49:46 +01:00
Simon Giesecke
6e0724609a Problem: errno not output on test failure
Solution: use appropriate test assertion macro
2019-03-20 16:49:46 +01:00
Simon Giesecke
669fc4df5a Problem: test_security_zap not using a test framework
Solution: migrate to unity
2019-03-20 16:49:46 +01:00
Simon Giesecke
99e53698c5
Merge pull request #3456 from bluca/test_fd_port
Problem: TCP and UDP test sockets use hard-coded port
2019-03-19 17:57:09 +01:00
Luca Boccassi
168aa83d08
Merge pull request #3453 from panlinux/validate-group-before-using-1462
Validate group before using it
2019-03-18 23:29:06 +00:00
Luca Boccassi
98875a9ddc Problem: TCP and UDP test sockets use hard-coded port
Solution: move ephemeral port code to header and use it in both
tests
2019-03-18 23:27:01 +00:00
Luca Boccassi
830b3428ec Problem: new test binary not ignored
Solution: add it to .gitignore
2019-03-18 23:26:27 +00:00
Andreas Hasenack
1f656fd19d Problem: no relicense agreement by panlinux
Solution: added relicense agreement
2019-03-18 13:21:44 -03:00
Andreas Hasenack
d81f3ec21c Problem: test_filter_with_supplemental_process_owner_gid fails
Solution: only set supgroup to a valid gid
2019-03-18 13:21:44 -03:00
Luca Boccassi
645df4e602
Merge pull request #3449 from sigiesec/migrate-security-tests
Migrate security tests for NULL and PLAIN mechanisms to Unity
2019-03-18 12:54:52 +00:00
Luca Boccassi
17c47da01c
Merge pull request #3452 from jacquesg/strnlen
Problem: strnlen may not be available
2019-03-18 12:09:38 +00:00
Jacques Germishuys
b26542bbfc Problem: strnlen may not be available
Solution: Provide an implementation
2019-03-18 11:37:53 +00:00
Simon Giesecke
c1d2e71861
Merge pull request #3451 from jacquesg/devpoll
Restore /dev/poll support
2019-03-18 11:47:52 +01:00
Jacques Germishuys
04f5ae20af Problem: Solaris 10 had unknown, active users
Solution: Add Solaris 10 to the list
2019-03-18 10:43:11 +00:00
Simon Giesecke
8759d20d4b Problem: tests link to two different flavours of the runtime library,
causing heap corruption

Solution: remove extra runtime library settings, re-enable failing tests
on appveyor
2019-03-18 11:26:05 +01:00
Simon Giesecke
ae1bc03e9e Problem: artifacts published on appveyor are missing pdb files
Solution: add them
2019-03-18 11:25:46 +01:00
Jacques Germishuys
8a2296711d Problem: epoll_t no longer requires _worker
Solution: Remove _worker
2019-03-18 10:16:13 +00:00
Jacques Germishuys
212ab4f834 Problem: /dev/poll doesn't compile
Solution: Make devpoll_t derive from worker_poller_base_t
2019-03-18 10:15:27 +00:00
Simon Giesecke
36a16ec7d1 Problem: test_security_plain not using a test framework
Solution: migrate to Unity
2019-03-16 17:51:25 +01:00
Simon Giesecke
223ef516b6 Problem: test_security_null not using a test framework
Solution: migrate to Unity and separate test_security_no_zap_handler
2019-03-16 17:20:19 +01:00
Simon Giesecke
bd6fa4bbb3
Merge pull request #3445 from bluca/relicense_hp
Update HPE statement as requested by the grantor
2019-03-13 11:19:00 +01:00
Luca Boccassi
f4f2ebfe95 Update HPE statement as requested by the grantor 2019-03-13 10:07:48 +00:00
Constantin Rack
1198a8ec91
Merge pull request #3444 from bluca/relicense_hp
Relicensing grant from HPE
2019-03-12 14:16:22 +01:00
Luca Boccassi
84e9a1a022 Relicensing grant from HPE
Received via email on 2019/03/12, message-id:

TU4PR8401MB1277B86B48464DC63AEDCA2D96490@TU4PR8401MB1277.NAMPRD84.PROD.OUTLOOK.COM
2019-03-12 12:25:40 +00:00
Doron Somech
1e9a8c97ea
Merge pull request #3441 from bluca/test_xpub_nodrop_flaky
Problem: text_xpub_nodrop sometimes fails
2019-03-08 21:16:17 +02:00
Luca Boccassi
0bbd38f5d4 Problem: text_xpub_nodrop sometimes fails
Solution: use XPUB and wait for the subscription message rather than
using a sleep which might or might not be enough
2019-03-08 18:26:23 +00:00
Luca Boccassi
2f5c2f4a48
Merge pull request #3440 from emtr/proxy-performance-fix
Proxy performance fix
2019-03-08 15:17:31 +00:00
Claudio Biagi
d41ed6180b Proxy performance fix, ticket #3439
Improve performance of the proxy forwarding batch of message.
Add throughput benchmark for proxy.
Fix valgrind error reported on unitialized vars
RELICENSE: Add emtr grant
2019-03-08 15:02:58 +01:00
Doron Somech
2e6464864e
Merge pull request #3438 from sigiesec/fix-appveyor-test-execution
Fix appveyor test execution
2019-03-02 04:14:46 +02:00
Simon Giesecke
028aecc6d9 Problem: appveyor build always fails
Solution: temporarily skip failing test cases
2019-03-01 18:20:37 -05:00
Simon Giesecke
73159a8fab Problem: race condition in test_hwm
Solution: wait a bit to allow connect to succeed if inproc bind preceded connect
2019-03-01 18:20:37 -05:00
Simon Giesecke
14fd7505bc Problem: race condition in test_xpub_nodrop
Solution: try to avoid race condition by increasing timeout from 0 to 250ms
2019-03-01 18:20:37 -05:00
Simon Giesecke
56c94757ff Problem: analysis build failing due to warnings-as-errors
Solution: enable warnings-as-errors only on non-analysis builds
2019-03-01 18:20:37 -05:00
Simon Giesecke
a95c4ab404 Problem: test_decrease_when_full is disabled for Windows
Solution: add sleep after connecting such that sending is not started before connection succeeded
2019-03-01 15:05:55 -05:00
Simon Giesecke
828ed69d63 Problem: test_decrease_when_full test case in test_sockopt_hwm does not run reliably under Windows
Solution: disable test case for the moment and mark it as FIXME
2019-03-01 05:51:45 -05:00
Simon Giesecke
36d265ee7d Problem: redundant parentheses in return statements
Solution: remove them
2019-03-01 05:46:10 -05:00
Simon Giesecke
0c363fbb76 Problem: argument is unnecessarily copied
Solution: move instead
2019-03-01 05:46:10 -05:00
Luca Boccassi
995e0a3a26
Merge pull request #3436 from sigiesec/fix-reconnect-ivl-calculation
Problem: reconnect interval exponential backoff and may lead to integ…
2019-02-27 14:41:41 +00:00
Simon Giesecke
d61d662ecb Problem: reconnect interval exponential backoff and may lead to integer overflows
Solution: guard calculation against integer overflows
2019-02-27 08:50:01 -05:00
Luca Boccassi
46061508bf
Merge pull request #3435 from trevorbernard/relicense
Issue #2376 - Add Trevor Bernard's permission to relicense
2019-02-25 16:50:40 +00:00
Trevor Bernard
12238f6bb1 Issue #2376 - Add Trevor Bernard's permission to relicense 2019-02-25 11:21:31 -05:00
Luca Boccassi
54bf9c6a59
Merge pull request #3434 from brc859844/master
RELICENSE: Brett Cameron
2019-02-25 16:01:41 +00:00
cameronbn
23de068fe4 RELICENSE: Brett Cameron 2019-02-25 16:12:32 +01:00
Luca Boccassi
d54b524976
Merge pull request #3433 from rlenferink/relicense-info-michelet
RELICENSE: Corrected info for leonarf
2019-02-25 11:16:11 +00:00
Roy Lenferink
cc8b119c69 RELICENSE: Corrected info for leonarf 2019-02-25 12:14:04 +01:00
Doron Somech
35aaa5425f
Merge pull request #3432 from rlenferink/relicense-shancat
Adding grant from shancat
2019-02-24 14:37:26 +02:00
Roy Lenferink
6f66b5a676 Adding grant from shancat 2019-02-24 13:25:53 +01:00
Doron Somech
534ac7ef0d
Merge pull request #3431 from steve-o/master
Relicense: steve-o
2019-02-24 04:25:48 +02:00
Steven McCoy
bab50feb50 Add GitHub authors. 2019-02-24 10:04:14 +08:00
Steven McCoy
24d5bcfe4d Relicense permission for work by steve-o. 2019-02-24 09:53:58 +08:00
Constantin Rack
831ac95fd9
Merge pull request #3428 from Eelis/mallocfail
Don't crash if memory allocation in socket_poller_t::rebuild fails.
2019-02-23 10:52:22 +01:00
Constantin Rack
f8bcdaf123
Merge pull request #3430 from rlenferink/rl-rename
Renamed RELICENSE to use GitHub username
2019-02-23 10:47:45 +01:00
Roy Lenferink
fea02c1071 Renamed RELICENSE to use GitHub username 2019-02-23 10:13:47 +01:00
Doron Somech
5ac7df1d23
Merge pull request #3429 from CommanderBubble/master
Relicense
2019-02-23 11:04:15 +02:00
Eelis van der Weegen
8259c519b3 Problem: Program crashes if memory allocation in socket_poller_t::rebuild fails.
Solution: Report memory allocation failure as ENOMEM so applications can handle it gracefully.

Fixes #3427.
2019-02-23 09:55:04 +01:00
Michael
d301f995ad
Create mlloyd.md
relicense
2019-02-23 18:55:04 +11:00
Michael
2acd7391ae
Merge pull request #5 from zeromq/master
update pre license
2019-02-23 18:47:42 +11:00
Simon Giesecke
d814f37067
Merge pull request #3426 from Eelis/pollerdoc
Document that zmq_poller_new can return NULL.
2019-02-22 20:42:40 +01:00
Eelis van der Weegen
f09d5295c6 RELICENSE: Grant from Eelis. 2019-02-22 20:11:26 +01:00
Eelis van der Weegen
f1d6811dd7 Problem: The documentation for zmq_poller_new incorrectly states that it cannot fail.
Solution: Revise the offending wording, adding a remark that zmq_poller_new will return NULL in case of failure.

Fixes #3425.
2019-02-22 20:11:26 +01:00
Luca Boccassi
cdc4b8c6c6
Merge pull request #3423 from vortechs2000/relicense
Add relicense grant
2019-02-21 22:14:11 +00:00
AJ Lewis
3b3fbe0204 Add relicense grant
Add Quantum's relicense grant for my work on libzmq
2019-02-21 15:14:45 -06:00
Doron Somech
3d55131eba
Merge pull request #3422 from sigiesec/fix-zmq-proxy-docs
Problem: zmq_proxy signature in documentation does not match actual s…
2019-02-20 16:58:57 +02:00
Simon Giesecke
c05d010c01
Problem: zmq_proxy signature in documentation does not match actual signature
Solution: remove extra const
2019-02-20 15:38:52 +01:00
Luca Boccassi
f21bae529e
Merge pull request #3421 from sigiesec/document-supported-platforms
Problem: no documentation of supported platforms
2019-02-20 14:27:50 +00:00
Simon Giesecke
598b5d4dcb Problem: no documentation of supported platforms
Solution: add an initial version
2019-02-20 15:08:29 +01:00
Doron Somech
e2af39bc42
Merge pull request #3420 from mgatny/master
Problem: missing relicensing statement from mgatny
2019-02-19 20:31:33 +02:00
Mike Gatny
d63dcaf238 Problem: missing relicensing statement from mgatny
Solution: add it
2019-02-19 13:23:37 -05:00
Doron Somech
3e79d55271
Merge pull request #3419 from rlenferink/rl-rename
RELICENSE: Renamed license grants to use GitHub username
2019-02-19 19:39:29 +02:00
Roy Lenferink
cfd91f0602 Renamed license grants to use GitHub username
Updated the license grants to the GitHub username of the contributor where possible. Corrected the content of some files as well.
2019-02-19 18:34:06 +01:00
Luca Boccassi
fed6cc5669
Merge pull request #3418 from rlenferink/rl-extension
RELICENSE: Converted pnnl to markdown
2019-02-19 13:20:36 +00:00
Roy Lenferink
5b621164ed Converted to markdown 2019-02-19 13:59:55 +01:00
Doron Somech
9e41dcf077
Merge pull request #3417 from rlenferink/rl-ricnewton
RELICENSE: Received grant from Micromass UK Limited
2019-02-19 13:53:08 +02:00
Roy Lenferink
fba60985e0 Received grant from Micromass UK Limited 2019-02-19 12:48:29 +01:00
Luca Boccassi
b3a62b7867
Merge pull request #3416 from pmienk/master
RELICENCE: Phillip Mienk grant
2019-02-18 20:11:33 +00:00
Phillip Mienk
956c724302 RELICENCE: Phillip Mienk grant 2019-02-18 12:01:53 -08:00
Constantin Rack
66c9bd8020
Merge pull request #3415 from bluca/relicense_npl
Problem: no relicense grant from PNNL
2019-02-18 20:17:35 +01:00
Luca Boccassi
c189c973c2 Problem: no relicense grant from PNNL
Solution: add the one received by email

B671D81EAD34104986FFE7881B8036371ABEF4AF@EX10MBOX02.pnnl.gov
2019-02-18 19:15:28 +00:00
Simon Giesecke
39541f0306
Merge pull request #3414 from bluca/relicense_tim
Problem: missing relicense statement from Prarrot
2019-02-18 19:35:04 +01:00
Luca Boccassi
ca9eca058b Problem: missing relicense statement from Prarrot
Solution: add the one received by email

Message-ID: <CAHPFjttticWbCuZ93r55gGRDBMxAgNn==4r70op4LnQNEJM23Q@mail.gmail.com>
2019-02-18 18:24:27 +00:00
Luca Boccassi
9e8aef0b66
Merge pull request #3413 from somdoron/master
Problem: missing relicensing statement from somdoron
2019-02-18 09:08:20 +00:00
somdoron
380b852561 Problem: missing relicensing statement from somdoron
Solution: add it
2019-02-18 10:33:13 +02:00
Doron Somech
c39e7a8818
Merge pull request #3412 from calid/relicense-calid
Relicense: Dylan Cali
2019-02-18 08:45:25 +02:00
Dylan Cali
1dd9ac9548 Relicense: Dylan Cali
Ref: #2376
2019-02-17 19:22:43 -05:00
Simon Giesecke
be20089675
Merge pull request #3411 from bluca/fix_threads
Problem: non-linux build broken by last PR
2019-02-17 22:39:06 +01:00
Luca Boccassi
f83b13b2d6 Problem: build fails on VS2010 as it does not have snprintf
Solution: ifdef it
2019-02-17 20:15:59 +00:00
Luca Boccassi
c63b0955e5 Problem: zmq_threadstart name not distinguished
Solution: name it ZMQapp instead of ZMQbg, as it's created by the
application
2019-02-17 20:15:59 +00:00
Luca Boccassi
c8d039a3c7 Problem: unused variable warning in thread_start on !Linux
Solution: use LIBZMQ_UNUSED
2019-02-17 20:15:59 +00:00
Luca Boccassi
f7ca7515d7 Problem: new thread parameter not initialised in ctor
Solution: do it and remove ifndef windows
2019-02-17 20:15:59 +00:00
Luca Boccassi
d02561eec0 Problem: IO thread name starts counting at 1
Solution: start at 0
2019-02-17 20:15:59 +00:00
Luca Boccassi
563396445a Problem: IO thread name uses space separator, the rest uses /
Solution: use / like the rest of the names
2019-02-17 20:15:59 +00:00
Luca Boccassi
de76789ac6 Problem: new thread naming breaks build on !Linux and overwrites prefix
Solution: use the thread class function rather than one of the pthread
functions, and take into account the thread prefix context option
2019-02-17 20:15:59 +00:00
Kymeta Corp
484374f2b6 Problem: Threads don't have names which complicates debugging.
Solution:
1. Use optional name parameter in thread_t::start for operating
systems that have thread names.
2. Give start_thread() an optional name parameter for the
thread's name. If this parameter is set, it will be appended to "0MQ:".
If not set, "0MQ" will be used as the thread's name.
3. Give epoll the ability to name its thread. Then use this in
io_thread and reaper to name them.
2019-02-17 20:15:33 +00:00
Kymeta Corp
c47b2af90a Problem: no relicense agreement by Kymeta Corporation
Solution: add relicense agreement
2019-02-17 20:15:33 +00:00
Doron Somech
907bce52e0
Merge pull request #3410 from Quuxplusone/license
RELICENSE: Arthur O'Dwyer grant
2019-02-17 21:46:28 +02:00
Arthur O'Dwyer
465109d0ca RELICENSE: Arthur O'Dwyer grant 2019-02-17 14:45:21 -05:00
Luca Boccassi
639ed00d9a
Merge pull request #3409 from mkoppanen/relicense/mkoppanen
Add permission to relicense
2019-02-17 19:14:03 +00:00
Mikko Koppanen
9634ab182f Add permission to relicense 2019-02-17 17:49:08 +00:00
Simon Giesecke
96cd7cf2c3
Merge pull request #3408 from bluca/relicense
Problem: missing relicensing statement from bluca
2019-02-17 16:32:51 +01:00
Luca Boccassi
16a4153849 Problem: missing relicensing statement from bluca
Solution: add it - I realised only now that I only submitted a
statement for the copyright owned by a previous employer, and not
my own.
2019-02-16 17:18:41 +00:00
Shubham Lagwankar
8ef72d482e Problem: trie benchmarks count loop times instead of lookup calls (#3406)
* Problem: trie benchmarks count loop times instead of lookup calls

Solution: measure the time taken by each lookup call instead

Other changes:
- show average time taken and reduce other output
- show number of keys, queries and key size before running the benchmark
- use steady_clock as high_resolution_clock might not be steady
- increase size of query set to 1M
2019-02-13 18:47:39 +00:00
Luca Boccassi
6937447832
Merge pull request #3405 from sigiesec/use-std-condition-variable-any
Use std::condition_variable_any, move configuration to build files
2019-02-12 11:09:15 +00:00
Simon Giesecke
7fbd977184 Problem: assertion triggered in stream_connecter_base::close
Solution: change into regular control flow condition
2019-02-12 03:47:26 -05:00
Simon Giesecke
2759f459df Problem: C4267 warnings due to implicit conversion from size_t to int
Solution: change variable type to size_t
2019-02-12 03:47:26 -05:00
Simon Giesecke
21a389ca78 Problem: test_security_curve build fails with Windows targeting 8 or newer due to duplicate definition of htonll
Solution: use custom implementation only on older Windows versions
2019-02-12 03:47:26 -05:00
Simon Giesecke
120edd9809 Problem: selection of condition_variable_t implementation is confusing and not configurable
Solution: move configuration to build definition
2019-02-12 03:47:26 -05:00
Simon Giesecke
bfb092c3ec Problem: value for _WIN32_WINNT not always known in CMakeLists.txt
Solution: calculate from CMAKE_SYSTEM_VERSION

Problem: CMAKE_SYSTEM_VERSION might be newer than Windows SDK Version

Solution: limit _WIN32_WINNT value to Visual Studio default Windows SDK version
2019-02-12 03:47:22 -05:00
Simon Giesecke
d7e1cf3eb0 Problem: std::condition_variable can only be used with std::unique_lock<std::mutex>, leading to two mutexes used in condition_variable_t
Solution: use std::condition_variable_any instead
2019-02-11 07:12:43 -05:00
Simon Giesecke
119a258504
Merge pull request #3383 from ZMQers/queue_monitor
Problem: cannot monitor state of queues at runtime
2019-02-11 10:49:39 +01:00
Luca Boccassi
feadf6d40f Problem: cannot monitor state of queues at runtime
Solution: add API and ZMQ_EVENT_PIPES_STATS event which generates 2
values, one for the egress and one for the ingress pipes respectively.
Refactor the events code to be able to send multiple values.
2019-02-10 16:33:26 +00:00
Luca Boccassi
cb73745250 Problem: cannot send more than one value per v2 event
Solution: refactor code and add extra frame with value count before the
values in v2
2019-02-07 20:42:47 +00:00
Luca Boccassi
1e26a93ce2 Problem: test_monitor fails in valgrind
Solution: expect additional events
2019-02-07 20:42:47 +00:00
Luca Boccassi
c1b374fa6a Problem: manpage for zmq_socket_monitor_versioned has old example
Solution: update it
2019-02-07 16:24:41 +00:00
Luca Boccassi
83946d5c98 Problem: testutil_monitoring does not close received messages
Solution: do it, as above 32 bytes they might be on the heap
2019-02-07 16:24:41 +00:00
Luca Boccassi
edf79dfefc Problem: test_monitor check for DRAFT has to be kept up to date
Solution: check for the available version instead
2019-02-07 16:24:41 +00:00
Luca Boccassi
b20cb122d9 Problem: zmq_socket_monitor_versioned manpage not generated
Solution: add it to doc/Makefile.am
2019-02-07 16:24:41 +00:00
Luca Boccassi
2edba1259e Problem: zmq_socket_monitor_versioned manpage doesn't build
Solution: fix formatting
2019-02-07 16:24:41 +00:00
Luca Boccassi
86697347fc Problem: symlinking manpages in automake does not work
Solution: remove them for now
2019-02-07 16:24:41 +00:00
Luca Boccassi
e5a7f2eb56
Merge pull request #3402 from sigiesec/revert-64-bit-assertions
Revert 64 bit assertions
2019-02-07 15:58:38 +00:00
Simon Giesecke
31ff05d156 Revert "Problem: test build fails on 32 bit systems"
This reverts commit ac19d5f41ccca7acc40fb5970d6f7a0b20e0bc66.
2019-02-07 10:42:32 -05:00
Simon Giesecke
4273ffd266 Partially revert "Problem: monitor events are output as decimal in assertion messages"
This partially reverts commit 19c6aa5c9210144205b3e7f26752ebec8302a2f2.
2019-02-07 10:42:32 -05:00
Luca Boccassi
4bdb05df78
Merge pull request #3400 from sigiesec/fix-issue-3397
Add test for ZMQ_BINDTODEVICE
2019-02-07 14:53:48 +00:00
Simon Giesecke
9cb1fca115 Problem: on a failure to setsockopt SO_BINDTODEVICE, libzmq asserts
Solution: return an error to the user instead
2019-02-07 09:39:02 -05:00
Simon Giesecke
ec4ecb01ff Problem: no test for ZMQ_BINDTODEVICE
Solution: add test case run with cap_net_admin
Fixes #3397
2019-02-07 09:39:02 -05:00
Doron Somech
a3a40a01c9
Merge pull request #3399 from sigiesec/fix-unity-64-bit
Problem: test build fails on 32 bit systems
2019-02-07 14:46:19 +02:00
Simon Giesecke
ac19d5f41c Problem: test build fails on 32 bit systems
Solution: define UNITY_SUPPORT_64 to force 64 bit support
2019-02-07 12:13:11 +01:00
Luca Boccassi
eb42e0442b
Merge pull request #3396 from sigiesec/fix-issue-3394
Fix regression introduced by 68d520e
2019-02-07 11:07:04 +00:00
Simon Giesecke
a763d734f2 Problem: formatting broken
Solution: run clang-format
2019-02-07 11:44:18 +01:00
Simon Giesecke
7cf0d125d3 Problem: failed address resolution on TCP connect is not observable
Solution: added TODO comment for now
2019-02-07 11:07:37 +01:00
Simon Giesecke
e45ede49b5 Problem: regression introduced by 68d520e, changing behaviour of unblocking sockets
Solution: move unblock call to original location
2019-02-07 11:04:05 +01:00
Simon Giesecke
db8c26fce3 Problem: testutil_unity uses undefined names on Windows
Solution: make compilation conditional
2019-02-07 11:04:05 +01:00
Simon Giesecke
8de7e529ec Problem: no test case for tcp name resolution no longer working
Solution: add test case
2019-02-07 11:04:05 +01:00
Simon Giesecke
84dc40dd90 Problem: regression introduced by 68d520e, leading to tcp name resolution no longer working
Solution: restore "local" flag values in call to resolve

Fixes #3394
2019-02-07 11:03:51 +01:00
Luca Boccassi
5ecf8f93e2
Merge pull request #3395 from somdoron/ZeroCond
Problem: invoking the conditional variable for zero time is expensive
2019-02-06 22:08:16 +00:00
Luca Boccassi
792a1e61f3
Merge pull request #3393 from sigiesec/add-v2-monitoring
Add v2 monitoring ipc/tipc tests
2019-02-06 21:34:46 +00:00
somdoron
462dd36d0e Problem: invoking the conditional variable for zero time is expensive
Solution: for zero timeout, unlock and relock immediately instead of timedwait
2019-02-06 21:07:53 +02:00
Simon Giesecke
61e476ec89 Problem: MAX_SOCKET_STRING is too short for ipc wildcard binds
Solution: increase size to 256
2019-02-06 09:09:14 -05:00
Simon Giesecke
b54b55d854 Problem: sun_path in an AF_UNIX address might not be null-terminated
Solution: use addrlen to determine the length
2019-02-06 07:18:28 -05:00
Simon Giesecke
31015fdcfe Problem: ipc_address data member does not conform with naming convention
Solution: rename data member
2019-02-06 07:12:21 -05:00
Simon Giesecke
808028fe02 Problem: use of unnecessary complex stringstream
Solution: use memcpy instead
2019-02-06 07:11:10 -05:00
Simon Giesecke
19c6aa5c92 Problem: monitor events are output as decimal in assertion messages
Solution: output as hex instead
2019-02-06 07:11:10 -05:00
Simon Giesecke
a86592f78c Problem: test_monitor is not run for ipc and tipc
Solution: add test cases
2019-02-06 07:11:10 -05:00
Simon Giesecke
9b1627f041
Merge pull request #3391 from bluca/listener_unistd
Problem: build broken with newer gcc
2019-02-05 14:13:31 -05:00
Luca Boccassi
2df988eec3 Problem: build broken with newer gcc
Solution: add missing includes to stream_listener_base
2019-02-05 18:57:33 +00:00
Luca Boccassi
0b4bb92395
Merge pull request #3389 from sigiesec/fix-issue-3387
Problem: close always fails with wildcard bind, since directory is no…
2019-02-05 16:17:35 +00:00
Simon Giesecke
8d784f26ab Problem: close always fails with wildcard bind, since directory is not empty
Solution: unlink the socket file first
2019-02-05 10:17:28 -05:00
Luca Boccassi
b14bb2d8f8
Merge pull request #3388 from sigiesec/add-missing-include
Problem: missing include directive for close/closesocket
2019-02-05 14:24:16 +00:00
Simon Giesecke
ded4ff6fd2 Problem: missing include directive for close/closesocket
Solution: add appropriate includes
2019-02-05 09:21:06 -05:00
Luca Boccassi
b8b1b8def3
Merge pull request #3384 from sigiesec/remove-socks-tcp-code-duplication
Remove socks/tcp code duplication
2019-02-05 13:19:54 +00:00
Luca Boccassi
69a6522741
Merge pull request #3386 from sigiesec/remove-locale-dependency
Problem: tcp address strings are dependent on locale
2019-02-05 13:18:26 +00:00
Simon Giesecke
74d62bb908 Problem: tcp address strings are dependent on locale
Solution: use sprintf instead of std::stringstream
Fixes #3385
2019-02-05 05:45:35 -05:00
Simon Giesecke
e583276380 Problem: unnecessary platform-specific code parts around socklen_t
Solution: use zmq_socklen_t
2019-02-05 03:34:32 -05:00
Simon Giesecke
c215235fb2 Problem: redundant string operations in zmq::udp_engine_t::sockaddr_to_msg
Solution: reuse string lengths and use memcpy instead
2019-02-05 03:34:32 -05:00
Simon Giesecke
d451a95234 Problem: redundant code in different preprocessor branches
Solution: change preprocessor guard scope
2019-02-05 03:34:32 -05:00
Simon Giesecke
fc6ef0ebff Problem: zmq::get_peer_ip_address duplicates code from get_socket_address
Solution: change to use get_socket_address
2019-02-05 03:34:32 -05:00
Simon Giesecke
2f7a450294 Problem: socks_connecter_t duplicates code around opening and configuring a TCP socket
Solution: use tcp_open_socket function
2019-02-05 03:34:32 -05:00
Simon Giesecke
68d520ef68 Problem: tcp_connecter_t and tcp_listener_t duplicate code around opening and configuring a TCP socket
Solution: extract common parts into tcp_open_socket function
2019-02-05 03:34:32 -05:00
Simon Giesecke
3f4e64edc0 Problem: bind_to_device unnecessarily accepts a non-const string parameter
Solution: add const
2019-02-04 09:29:42 -05:00
Simon Giesecke
12c4b55af8 Problem: socks_connecter_t duplicates code with stream_connecter_base_t
Solution: let socks_connecter_t derive from stream_connecter_base_t and remove duplicate code
2019-02-04 09:29:42 -05:00
Simon Giesecke
14da2ab629
Merge pull request #3382 from bluca/tipc_endpoint
Problem: tipc disconnect does not work anymore
2019-02-03 23:31:59 +01:00
Luca Boccassi
0411bc159a Problem: tipc disconnect does not work anymore
Solution: change back the indentifier endpoint to the one passed by the
user rather than the resolved one, otherwise when the user passes the
same string to the disconnect call they do not match anymore
2019-02-03 23:01:20 +01:00
Simon Giesecke
c28cbf76d1
Merge pull request #3381 from bluca/test_ipv6_monitor
Problems: ipv6 test_monitor hangs, old Windows build fails
2019-02-03 22:57:11 +01:00
Luca Boccassi
a9a5b2bde5 Problem: DRAFT build broken on old Windows
Solution: define uint64_t if not available in the system headers and
remove inclusion of inttypes.h which does not exist and is already
conditionally included in zmq.h if required, do not use PRIx64
2019-02-03 22:11:52 +01:00
Luca Boccassi
84847138a1 Problem: test_monitor fails with ipv6
Solution: correctly set the ipv6 flag in the connecting socket
2019-02-03 20:56:07 +01:00
Luca Boccassi
01b2a8ce21 Problem: unittest_radix_tree binary not ignored
Solution: add it to .gitignore
2019-02-03 19:57:08 +01:00
Luca Boccassi
33a493c4f8
Merge pull request #3379 from sigiesec/add-v2-monitoring
Add v2 monitoring
2019-02-03 08:54:58 +01:00
Simon Giesecke
0e2e303b10 Problem: test_monitor is not run for ipv6
Solution: add test case using ipv6
2019-02-02 19:00:33 +01:00
Simon Giesecke
f22b0b7483 Problem: test_monitor failing for assertion on endpoint addresses on ZMQ_EVENT_LISTENING event
Solution: fix address passed and refactor set_local_address to remove code duplication and unnecessary address parsing when ZMQ_USE_FD is used
2019-02-02 18:33:29 +01:00
Simon Giesecke
f3561f7759 Problem: no assertions for endpoint addresses on ZMQ_EVENT_MONITOR_STOPPED and ZMQ_EVENT_LISTENING events
Solution: added assertions
2019-02-02 18:29:33 +01:00
Simon Giesecke
5e2da02528 Problem: test case is leaking test socket
Solution: close test socket
2019-02-02 17:15:27 +01:00
Simon Giesecke
54240dccbb Problem: stream listeners do not provide correct local and remote address information (test_monitor is failing)
Solution: query local and remote addresses on accepting a connection
2019-02-02 16:52:15 +01:00
Simon Giesecke
8f90f579f5 Problem: no assertions for local and remote addresses in monitor tests
Solution: added such assertions and extended test utilities
2019-02-02 16:34:19 +01:00
Simon Giesecke
f884fa725c Problem: get_monitor_event_internal segfaults when using address
Solution: dereference the pointer to the array before accessing the
element
2019-02-02 15:36:26 +01:00
Simon Giesecke
b18d28eec1 Problem: no tests for v2 monitor events and test_socket_monitor_versioned
Solution: add first test case
2019-02-02 15:33:27 +01:00
Simon Giesecke
30e0cbbcdc Problem: test_monitor depends on testutil_security
Solution: move general monitoring test utilities to new testutil_monitoring
2019-02-02 15:33:27 +01:00
Simon Giesecke
482a3a2272 Problem: documented constants are not defined
Solution: add definition to zmq.h
2019-02-02 15:33:27 +01:00
Simon Giesecke
367246bb23 Problem: test_monitor is not using a test framework
Solution: migrate to unity
2019-02-02 15:33:27 +01:00
Simon Giesecke
478e42442b Problem: no documentation on zmq_socket_monitor_versioned
Solution: add initial version of documentation
2019-02-02 15:33:27 +01:00
Simon Giesecke
d8b5204f73 Problem: socks_connecter_t does not set local address
Solution: query the local address and set it
2019-02-02 15:33:27 +01:00
Simon Giesecke
87082557f0 Problem: stream_connecter_base_t does not set local address
Solution: pass the local address by subclasses to create_engine
2019-02-02 15:33:27 +01:00
Simon Giesecke
aec9b130f7 Problem: get_socket_address and get_socket_name not available throughout libzmq and restricted to local address
Solution: move to address.hpp/.cpp and generalize
2019-02-02 15:33:27 +01:00
Simon Giesecke
01371398e9 Problem: monitor events are unversioned
Solution: add monitor event socket option
2019-02-02 15:33:27 +01:00
Simon Giesecke
2e73554644 Problem: socks_connecter_t, vmci_connecter_t and vmci_listener_t duplicate code with stream_*_base_t
Solution: add TODO comments to resolve this debt
2019-02-02 15:23:56 +01:00
Simon Giesecke
b462cc0912 Problem: misleading comments referring to a "library shutdown"
Solution: change to refer to the context
2019-02-02 15:23:56 +01:00
Simon Giesecke
9a376fbe24 Problem: code duplication in get_address of ipc/tcp/tipc listener classes
Solution: pull up to base class
2019-02-02 15:23:56 +01:00
Simon Giesecke
5c81bbe82e Problem: norm_engine.cpp missing in CMakeLists.txt
Solution: added it
2019-02-02 15:23:56 +01:00
Luca Boccassi
4d8e5fb2e9
Merge pull request #3378 from sigiesec/refactor-stream-listeners-and-connecters
Refactor stream listeners and connecters
2019-02-01 11:26:13 +01:00
Luca Boccassi
1aa6f7070c
Merge pull request #3377 from sigiesec/fix-3376
Fix handling of random port numbers with tipc
2019-02-01 11:02:24 +01:00
Simon Giesecke
e162c8bda3 Problem: code duplication around getsockname
Solution: also use get_socket_address from base class
2019-02-01 04:58:57 -05:00
Simon Giesecke
2b04946f49 Problem: code duplication around getsockname
Solution: also use get_socket_address from base class
2019-02-01 04:58:57 -05:00
Simon Giesecke
c476cf3d14 Problem: implicit cast between signed and unsigned types on some platforms
Solution: perform explicit cast
2019-02-01 04:58:57 -05:00
Simon Giesecke
95eb8a7a99 Problem: parts of in_event duplicated across subclasses of stream_listener_base_t
Solution: extract function create_engine into base class
2019-02-01 04:58:57 -05:00
Simon Giesecke
93c1843f3e Problem: duplication across ipc_listener_t, tcp_listener_t, tipc_listener_t
Solution: extract common base class stream_listener_base_t
2019-02-01 04:58:57 -05:00
Simon Giesecke
a40a3b7a34 Problem: several data members in stream_connecter_base_t are visible more than necessary
Solution: make them private and adapt initialization order
2019-02-01 04:58:57 -05:00
Simon Giesecke
a766a4b67e Problem: reconnect_timer_id duplicated and essentially used only in base class
Solution: removed definitions and uses in subclasses
2019-02-01 04:58:57 -05:00
Simon Giesecke
bed3b0cfb4 Problem: tipc_listener_t data members not conforming to naming style
Solution: add underscore prefix
2019-02-01 04:58:57 -05:00
Simon Giesecke
2a5fb6cb8e Problem: ipc_listener_t data members not conforming to naming style
Solution: add underscore prefix
2019-02-01 04:58:57 -05:00
Simon Giesecke
7e73587741 Problem: duplication in *_event methods across subclasses of stream_connecter_base_t
Solution: pull up common code, introduce new create_engine function in base class
2019-02-01 04:58:57 -05:00
Simon Giesecke
a09099a615 Problem: process_term and close duplicated across subclasses of stream_connecter_base_t
Solution: pull up
2019-02-01 04:58:57 -05:00
Simon Giesecke
531df586d0 Problem: rm_fd code duplicated across stream_connecter_t subclasses
Solution: pull up tcp_connecter_t::rm_handle and use in all subclasses
2019-02-01 04:58:57 -05:00
Simon Giesecke
1a230e89ca Problem: process_plug, get_new_reconnect_ivl and add_reconnect_timer duplicated across subclasses of stream_connector_base_t
Solution: pull up to stream_connector_base_t
2019-02-01 04:58:57 -05:00
Simon Giesecke
74667ebcba Problem: destructors of tcp_connecter_t, ipc_connecter_t, tipc_connecter_t contain duplicated code
Solution: pull up to stream_connecter_base_t
2019-02-01 04:58:57 -05:00
Simon Giesecke
d6f8d246e2 Problem: data members are duplicated across tcp_connecter_t, ipc_connecter_t, tipc_connecter_t
Solution: extract common base class stream_connecter_base_t
2019-02-01 04:58:47 -05:00
Simon Giesecke
361d7168ad Problem: tipc_connector_t::_handle_valid is redundant
Solution: replace by checks against valid value of _handle
2019-02-01 04:33:03 -05:00
Simon Giesecke
a13eb1a9d8 Problem: ipc_connector_t::_handle_valid is redundant
Solution: replace by checks against valid value of _handle
2019-02-01 04:33:03 -05:00
Simon Giesecke
065e81879a Problem: tipc_connector_t::_timer_started is unspecifically named
Solution: rename to _reconnect_timer_started
2019-02-01 04:33:03 -05:00
Simon Giesecke
ca87aaed57 Problem: ipc_connector_t::_timer_started is unspecifically named
Solution: rename to _reconnect_timer_started
2019-02-01 04:33:03 -05:00
Simon Giesecke
c94ad64876 Problem: tipc_connector_t data members not conforming to naming conventions
Solution: add underscore prefix to data members
2019-02-01 04:33:03 -05:00
Simon Giesecke
58063a75a2 Problem: ipc_connector_t data members not conforming to naming conventions
Solution: add underscore prefix to data members
2019-02-01 04:33:03 -05:00
Simon Giesecke
4d362887bb Problem: stream_engine_t::_endpoint is unnecessarily non-const
Solution: declare _endpoint const
2019-02-01 04:33:03 -05:00
Simon Giesecke
091df743a8 Problem: stream_engine_t::_peer_address is unnecssarily non-const
Solution: extract initialization code into get_peer_address function and declare _peer_address const
2019-02-01 04:33:03 -05:00
Simon Giesecke
ae79b41d4c Problem: bug in tipc_listener_t::set_address, random port is determined but not used
Solution: assign result to address

Fixes #3376
2019-02-01 04:30:20 -05:00
Simon Giesecke
afe48e2b16 Problem: unnecessary explicit definitions/deletions of special member functions in tipc_address_t
Solution: remove them
2019-02-01 04:28:35 -05:00
Simon Giesecke
19b64709bb
Merge pull request #3374 from bluca/hurd
Problem: one more test fails on GNU/Hurd
2019-01-28 09:51:50 +01:00
Luca Boccassi
9fae3d1f10 Problem: one more test fails on GNU/Hurd
Solution: mark test_rebind_ipc as XFAIL on Hurd as it does not
implement getsockname on IPC and thus it's impossible to use
wildcard IPC binds.
Document that ZMQ_LAST_ENDPOINT does not work on Hurd with IPC.
2019-01-27 14:04:18 +00:00
Doron Somech
fe4e333334
Merge pull request #3369 from bluca/abi_checker_travis
Problem: have to check ABI compatibility manually
2019-01-20 20:24:09 +02:00
Luca Boccassi
f9b0945c1b Problem: have to check ABI compatibility manually
Solution: automate it on Travis
2019-01-20 16:38:17 +00:00
Constantin Rack
331fee4b38
Merge pull request #3368 from bluca/release_branch
Problem: race condition breaks automated OBS release
2019-01-20 16:51:26 +01:00
Luca Boccassi
51557b9b96 Problem: race condition breaks automated OBS release
Solution: instead of using a temporary release branch that gets
deleted after an arbitrary timer, which never matches the time OBS
actually takes to do a full git clone, keep the branch permanently
in place and simply move it forward to the latest tag on each
release.
2019-01-20 14:34:29 +00:00
Constantin Rack
329155655c
Merge pull request #3367 from bluca/alignment_cache_size
Problems: test failures on PPC and GNU/hurd
2019-01-20 08:42:03 +01:00
Luca Boccassi
3b6db4b370 Problem: test_pair_ipc fails on GNU/Hurd due to wildcard bind
Solution: mark it as XFAIL like the other tests that use ipc://*
2019-01-19 22:28:15 +00:00
Luca Boccassi
bfb4a868fc Problem: atomic intrinsics unreliable on PPC64 and RISC-V
Solution: prefer CXX11 atomics if they are available to compiler
intrinsics.
test_hwm_pubsub fails 50% of the times on PPC64 and RISC-V with an
apparent memory corruption of messages sent by the application thread
to the I/O thread when using compiler intrinsics.
Switching to CXX11 atomics makes the test reliable again. The
standard API should be preferred anyway, if available.
2019-01-19 21:42:54 +00:00
Luca Boccassi
8040e28b26 Problem: posix_memalign autoconf check broken on some platforms
Solution: import macro from autoconf-archive that works better
than AC_CHECK_FUNCS
2019-01-19 21:06:23 +00:00
Luca Boccassi
4a0c83fb12 Problem: yqueue false sharing issues on PPC64
Solution: detect cacheline size for aligment purposes at build time
instead of hard-coding it, so that PPC and S390 can align to a value
greater than the 64 bytes default.
Uses libc getconf program, and falls back to the previous value of 64
if not found.
2019-01-19 20:08:14 +00:00
Doron Somech
0761e6bb48
Merge pull request #3364 from bluca/thread_priority_get
Problem: ZMQ_SOCKET_LIMIT and ZMQ_THREAD_PRIORITY have the same value
2019-01-15 22:23:16 +02:00
Luca Boccassi
93b3689376 Problem: ZMQ_SOCKET_LIMIT and ZMQ_THREAD_PRIORITY have the same value
Solution: remove documents and tests for ZMQ_THREAD_PRIORITY getter. It
never worked and can never work as it has the same value as a get-only
option ZMQ_SOCKET_LIMIT. It cannot be changed without breaking ABI.
Note that the setter works fine as ZMQ_SOCKET_LIMIT is get-only.
2019-01-15 19:58:42 +00:00
Doron Somech
f0d97e0243
Merge pull request #3363 from bluca/tests_race_conditions
Problem: GCC warnings about string overflows in tests
2019-01-15 07:54:00 +02:00
Luca Boccassi
4d38552445 Problem: GCC warnings about string overflows in tests
Solution: mostly false positives, but fix them
2019-01-14 23:50:56 +00:00
Luca Boccassi
87dbd39ae0
Merge pull request #3361 from bluca/gssapi_pkgconfig
Problem: gssapi pkg-config check in configure.ac does not work
2019-01-14 20:59:49 +00:00
Luca Boccassi
73ae7a349b Problem: gssapi pkg-config check in configure.ac does not work
Solution: correctly enable the definition in platform.hpp so that the
gssapi support is actually built in if requested and available.
2019-01-14 14:51:03 +00:00
Constantin Rack
e21988d02b
Merge pull request #3360 from bluca/cve
Problem: NEWS for 4.3.1 does not mention CVE number
2019-01-14 11:02:02 +01:00
Luca Boccassi
bfba6e5a36 Problem: NEWS for 4.3.1 does not mention CVE number
Solution: add it now that it's been assigned
2019-01-14 09:54:19 +00:00
Simon Giesecke
2d02597964
Merge pull request #3359 from bluca/tests_race_conditions
Problem: test_rebind_ipc still fails
2019-01-14 08:09:57 +01:00
Luca Boccassi
d55956574d Problem: test_rebind_ipc still fails
Solution: create manually the random IPC file to reuse
2019-01-14 00:33:36 +00:00
Constantin Rack
ac9583973c
Merge pull request #3358 from bluca/tests_race_conditions
Problems: test failing on SPARC64 and hard-coded socket binds
2019-01-13 20:16:59 +01:00
Luca Boccassi
f64b697095 Problem: tests use hard-coded fixed IPC file path
Solution: use wildcards or random directories to avoid races when
multiple users are running the same test on the same machine
2019-01-13 14:50:54 +00:00
Luca Boccassi
4147957a5e Problem: test_security_zap fails on architectures that disallow unaligned pointer access
Solution: use memcpy instead of doing pointer arithmetics with casting
and dereferencing to fix the error on sparc64
2019-01-13 13:10:05 +00:00
Constantin Rack
6a3c8b46f6
Merge pull request #3357 from bluca/news
Problem: versions are out of date
2019-01-12 19:16:03 +01:00
Luca Boccassi
73d41cec57 Problem: versions are out of date
Solution: bump ABI and revisions and changelog now that v4.3.1 is out
2019-01-12 16:10:36 +00:00
Michael
bfc42d47ec Merge pull request #4 from zeromq/master
update fork to master
2016-02-04 00:21:02 +11:00
834 changed files with 35441 additions and 30762 deletions

View File

@ -38,7 +38,7 @@ SpaceInEmptyParentheses: false
SpacesInAngles: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Cpp11
Standard: Cpp03
SortIncludes: false

17
.clang-tidy Normal file → Executable file
View File

@ -9,21 +9,30 @@ Checks: "*,\
-fuchsia-default-arguments,\
-google-readability-todo,\
-google-runtime-int,\
-cppcoreguidelines-avoid-goto,\
-hicpp-avoid-goto, \
-cppcoreguidelines-pro-type-member-init,\
-cppcoreguidelines-pro-type-static-cast-downcast,\
# not applicable\
-readability-identifier-naming,\
# not applicable,\
-fuchsia-default-arguments-calls,\
-fuchsia-overloaded-operator,\
-fuchsia-statically-constructed-objects,\
# not currently a coding convention, C++11-specific, but conceivable,\
-modernize-use-nullptr,\
-modernize-use-equals-default,\
-modernize-deprecated-headers,\
# not currently a coding convention, C++11-specific and hard to implement,\
-hicpp-no-malloc,\
-hicpp-avoid-c-arrays,\
-modernize-avoid-c-arrays,\
-modernize-pass-by-value,\
-modernize-loop-convert,\
-modernize-use-auto,\
-modernize-use-trailing-return-type,\
-modernize-use-using,\
-modernize-return-braced-init-list,\
-cppcoreguidelines-avoid-c-arrays,\
-cppcoreguidelines-no-malloc,\
-cppcoreguidelines-owning-memory,\
-cppcoreguidelines-pro-type-union-access,\
@ -37,6 +46,8 @@ Checks: "*,\
# duplicates,\
-google-readability-braces-around-statements,\
-cppcoreguidelines-pro-type-cstyle-cast,\
-cppcoreguidelines-avoid-magic-numbers,\
-readability-magic-numbers,\
-hicpp-braces-around-statements,\
-hicpp-use-equals-default,\
-hicpp-deprecated-headers,\
@ -412,3 +423,7 @@ CheckOptions:
# value: '0'
# - key: readability-simplify-boolean-expr.ChainedConditionalReturn
# value: '0'
- key: modernize-use-override.OverrideSpelling
value: 'ZMQ_OVERRIDE'
- key: modernize-use-override.FinalSpelling
value: 'ZMQ_FINAL'

2
.git-blame-ignore-revs Normal file
View File

@ -0,0 +1,2 @@
# tree-wide clang format
41f459e1dc6f7cdedd1268298153c970e290b2ce

230
.github/workflows/CI.yaml vendored Normal file
View File

@ -0,0 +1,230 @@
name: CI
on:
push:
pull_request:
schedule:
- cron: "0 9 * * 5"
jobs:
build:
if: github.event_name == 'pull_request' || github.event_name == 'push'
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- platform: x64
configuration: release
os: windows-2019
WITH_LIBSODIUM: ON
ENABLE_CURVE: ON
CMAKE_GENERATOR: Visual Studio 16 2019
MSVCVERSION: v142
MSVCYEAR: vs2019
ARTIFACT_NAME: v142-x64
ENABLE_DRAFTS: ON
- os: ubuntu-latest
BUILD_TYPE: default
PACKAGES: asciidoctor
DRAFT: disabled
POLLER: select
- os: ubuntu-latest
BUILD_TYPE: default
DRAFT: disabled
POLLER: poll
- os: ubuntu-latest
BUILD_TYPE: android
NDK_VERSION: android-ndk-r25
DRAFT: disabled
- os: ubuntu-latest
BUILD_TYPE: coverage
PACKAGES: libkrb5-dev libnorm-dev libpgm-dev libgnutls28-dev lcov
DRAFT: enabled
GSSAPI: enabled
PGM: enabled
NORM: enabled
TIPC: enabled
TLS: enabled
VMCI: enabled
- os: ubuntu-latest
BUILD_TYPE: valgrind
PACKAGES: valgrind libgnutls28-dev
DRAFT: enabled
- os: ubuntu-latest
BUILD_TYPE: cmake
CURVE: libsodium
DRAFT: enabled
PACKAGES: cmake libsodium-dev
TLS: enabled
- os: ubuntu-latest
BUILD_TYPE: cmake
CURVE: libsodium
DRAFT: enabled
GSSAPI: enabled
PACKAGES: cmake libsodium-dev libkrb5-dev
TLS: enabled
- os: ubuntu-latest
BUILD_TYPE: cmake
DRAFT: enabled
PACKAGES: cmake clang-format-11
DO_CLANG_FORMAT_CHECK: 1
- os: ubuntu-latest
BUILD_TYPE: default
PACKAGES: libkrb5-dev libnorm-dev libpgm-dev libgnutls28-dev libsodium-dev libnss3-dev libbsd-dev
CURVE: libsodium
ADDRESS_SANITIZER: enabled
DRAFT: enabled
- os: ubuntu-latest
BUILD_TYPE: default
PACKAGES: libkrb5-dev libnorm-dev libpgm-dev libgnutls28-dev libsodium-dev libnss3-dev libbsd-dev
CURVE: libsodium
GSSAPI: enabled
PGM: enabled
NORM: enabled
TIPC: enabled
IPv6: ON
TLS: enabled
USE_NSS: yes
VMCI: enabled
DRAFT: enabled
- os: ubuntu-latest
BUILD_TYPE: default
PACKAGES: libkrb5-dev libnorm-dev libpgm-dev libgnutls28-dev libsodium-dev libnss3-dev
CURVE: libsodium
GSSAPI: enabled
PGM: enabled
NORM: enabled
TIPC: enabled
IPv6: ON
TLS: enabled
USE_NSS: yes
VMCI: enabled
DRAFT: enabled
FORCE_98: enabled
CXX: clang++
- os: ubuntu-latest
BUILD_TYPE: abi-compliance-checker
PACKAGES: abi-dumper abi-compliance-checker
DRAFT: disabled
- os: ubuntu-latest
BUILD_TYPE: cmake
PACKAGES: clang-tidy clang-tools
DRAFT: enabled
CXX: clang++
- os: macos-latest
BUILD_TYPE: default
PACKAGES: automake autoconf libtool
DRAFT: enabled
- os: macos-latest
BUILD_TYPE: default
PACKAGES: automake autoconf libtool libsodium
CURVE: libsodium
DRAFT: disabled
env:
platform: ${{ matrix.platform }}
configuration: ${{ matrix.configuration }}
WITH_LIBSODIUM: ${{ matrix.WITH_LIBSODIUM }}
ENABLE_CURVE: ${{ matrix.ENABLE_CURVE }}
CMAKE_GENERATOR: ${{ matrix.CMAKE_GENERATOR }}
MSVCVERSION: ${{ matrix.MSVCVERSION }}
MSVCYEAR: ${{ matrix.MSVCYEAR }}
ARTIFACT_NAME: ${{ matrix.ARTIFACT_NAME }}
ENABLE_DRAFTS: ${{ matrix.ENABLE_DRAFTS }}
SODIUM_INCLUDE_DIR: ${{ github.workspace }}\libsodium\src\libsodium\include"
SODIUM_LIBRARY_DIR: ${{ github.workspace }}\libsodium\bin\${{ matrix.platform }}\${{ matrix.configuration }}\${{ matrix.MSVCVERSION }}\dynamic"
LIBZMQ_SRCDIR: ${{ github.workspace }}\libzmq
BUILD_TYPE: ${{ matrix.BUILD_TYPE }}
CURVE: ${{ matrix.CURVE }}
DRAFT: ${{ matrix.DRAFT }}
ADDRESS_SANITIZER: ${{ matrix.ADDRESS_SANITIZER }}
DO_CLANG_FORMAT_CHECK: ${{ matrix.DO_CLANG_FORMAT_CHECK }}
FORCE_98: ${{ matrix.FORCE_98 }}
CXX: ${{ matrix.CXX }}
GSSAPI: ${{ matrix.GSSAPI }}
PGM: ${{ matrix.PGM }}
NORM: ${{ matrix.NORM }}
TIPC: ${{ matrix.TIPC }}
IPv6: ${{ matrix.IPv6 }}
TLS: ${{ matrix.TLS }}
USE_NSS: ${{ matrix.USE_NSS }}
VMCI: ${{ matrix.VMCI }}
POLLER: ${{ matrix.POLLER }}
NDK_VERSION: ${{ matrix.NDK_VERSION }}
ANDROID_NDK_ROOT: /tmp/${{ matrix.NDK_VERSION }}
steps:
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.0.2
if: matrix.os == 'windows-2019'
- uses: actions/checkout@v2
if: matrix.WITH_LIBSODIUM == 'ON'
with:
repository: jedisct1/libsodium
ref: stable
path: libsodium
- name: Compile libsodium
if: matrix.WITH_LIBSODIUM == 'ON' && matrix.os == 'windows-2019'
shell: cmd
working-directory: libsodium
run: msbuild /v:minimal /p:Configuration=%Configuration%DLL builds\msvc\%MSVCYEAR%\libsodium\libsodium.vcxproj
- name: Copy libsodium
if: matrix.WITH_LIBSODIUM == 'ON' && matrix.os == 'windows-2019'
shell: powershell
working-directory: libsodium
run: Copy-Item "bin\${env:Platform}\${env:Configuration}\${env:MSVCVERSION}\dynamic\libsodium.lib" -Destination "bin\${env:Platform}\${env:Configuration}\${env:MSVCVERSION}\dynamic\sodium.lib"
- uses: actions/checkout@v2
with:
path: libzmq
- run: md build_libzmq
shell: cmd
if: matrix.os == 'windows-2019'
- name: build-win
if: matrix.os == 'windows-2019'
shell: cmd
working-directory: build_libzmq
run: |
cmake -D CMAKE_INCLUDE_PATH="%SODIUM_INCLUDE_DIR%" -D CMAKE_LIBRARY_PATH="%SODIUM_LIBRARY_DIR%" -D WITH_LIBSODIUM="%WITH_LIBSODIUM%" -D ENABLE_DRAFTS="%ENABLE_DRAFTS%" -D ENABLE_ANALYSIS="%ENABLE_ANALYSIS%" -D ENABLE_CURVE="%ENABLE_CURVE%" -D API_POLLER="%API_POLLER%" -D POLLER="%POLLER%" %EXTRA_FLAGS% -D WITH_LIBSODIUM="%WITH_LIBSODIUM%" -D LIBZMQ_WERROR="%LIBZMQ_WERROR%" -G "%CMAKE_GENERATOR%" "%LIBZMQ_SRCDIR%"
cmake --build . --config %configuration% --target install -- -verbosity:Minimal -maxcpucount
- name: test
if: matrix.os == 'windows-2019'
shell: cmd
working-directory: build_libzmq
run: ctest -C "%Configuration%"
- name: Add debian packages
if: matrix.os == 'ubuntu-latest' && (matrix.BUILD_TYPE != 'coverage' || github.repository == 'zeromq/libzmq')
uses: myci-actions/add-deb-repo@10
with:
repo-name: obs
repo: deb http://download.opensuse.org/repositories/network:/messaging:/zeromq:/git-stable/xUbuntu_20.04/ ./
keys-asc: https://download.opensuse.org/repositories/network:/messaging:/zeromq:/git-stable/xUbuntu_20.04/Release.key
install: ${{ matrix.PACKAGES }}
- name: Add brew packages
if: matrix.os == 'macos-latest'
shell: bash
run: brew install ${{ matrix.PACKAGES }}
- name: build
if: (matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest') && (matrix.BUILD_TYPE != 'coverage' || github.repository == 'zeromq/libzmq')
shell: bash
working-directory: libzmq
run: ./ci_build.sh
- name: coveralls
if: matrix.BUILD_TYPE == 'coverage' && github.repository == 'zeromq/libzmq'
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
path-to-lcov: /home/runner/work/libzmq/libzmq/libzmq/lcov.info
cron:
runs-on: ubuntu-latest
if: github.event_name == 'schedule'
strategy:
fail-fast: false
env:
BUILD_TYPE: cmake
CXX: clang++
CLANG_TIDY: clang-tidy
steps:
- name: Add debian packages
run: apt-get install --yes clang-tidy clang-tools
- name: build
shell: bash
working-directory: libzmq
run: ./ci_build.sh

50
.github/workflows/Docs.yaml vendored Normal file
View File

@ -0,0 +1,50 @@
# Simple workflow for deploying static content to GitHub Pages
name: Deploy API docs content to Pages
on:
# Runs on pushes targeting the default branch
push:
branches: ["master"]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
# Single deploy job since we're just deploying
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
## libzmq-specific CI/CD ##
- name: Install AsciiDoctor
run: sudo apt install -y asciidoctor
- name: Convert AsciiDoc with AsciiDoctor into HTML
run: ./autogen.sh && ./configure && make --directory=doc
## boilerplate steps to publish github Pages ##
- name: Setup Pages
uses: actions/configure-pages@v3
- name: Upload artifact
uses: actions/upload-pages-artifact@v2
with:
path: 'doc/'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v2

35
.github/workflows/Fuzzers.yaml vendored Normal file
View File

@ -0,0 +1,35 @@
name: Fuzzers
on:
push:
branches:
- master
pull_request:
paths:
- '.github/workflows/Fuzzers.yaml'
- 'src/*'
- 'tests/*fuzzer.cpp'
jobs:
Fuzzing:
runs-on: ubuntu-latest
if: github.repository == 'zeromq/libzmq'
strategy:
matrix:
san: [address, memory, undefined]
steps:
- name: Build Fuzzers (${{ matrix.san }})
id: build
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
with:
sanitizer: ${{ matrix.san }}
oss-fuzz-project-name: 'libzmq'
allowed-broken-targets-percentage: 0
dry-run: false
- name: Run Fuzzers (${{ matrix.san }})
id: run
uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
with:
sanitizer: ${{ matrix.san }}
oss-fuzz-project-name: 'libzmq'
allowed-broken-targets-percentage: 0
dry-run: false
fuzz-seconds: 300

253
.gitignore vendored
View File

@ -1,18 +1,48 @@
syntax: glob # for hg-git users
# Generated build scripts and IDE generating files
## autotools
/Makefile
builds/Makefile
builds/deprecated-msvc/Makefile
configure
doc/Makefile
Makefile.in
configure
doc/__pagelist
libtool
libunity.a
### automake
Makefile.in
.deps/
.dirstamp
### autoconf
autom4te.cache
aclocal.m4
config
config.status
config.log
aclocal.m4
autom4te.cache
configure
stamp-h1
## CMake
cmake-build-debug/
build/
## Android
builds/android/prefix
## IntelliJ
.idea/
## Visual Code
.vscode/
## other results-like folders
bin/
lib/
obj/
## Doxygen
doxygen/
## Packaging
packaging/nuget/*.nupkg
# Test related build files
libtestutil.a
libunity.a
# Some build outputs and temporal files
*.o
*.gcno
*.gcda
@ -27,166 +57,67 @@ autom4te.cache
*.ps
*~
.*~
.deps
.dirstamp
.libs
curve_keygen
test_ancillaries
test_heartbeats
test_msg_ffn
test_sockopt_hwm
test_resource
test_ipc_wildcard
test_stream_empty
test_stream_timeout
test_issue_566
test_ctx_destroy
test_term_endpoint
test_system
test_monitor
test_last_endpoint
test_pair_inproc
test_pair_ipc
test_pair_tcp
test_rebind_ipc
test_reqrep_inproc
test_reqrep_ipc
test_reqrep_tcp
test_shutdown_stress
test_hwm
test_timeo
test_reqrep_device
test_reqrep_drop
test_sub_forward
test_invalid_rep
test_msg_flags
test_ts_context
test_connect_resolve
test_immediate
test_term_endpoint
test_router_mandatory
test_disconnect_inproc
test_unbind_inproc
test_unbind_wildcard
test_raw_sock
test_disconnect_inproc
test_ctx_options
test_iov
test_security
test_security_curve
test_probe_router
test_stream
test_spec_dealer
test_spec_pushpull
test_spec_rep
test_spec_req
test_spec_router
test_req_correlate
test_req_relaxed
test_fork
test_conflate
test_inproc_connect
test_linger
test_security_null
test_security_plain
test_proxy
test_proxy_single_socket
test_proxy_terminate
test_abstract_ipc
test_filter_ipc
test_connect_delay_tipc
test_pair_tipc
test_reqrep_device_tipc
test_reqrep_tipc
test_router_handover
test_router_mandatory_tipc
test_router_notify
test_shutdown_stress_tipc
test_sub_forward_tipc
test_term_endpoint_tipc
test_many_sockets
test_diffserv
test_connect_rid
test_srcfd
test_stream_disconnect
test_proxy_chain
test_bind_src_address
test_metadata
test_id2fd
test_capabilities
test_hwm_pubsub
test_router_mandatory_hwm
test_xpub_nodrop
test_xpub_manual
test_xpub_welcome_msg
test_atomics
test_client_drop_more
test_client_server
test_server_drop_more
test_thread_safe
test_thread_safe_polling
test_getsockopt_memset
test_setsockopt
test_stream_exceeds_buffer
test_poller
test_timers
test_radio_dish
test_udp
test_scatter_gather
test_socketopt_hwm
test_use_fd
test_pub_invert_matching
test_dgram
test_base85
test_bind_after_connect_tcp
test_sodium
test_zmq_poll_fd
test_reconnect_ivl
test_address_tipc
test_app_meta
test_security_gssapi
test_security_zap
test_socket_null
test_xpub_verbose
test_mock_pub_sub
test_proxy_hwm
unittest_ip_resolver
unittest_mtrie
unittest_poller
unittest_udp_address
unittest_ypipe
# /src
## Ignore generated files in configuration process
src/platform.hpp*
src/libzmq.pc
# /tools
## Executable binaries are ignored
tools/curve_keygen
## Executable source files must be tracked
!tools/*.[ch]
!tools/*.[ch]pp
# /tests
## Test binaries and logs are ignored
tests/test*
tests/test*.log
tests/test*.trs
## Test source files must be tracked
!tests/test*.[ch]
!tests/test*.[ch]pp
## Build script and documentations must be tracked
!tests/CMakeLists.txt
!tests/README.md
# /unittests
## Unit test binaries and logs are ignored
unittests/unittest_*
unittests/unittest*.log
unittests/unittest*.trs
src/platform.hpp*
src/stamp-h1
local_lat
local_thr
remote_lat
remote_thr
inproc_lat
inproc_thr
benchmark_radix_tree
!local_lat/
!local_thr/
!remote_lat/
!remote_thr/
!inproc_lat/
!inproc_thr/
!benchmark_radix_tree/
doc/*.1
doc/*.3
doc/*.7
## Unit test source files must be tracked
!unittests/unittest*.[ch]
!unittests/unittest*.[ch]pp
## Build script and documentations must be tracked
!unittests/CMakeLists.txt
!unittests/README.md
# check test log files
test-suite*.log
# /perf
## Benchmarking binaries and result files are ignored
perf/*_lat
perf/*_thr
perf/benchmark_*
perf/results
## Benchmarking source files must be tracked
!perf/*.[ch]
!perf/*.[ch]pp
## Benchmarking tool scripts must be tracked
!perf/*.py
!perf/*.sh
# /doc
## Generated document files
doc/*.[137]
doc/*.html
doc/*.xml
doxygen/
src/libzmq.pc
bin/
lib/
obj/
builds/android/prefix/
packaging/nuget/*.nupkg
# external libraries and release archive files
foreign/openpgm/*
!foreign/openpgm/*.tar.bz2
!foreign/openpgm/*.tar.gz
@ -194,5 +125,5 @@ foreign/openpgm/*
zeromq-*.tar.gz
zeromq-*.zip
core
build
test-suite.log
mybuild

26
.obs/workflows.yml Normal file
View File

@ -0,0 +1,26 @@
workflow:
steps:
- branch_package:
source_project: network:messaging:zeromq:git-draft
source_package: libzmq
target_project: network:messaging:zeromq:ci
rebuild:
steps:
- trigger_services:
project: network:messaging:zeromq:git-stable
package: libzmq
- trigger_services:
project: network:messaging:zeromq:git-draft
package: libzmq
filters:
event: push
release:
steps:
- trigger_services:
project: network:messaging:zeromq:release-stable
package: libzmq
- trigger_services:
project: network:messaging:zeromq:release-draft
package: libzmq
filters:
event: tag_push

38
.readthedocs.yaml Normal file
View File

@ -0,0 +1,38 @@
#
# libzmq readthedocs.io integration
#
# This configuration file is processed by readthedocs.io to rebuild the
# libzmq documentation using Asciidoctor, see
# https://docs.readthedocs.io/en/stable/build-customization.html#asciidoc
version: "2"
formats:
- htmlzip
build:
os: "ubuntu-22.04"
tools:
nodejs: "20"
# NOTE: as of Nov 2023, build.apt_packages is NOT considered when using build.commands
#apt_packages:
# - automake
# - autoconf
# - cmake
# - libtool
commands:
# install required tools
- npm install -g asciidoctor
# HTML docs
# ---------
- doc/create_page_list.sh "$(pwd)/doc/__pagelist" "$(pwd)/doc"
- asciidoctor --backend html --destination-dir $READTHEDOCS_OUTPUT/html --attribute stylesheet=asciidoctor.css --attribute zmq_version='4.3.6' --attribute zmq_pagelist_dir=$(pwd)/doc doc/*.adoc
# HTMLZIP docs
# ------------
# Note that for usability we make sure zip will create a zipfile containing just a flat list of HTML files;
# to achieve that it's important to avoid storing absolute paths when invoking "zip", thus we use -j
# Also note that the archive name should match exactly the project slug, "libzmq" in this case.
- mkdir -p $READTHEDOCS_OUTPUT/htmlzip/
- cd $READTHEDOCS_OUTPUT/html && zip -j ../htmlzip/libzmq.zip *.html

View File

@ -4,16 +4,13 @@ language: c
os:
- linux
- osx
dist: trusty
dist: bionic
cache: ccache
env:
matrix:
- BUILD_TYPE=default CURVE=tweetnacl DRAFT=enabled
- BUILD_TYPE=cmake CURVE=tweetnacl
- BUILD_TYPE=default
# tokens to deploy releases on OBS and create/delete temporary branch on Github.
# 1) Create a token on https://github.com/settings/tokens/new with "public_repo"
@ -26,125 +23,6 @@ env:
- secure: lbZSzmqN39QdJwewKOZgq/1ijPKuyx9MFrGzMqXj2+eOSlaZS/tNavHMdKJOev+qJGK9wxmwzxOxS10AiH+AvN7WBacXX4ZtudjScz2HKJRDWTKyzMbzyScq51afniItzrsm+Vo8NHkenNFkux0sSbh0aHlpkLwrGQu+WZWcDN4=
- secure: "ZFL7hLJlGwYix8fF835OnQYakBt/o5iS7IfSW7el44ejEvGAOM9O5/ufxCcqSqn8Np7nOaM3RriAVTqWPZD6S7tMeflGTSGYHPYwWUc83z4rUPyG2FWVKXdB8ufpebAwu3hCgLiSmVeoQG47dl6xNk1oKCd+3UIjgz33u1Ecfps="
matrix:
include:
- if: type = cron OR (branch =~ analyze$ AND type = push)
env: BUILD_TYPE=cmake CLANG_TIDY=/usr/bin/clang-tidy-6.0 CC=clang-6.0 CXX=clang++-6.0
os: linux
compiler: clang
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-trusty-6.0
packages:
- clang-6.0
- clang-tools-6.0
- clang-tidy-6.0
- env: BUILD_TYPE=default CURVE=tweetnacl IPv6=ON
os: linux
dist: precise
sudo: false
- env: BUILD_TYPE=coverage CURVE=tweetnacl DRAFT=enabled
os: linux
addons:
apt:
packages:
- lcov
- env: BUILD_TYPE=valgrind CURVE=tweetnacl DRAFT=enabled
os: linux
addons:
apt:
packages:
- valgrind
- env: BUILD_TYPE=default CURVE=libsodium GSSAPI=enabled PGM=enabled NORM=enabled
os: linux
addons:
apt:
sources:
- sourceline: 'deb http://download.opensuse.org/repositories/network:/messaging:/zeromq:/git-stable/xUbuntu_14.04/ ./'
key_url: 'http://download.opensuse.org/repositories/network:/messaging:/zeromq:/git-stable/xUbuntu_14.04/Release.key'
packages:
- libkrb5-dev
- libnorm-dev
- libpgm-dev
- libsodium-dev
- asciidoc
- xmlto
- env: BUILD_TYPE=default CURVE=libsodium DRAFT=enabled GSSAPI=enabled PGM=enabled NORM=enabled TIPC=enabled
os: linux
sudo: required
addons:
apt:
sources:
- sourceline: 'deb http://download.opensuse.org/repositories/network:/messaging:/zeromq:/git-stable/xUbuntu_14.04/ ./'
key_url: 'http://download.opensuse.org/repositories/network:/messaging:/zeromq:/git-stable/xUbuntu_14.04/Release.key'
packages:
- libkrb5-dev
- libnorm-dev
- libpgm-dev
- libsodium-dev
- env: BUILD_TYPE=default CURVE=libsodium DRAFT=enabled
os: osx
- env: BUILD_TYPE=default CURVE=tweetnacl DRAFT=enabled ADDRESS_SANITIZER=enabled
os: linux
dist: trusty
addons:
apt:
sources:
- sourceline: 'ppa:ubuntu-toolchain-r/test'
packages:
- g++-6
- gcc-6
- env: BUILD_TYPE=android CURVE=tweetnacl
os: linux
dist: trusty
- env: BUILD_TYPE=cmake DO_CLANG_FORMAT_CHECK=1 CLANG_FORMAT=/usr/local/clang-5.0.0/bin/clang-format
os: linux
addons:
apt:
sources:
- llvm-toolchain-trusty-5.0
packages:
- clang-5.0
- env: BUILD_TYPE=default POLLER=poll
os: linux
- env: BUILD_TYPE=default POLLER=select
os: linux
- env: CXX=clang++ BUILD_TYPE=default CURVE=libsodium GSSAPI=enabled PGM=enabled NORM=enabled FORCE_98=enabled
os: linux
compiler: clang
addons:
apt:
sources:
- sourceline: 'deb http://download.opensuse.org/repositories/network:/messaging:/zeromq:/git-stable/xUbuntu_14.04/ ./'
key_url: 'http://download.opensuse.org/repositories/network:/messaging:/zeromq:/git-stable/xUbuntu_14.04/Release.key'
packages:
- libkrb5-dev
- libnorm-dev
- libpgm-dev
- libsodium-dev
sudo: false
before_install:
- if [ $TRAVIS_OS_NAME == "osx" -a $BUILD_TYPE == "android" ] ; then brew update; brew install binutils ; fi
- if [ $TRAVIS_OS_NAME == "osx" -a $CURVE == "libsodium" ] ; then brew update; brew install libsodium ; fi
- if [ -n "$CLANG_TIDY" ] ; then
curl -L https://sonarcloud.io/static/cpp/build-wrapper-linux-x86.zip -o build-wrapper-linux-x86.zip ;
unzip build-wrapper-linux-x86.zip ;
export SONARCLOUD_BUILD_WRAPPER_PATH="$(pwd)/build-wrapper-linux-x86/" ;
curl -L https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.1.0.1141-linux.zip -o sonar-scanner-cli.zip ;
unzip sonar-scanner-cli.zip ;
export SONAR_SCANNER_CLI_PATH="$(pwd)/sonar-scanner-3.1.0.1141-linux/bin/" ;
fi
before_script:
# ZMQ stress tests need more open socket (files) than the usual default
# On OSX, it seems the way to set the max files limit is constantly changing, so
# try to use all known knobs to ensure compatibility across various versions
- if [ $TRAVIS_OS_NAME == "osx" ] ; then sudo sysctl -w kern.maxfiles=64000 ; sudo sysctl -w kern.maxfilesperproc=64000 ; sudo launchctl limit maxfiles 64000 64000 ; ulimit -n 64000; fi
# Build and check this project according to the BUILD_TYPE
script: ./ci_build.sh

View File

@ -27,6 +27,7 @@ Bernd Prager
Bob Beaty
Brandon Carpenter
Brett Cameron
Brett Viren
Brian Buchanan
Burak Arslan
Carl Clemens
@ -69,7 +70,6 @@ Jon Dyte
Kamil Shakirov
Ken Steele
Kouhei Sutou
Laurent Alebarde
Leonardo J. Consoni
Lionel Flandrin
Lourens Naudé
@ -120,6 +120,7 @@ Toralf Wittner
Tore Halvorsen
Trevor Bernard
Vitaly Mayatskikh
Yacheng Zhou
Credits
=======

File diff suppressed because it is too large Load Diff

674
COPYING
View File

@ -1,674 +0,0 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.

View File

@ -1,181 +0,0 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.
0. Additional Definitions.
As used herein, "this License" refers to version 3 of the GNU Lesser
General Public License, and the "GNU GPL" refers to version 3 of the GNU
General Public License.
"The Library" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.
An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.
A "Combined Work" is a work produced by combining or linking an
Application with the Library. The particular version of the Library
with which the Combined Work was made is also called the "Linked
Version".
The "Minimal Corresponding Source" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.
The "Corresponding Application Code" for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.
2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:
a) under this License, provided that you make a good faith effort to
ensure that, in the event an Application does not supply the
function or data, the facility still operates, and performs
whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of
this License applicable to that copy.
3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from
a header file that is part of the Library. You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that the
Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this license
document.
4. Combined Works.
You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of
the following:
a) Give prominent notice with each copy of the Combined Work that
the Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this license
document.
c) For a Combined Work that displays copyright notices during
execution, include the copyright notice for the Library among
these notices, as well as a reference directing the user to the
copies of the GNU GPL and this license document.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this
License, and the Corresponding Application Code in a form
suitable for, and under terms that permit, the user to
recombine or relink the Application with a modified version of
the Linked Version to produce a modified Combined Work, in the
manner specified by section 6 of the GNU GPL for conveying
Corresponding Source.
1) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (a) uses at run time
a copy of the Library already present on the user's computer
system, and (b) will operate properly with a modified version
of the Library that is interface-compatible with the Linked
Version.
e) Provide Installation Information, but only if you would otherwise
be required to provide such information under section 6 of the
GNU GPL, and only to the extent that such information is
necessary to install and execute a modified version of the
Combined Work produced by recombining or relinking the
Application with a modified version of the Linked Version. (If
you use option 4d0, the Installation Information must accompany
the Minimal Corresponding Source and Corresponding Application
Code. If you use option 4d1, you must provide the Installation
Information in the manner specified by section 6 of the GNU GPL
for conveying Corresponding Source.)
5. Combined Libraries.
You may place library facilities that are a work based on the
Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work based
on the Library, uncombined with any other library facilities,
conveyed under the terms of this License.
b) Give prominent notice with the combined library that part of it
is a work based on the Library, and explaining where to find the
accompanying uncombined form of the same work.
6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.
--------------------------------------------------------------------------------
SPECIAL EXCEPTION GRANTED BY COPYRIGHT HOLDERS
As a special exception, copyright holders give you permission to link this
library with independent modules to produce an executable, regardless of
the license terms of these independent modules, and to copy and distribute
the resulting executable under terms of your choice, provided that you also
meet, for each linked independent module, the terms and conditions of
the license of that module. An independent module is a module which is not
derived from or based on this library. If you modify this library, you must
extend this exception to your version of the library.
Note: this exception relieves you of any obligations under sections 4 and 5
of this license, and section 6 of the GNU General Public License.

View File

@ -1,11 +1,32 @@
FROM ubuntu:14.04
FROM debian:buster-slim AS builder
LABEL maintainer="ZeroMQ Project <zeromq@imatix.com>"
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update -qq \
&& apt-get install -qq --yes --no-install-recommends \
autoconf \
automake \
build-essential \
git \
libkrb5-dev \
libsodium-dev \
libtool \
pkg-config \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /opt/libzmq
COPY . .
RUN ./autogen.sh \
&& ./configure --prefix=/usr/local --with-libsodium --with-libgssapi_krb5 \
&& make \
&& make check \
&& make install
MAINTAINER ZeroMQ Project <zeromq@imatix.com>
RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y git build-essential libtool autoconf automake pkg-config unzip libkrb5-dev
RUN cd /tmp && git clone git://github.com/jedisct1/libsodium.git && cd libsodium && git checkout e2a30a && ./autogen.sh && ./configure && make check && make install && ldconfig
RUN cd /tmp && git clone --depth 1 git://github.com/zeromq/libzmq.git && cd libzmq && ./autogen.sh && ./configure && make
# RUN cd /tmp/libzmq && make check
RUN cd /tmp/libzmq && make install && ldconfig
RUN rm /tmp/* -rf
FROM debian:buster-slim
LABEL maintainer="ZeroMQ Project <zeromq@imatix.com>"
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update -qq \
&& apt-get install -qq --yes --no-install-recommends \
libkrb5-dev \
libsodium23 \
&& rm -rf /var/lib/apt/lists/*
COPY --from=builder /usr/local /usr/local
RUN ldconfig && ldconfig -p | grep libzmq

11
INSTALL
View File

@ -137,6 +137,17 @@ The simplest way to compile this package is:
6. Often, you can also type `make uninstall' to remove the installed
files again.
OS X Builds - Documentation
===========================
Basic installation on OS X may fail in `Making all in doc' step. This
error can be resolved by adding environment variable for shell.
export XML_CATALOG_FILES=/usr/local/etc/xml/catalog
Write command above in shell for instant resolve, or append command into
shell profile file and reload for permanent resolve.
Compilers and Options
=====================

2
Jenkinsfile vendored
View File

@ -443,7 +443,7 @@ pipeline {
echo "Used: myDEPLOY_JOB_NAME:${myDEPLOY_JOB_NAME} myDEPLOY_BRANCH_PATTERN:${myDEPLOY_BRANCH_PATTERN} myDEPLOY_REPORT_RESULT:${myDEPLOY_REPORT_RESULT}"
if ( (myDEPLOY_JOB_NAME != "") && (myDEPLOY_BRANCH_PATTERN != "") ) {
if ( env.BRANCH_NAME =~ myDEPLOY_BRANCH_PATTERN ) {
def GIT_URL = sh(returnStdout: true, script: """git remote -v | egrep '^origin' | awk '{print \$2}' | head -1""").trim()
def GIT_URL = sh(returnStdout: true, script: """git remote -v | grep -E '^origin' | awk '{print \$2}' | head -1""").trim()
def GIT_COMMIT = sh(returnStdout: true, script: 'git rev-parse --verify HEAD').trim()
def DIST_ARCHIVE = ""
if ( params.DO_DIST_DOCS ) { DIST_ARCHIVE = env.BUILD_URL + "artifact/__dist.tar.gz" }

373
LICENSE Normal file
View File

@ -0,0 +1,373 @@
Mozilla Public License Version 2.0
==================================
1. Definitions
--------------
1.1. "Contributor"
means each individual or legal entity that creates, contributes to
the creation of, or owns Covered Software.
1.2. "Contributor Version"
means the combination of the Contributions of others (if any) used
by a Contributor and that particular Contributor's Contribution.
1.3. "Contribution"
means Covered Software of a particular Contributor.
1.4. "Covered Software"
means Source Code Form to which the initial Contributor has attached
the notice in Exhibit A, the Executable Form of such Source Code
Form, and Modifications of such Source Code Form, in each case
including portions thereof.
1.5. "Incompatible With Secondary Licenses"
means
(a) that the initial Contributor has attached the notice described
in Exhibit B to the Covered Software; or
(b) that the Covered Software was made available under the terms of
version 1.1 or earlier of the License, but not also under the
terms of a Secondary License.
1.6. "Executable Form"
means any form of the work other than Source Code Form.
1.7. "Larger Work"
means a work that combines Covered Software with other material, in
a separate file or files, that is not Covered Software.
1.8. "License"
means this document.
1.9. "Licensable"
means having the right to grant, to the maximum extent possible,
whether at the time of the initial grant or subsequently, any and
all of the rights conveyed by this License.
1.10. "Modifications"
means any of the following:
(a) any file in Source Code Form that results from an addition to,
deletion from, or modification of the contents of Covered
Software; or
(b) any new file in Source Code Form that contains any Covered
Software.
1.11. "Patent Claims" of a Contributor
means any patent claim(s), including without limitation, method,
process, and apparatus claims, in any patent Licensable by such
Contributor that would be infringed, but for the grant of the
License, by the making, using, selling, offering for sale, having
made, import, or transfer of either its Contributions or its
Contributor Version.
1.12. "Secondary License"
means either the GNU General Public License, Version 2.0, the GNU
Lesser General Public License, Version 2.1, the GNU Affero General
Public License, Version 3.0, or any later versions of those
licenses.
1.13. "Source Code Form"
means the form of the work preferred for making modifications.
1.14. "You" (or "Your")
means an individual or a legal entity exercising rights under this
License. For legal entities, "You" includes any entity that
controls, is controlled by, or is under common control with You. For
purposes of this definition, "control" means (a) the power, direct
or indirect, to cause the direction or management of such entity,
whether by contract or otherwise, or (b) ownership of more than
fifty percent (50%) of the outstanding shares or beneficial
ownership of such entity.
2. License Grants and Conditions
--------------------------------
2.1. Grants
Each Contributor hereby grants You a world-wide, royalty-free,
non-exclusive license:
(a) under intellectual property rights (other than patent or trademark)
Licensable by such Contributor to use, reproduce, make available,
modify, display, perform, distribute, and otherwise exploit its
Contributions, either on an unmodified basis, with Modifications, or
as part of a Larger Work; and
(b) under Patent Claims of such Contributor to make, use, sell, offer
for sale, have made, import, and otherwise transfer either its
Contributions or its Contributor Version.
2.2. Effective Date
The licenses granted in Section 2.1 with respect to any Contribution
become effective for each Contribution on the date the Contributor first
distributes such Contribution.
2.3. Limitations on Grant Scope
The licenses granted in this Section 2 are the only rights granted under
this License. No additional rights or licenses will be implied from the
distribution or licensing of Covered Software under this License.
Notwithstanding Section 2.1(b) above, no patent license is granted by a
Contributor:
(a) for any code that a Contributor has removed from Covered Software;
or
(b) for infringements caused by: (i) Your and any other third party's
modifications of Covered Software, or (ii) the combination of its
Contributions with other software (except as part of its Contributor
Version); or
(c) under Patent Claims infringed by Covered Software in the absence of
its Contributions.
This License does not grant any rights in the trademarks, service marks,
or logos of any Contributor (except as may be necessary to comply with
the notice requirements in Section 3.4).
2.4. Subsequent Licenses
No Contributor makes additional grants as a result of Your choice to
distribute the Covered Software under a subsequent version of this
License (see Section 10.2) or under the terms of a Secondary License (if
permitted under the terms of Section 3.3).
2.5. Representation
Each Contributor represents that the Contributor believes its
Contributions are its original creation(s) or it has sufficient rights
to grant the rights to its Contributions conveyed by this License.
2.6. Fair Use
This License is not intended to limit any rights You have under
applicable copyright doctrines of fair use, fair dealing, or other
equivalents.
2.7. Conditions
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
in Section 2.1.
3. Responsibilities
-------------------
3.1. Distribution of Source Form
All distribution of Covered Software in Source Code Form, including any
Modifications that You create or to which You contribute, must be under
the terms of this License. You must inform recipients that the Source
Code Form of the Covered Software is governed by the terms of this
License, and how they can obtain a copy of this License. You may not
attempt to alter or restrict the recipients' rights in the Source Code
Form.
3.2. Distribution of Executable Form
If You distribute Covered Software in Executable Form then:
(a) such Covered Software must also be made available in Source Code
Form, as described in Section 3.1, and You must inform recipients of
the Executable Form how they can obtain a copy of such Source Code
Form by reasonable means in a timely manner, at a charge no more
than the cost of distribution to the recipient; and
(b) You may distribute such Executable Form under the terms of this
License, or sublicense it under different terms, provided that the
license for the Executable Form does not attempt to limit or alter
the recipients' rights in the Source Code Form under this License.
3.3. Distribution of a Larger Work
You may create and distribute a Larger Work under terms of Your choice,
provided that You also comply with the requirements of this License for
the Covered Software. If the Larger Work is a combination of Covered
Software with a work governed by one or more Secondary Licenses, and the
Covered Software is not Incompatible With Secondary Licenses, this
License permits You to additionally distribute such Covered Software
under the terms of such Secondary License(s), so that the recipient of
the Larger Work may, at their option, further distribute the Covered
Software under the terms of either this License or such Secondary
License(s).
3.4. Notices
You may not remove or alter the substance of any license notices
(including copyright notices, patent notices, disclaimers of warranty,
or limitations of liability) contained within the Source Code Form of
the Covered Software, except that You may alter any license notices to
the extent required to remedy known factual inaccuracies.
3.5. Application of Additional Terms
You may choose to offer, and to charge a fee for, warranty, support,
indemnity or liability obligations to one or more recipients of Covered
Software. However, You may do so only on Your own behalf, and not on
behalf of any Contributor. You must make it absolutely clear that any
such warranty, support, indemnity, or liability obligation is offered by
You alone, and You hereby agree to indemnify every Contributor for any
liability incurred by such Contributor as a result of warranty, support,
indemnity or liability terms You offer. You may include additional
disclaimers of warranty and limitations of liability specific to any
jurisdiction.
4. Inability to Comply Due to Statute or Regulation
---------------------------------------------------
If it is impossible for You to comply with any of the terms of this
License with respect to some or all of the Covered Software due to
statute, judicial order, or regulation then You must: (a) comply with
the terms of this License to the maximum extent possible; and (b)
describe the limitations and the code they affect. Such description must
be placed in a text file included with all distributions of the Covered
Software under this License. Except to the extent prohibited by statute
or regulation, such description must be sufficiently detailed for a
recipient of ordinary skill to be able to understand it.
5. Termination
--------------
5.1. The rights granted under this License will terminate automatically
if You fail to comply with any of its terms. However, if You become
compliant, then the rights granted under this License from a particular
Contributor are reinstated (a) provisionally, unless and until such
Contributor explicitly and finally terminates Your grants, and (b) on an
ongoing basis, if such Contributor fails to notify You of the
non-compliance by some reasonable means prior to 60 days after You have
come back into compliance. Moreover, Your grants from a particular
Contributor are reinstated on an ongoing basis if such Contributor
notifies You of the non-compliance by some reasonable means, this is the
first time You have received notice of non-compliance with this License
from such Contributor, and You become compliant prior to 30 days after
Your receipt of the notice.
5.2. If You initiate litigation against any entity by asserting a patent
infringement claim (excluding declaratory judgment actions,
counter-claims, and cross-claims) alleging that a Contributor Version
directly or indirectly infringes any patent, then the rights granted to
You by any and all Contributors for the Covered Software under Section
2.1 of this License shall terminate.
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
end user license agreements (excluding distributors and resellers) which
have been validly granted by You or Your distributors under this License
prior to termination shall survive termination.
************************************************************************
* *
* 6. Disclaimer of Warranty *
* ------------------------- *
* *
* Covered Software is provided under this License on an "as is" *
* basis, without warranty of any kind, either expressed, implied, or *
* statutory, including, without limitation, warranties that the *
* Covered Software is free of defects, merchantable, fit for a *
* particular purpose or non-infringing. The entire risk as to the *
* quality and performance of the Covered Software is with You. *
* Should any Covered Software prove defective in any respect, You *
* (not any Contributor) assume the cost of any necessary servicing, *
* repair, or correction. This disclaimer of warranty constitutes an *
* essential part of this License. No use of any Covered Software is *
* authorized under this License except under this disclaimer. *
* *
************************************************************************
************************************************************************
* *
* 7. Limitation of Liability *
* -------------------------- *
* *
* Under no circumstances and under no legal theory, whether tort *
* (including negligence), contract, or otherwise, shall any *
* Contributor, or anyone who distributes Covered Software as *
* permitted above, be liable to You for any direct, indirect, *
* special, incidental, or consequential damages of any character *
* including, without limitation, damages for lost profits, loss of *
* goodwill, work stoppage, computer failure or malfunction, or any *
* and all other commercial damages or losses, even if such party *
* shall have been informed of the possibility of such damages. This *
* limitation of liability shall not apply to liability for death or *
* personal injury resulting from such party's negligence to the *
* extent applicable law prohibits such limitation. Some *
* jurisdictions do not allow the exclusion or limitation of *
* incidental or consequential damages, so this exclusion and *
* limitation may not apply to You. *
* *
************************************************************************
8. Litigation
-------------
Any litigation relating to this License may be brought only in the
courts of a jurisdiction where the defendant maintains its principal
place of business and such litigation shall be governed by laws of that
jurisdiction, without reference to its conflict-of-law provisions.
Nothing in this Section shall prevent a party's ability to bring
cross-claims or counter-claims.
9. Miscellaneous
----------------
This License represents the complete agreement concerning the subject
matter hereof. If any provision of this License is held to be
unenforceable, such provision shall be reformed only to the extent
necessary to make it enforceable. Any law or regulation which provides
that the language of a contract shall be construed against the drafter
shall not be used to construe this License against a Contributor.
10. Versions of the License
---------------------------
10.1. New Versions
Mozilla Foundation is the license steward. Except as provided in Section
10.3, no one other than the license steward has the right to modify or
publish new versions of this License. Each version will be given a
distinguishing version number.
10.2. Effect of New Versions
You may distribute the Covered Software under the terms of the version
of the License under which You originally received the Covered Software,
or under the terms of any subsequent version published by the license
steward.
10.3. Modified Versions
If you create software not governed by this License, and you want to
create a new license for such software, you may create and use a
modified version of this License if you rename the license and remove
any references to the name of the license steward (except to note that
such modified license differs from this License).
10.4. Distributing Source Code Form that is Incompatible With Secondary
Licenses
If You choose to distribute Source Code Form that is Incompatible With
Secondary Licenses under the terms of this version of the License, the
notice described in Exhibit B of this License must be attached.
Exhibit A - Source Code Form License Notice
-------------------------------------------
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.
If it is not possible or desirable to put the notice in a particular
file, then You may include the notice in a location (such as a LICENSE
file in a relevant directory) where a recipient would be likely to look
for such a notice.
You may add additional accurate notices of copyright ownership.
Exhibit B - "Incompatible With Secondary Licenses" Notice
---------------------------------------------------------
This Source Code Form is "Incompatible With Secondary Licenses", as
defined by the Mozilla Public License, v. 2.0.

962
Makefile.am Normal file → Executable file

File diff suppressed because it is too large Load Diff

367
NEWS
View File

@ -1,8 +1,371 @@
0MQ version 4.3.5 stable, released on 2023/10/09
================================================
* Relicensing from LGPL-3.0+ (with custom exceptions) to MPL-2.0 is now complete.
libzmq is now distributed under the Mozilla Public License 2.0. Relicensing
grants have been collected from all relevant authors, and some functionality
has been clean-room reimplemented where that was not possible. In layman terms,
the new license provides the same rights and obligations as before. Source
files are now tagged using the SPDX license identifier format.
Details of the relicensing process can be seen at:
https://github.com/zeromq/libzmq/issues/2376
Relicensing grants have been archived at:
https://github.com/rlenferink/libzmq-relicense
A special thanks to everybody who helped with this long and difficult task,
with the process, the reimplementations, the collections and everything else.
* New DRAFT (see NEWS for 4.2.0) socket options:
- ZMQ_BUSY_POLL will set the SO_BUSY_POLL socket option on the underlying
sockets, if it is supported.
- ZMQ_HICCUP_MSG will send a message when the peer has been disconnected.
- ZMQ_XSUB_VERBOSE_UNSUBSCRIBE will configure a socket to pass all
unsubscription messages, including duplicated ones.
- ZMQ_TOPICS_COUNT will return the number of subscribed topics on a
PUB/SUB socket.
- ZMQ_NORM_MODE, ZMQ_NORM_UNICAST_NACK, ZMQ_NORM_BUFFER_SIZE,
ZMQ_NORM_SEGMENT_SIZE, ZMQ_NORM_BLOCK_SIZE, ZMQ_NORM_NUM_PARITY,
ZMQ_NORM_NUM_AUTOPARITY and ZMQ_NORM_PUSH to control various aspect of
NORM sockets.
See doc/zmq_setsockopt.txt and doc/zmq_getsockopt.txt for details.
* New DRAFT (see NEWS for 4.2.0) zmq_ppoll APIs was added that differs from
zmq_poll in the same way that ppoll differs from poll.
See doc/zmq_ppoll.txt for details.
* Various bug fixes and performance improvements.
0MQ version 4.3.4 stable, released on 2021/01/17
================================================
* New DRAFT (see NEWS for 4.2.0) socket option:
- ZMQ_PRIORITY will set the SO_PRIORITY socket option on the underlying
sockets. Only supported on Linux.
See doc/zmq_setsockopt.txt and doc/zmq_getsockopt.txt for details.
* Fixed #4113 - compilation errors on kFreeBSD and GNU/Hurd
* Fixed #4086 - excessive amount of socket files left behind in Windows TMP
directory
* Fixed #4108 - regression that breaks using IPv6 link-local addresses on Linux
* Fixed #4078 - compilation errors on Android
* Fixed #4074 - compilation error with ulibc and libbsd
* Fixed #4060 - stack overflow on Windows x64
* Fixed #4051 - various compilation errors on Windows ARM 32bit
* Fixed #4043 - various compilation warnings with XCode
* Fixed #4038 - return value of zmq_ctx_get changed unintentionally
0MQ version 4.3.3 stable, released on 2020/09/07
================================================
* Security advisories:
* CVE-2020-15166: Denial-of-Service on CURVE/ZAP-protected servers by
unauthenticated clients.
If a raw TCP socket is opened and connected to an endpoint that is fully
configured with CURVE/ZAP, legitimate clients will not be able to exchange
any message. Handshakes complete successfully, and messages are delivered to
the library, but the server application never receives them.
For more information see the security advisory:
https://github.com/zeromq/libzmq/security/advisories/GHSA-25wp-cf8g-938m
* Stack overflow on server running PUB/XPUB socket (CURVE disabled).
The PUB/XPUB subscription store (mtrie) is traversed using recursive
function calls. In the remove (unsubscription) case, the recursive calls are
NOT tail calls, so even with optimizations the stack grows linearly with the
length of a subscription topic. Topics are under the control of remote
clients - they can send a subscription to arbitrary length topics. An
attacker can thus cause a server to create an mtrie sufficiently large such
that, when unsubscribing, traversal will cause a stack overflow.
For more information see the security advisory:
https://github.com/zeromq/libzmq/security/advisories/GHSA-qq65-x72m-9wr8
* Memory leak in PUB server induced by malicious client(s) without CURVE/ZAP.
Messages with metadata are never processed by PUB sockets, but the metadata
is kept referenced in the PUB object and never freed.
For more information see the security advisory:
https://github.com/zeromq/libzmq/security/advisories/GHSA-4p5v-h92w-6wxw
* Memory leak in client induced by malicious server(s) without CURVE/ZAP.
When a pipe processes a delimiter and is already not in active state but
still has an unfinished message, the message is leaked.
For more information see the security advisory:
https://github.com/zeromq/libzmq/security/advisories/GHSA-wfr2-29gj-5w87
* Heap overflow when receiving malformed ZMTP v1 packets (CURVE disabled).
By crafting a packet which is not valid ZMTP v2/v3, and which has two
messages larger than 8192 bytes, the decoder can be tricked into changing
the recorded size of the 8192 bytes static buffer, which then gets overflown
by the next message. The content that gets written in the overflown memory
is entirely decided by the sender.
For more information see the security advisory:
https://github.com/zeromq/libzmq/security/advisories/GHSA-fc3w-qxf5-7hp6
* Note for packagers: an external, self-contained sha1 library is now
included in the source tree under external/sha1/ - it is licensed
under BSD-3-Clause and thus it is fully compatible with libzmq's
license.
It is only used if WebSockets support is enabled, and if neither GnuTLS nor
NSS are available.
* Note for packagers: an internal reimplementation of strlcpy is now included,
for wider platform compatibility.
libbsd can be used and is enabled by default if available instead of the
internal implementation, for better security maintenance in distros.
* Note for packagers: ZeroMQConfig.cmake is now installed in the arch-dependent
subdirectory - eg: /usr/lib/x86_64-linux-gnu/cmake/
* New DRAFT (see NEWS for 4.2.0) socket type:
- ZMQ_CHANNEL is a thread-safe alternative to ZMQ_PAIR.
See doc/zmq_socket.txt for details.
* New DRAFT (see NEWS for 4.2.0) socket option:
- ZMQ_ONLY_FIRST_SUBSCRIBE will cause only the first part of a multipart
message to be processed as a subscribe/unsubscribe message, and the rest
will be forwarded as user data to the application.
- ZMQ_RECONNECT_STOP will cause a connecting socket to stop trying to
reconnect in specific circumstances. See the manpage for details.
- ZMQ_HELLO_MSG to set a message that will be automatically sent to a new
connection.
- ZMQ_DISCONNECT_MSG to set a message that will be automatically received when
a peer disconnects.
See doc/zmq_setsockopt.txt and doc/zmq_getsockopt.txt for details.
* New DRAFT (see NEWS for 4.2.0) zmq_ctx_get_ext/zmq_ctx_set_ext APIs were added
to allow enhancing the context options with variable data inputs.
See doc/zmq_ctx_get_ext.txt and doc/zmq_ctx_set_ext.txt for details.
* New DRAFT (see NEWS for 4.2.0) transport options WS and WSS added for support
of WebSockets (and secure WebSockets via TLS) via the ZWS 2.0 protocol.
WSS requires the GnuTLS library for TLS support. ZMQ_WSS_ specific socket
options were added to support TLS.
WebSockets support is disabled by default if DRAFT APIs are disabled.
* New DRAFT (see NEWS for 4.2.0) socket type, PEER, which is thread safe and a
related zmq_connect_peer function which atomically and thread-safely connects
and returns a routing-id.
* New DRAFT (see NEWS for 4.2.0) zmq_msg_init_buffer API was added to allow
the construction of a message by copying from an existing buffer.
* New DRAFT (see NEWS for 4.2.0) zmq_poller_size API was added to allow querying
the number of sockets/fds registered in a zmq_poller.
* ZMTP 3.1 peers will receive subscribe/cancel on PUB/SUB via commands rather
than using the first byte of the payload.
* zmq_z85_decode now checks that the input string's length is at least 5 characters
and always a multiple of 5 as per API specification.
* Fixed #3566 - malformed CURVE message can cause memory leak
* Fixed #3567 - missing ZeroMQ_INCLUDE_DIR in ZeroMQConfig.cmake when only
static lib is built
* Fixed #3576 - CURVE plaintext secrets now stored in libsodium's secure memory
* Fixed #3588 - install debug libraries for debug msvc builds with CMake
* Fixed #3591 - incorrect ZMQ_MAX_SOCKETS default value in doc
* Fixed #3594 - fixed stream_engine use after free due to concurrent heartbeats
* Fixed #3586 - error when compiling with MinGW due to usage of MS-specific
__except keyword
* Fixed #3603 - fixed CMake build on SL6.9
* Fixed #3607 - added scripts to ease performance graph generation
* Fixed #3608 - fix for IPv4 mapping not supported in DragonFlyBSD
* Fixed #3636 - added ENABLE_PRECOMPILED CMake option to fix build with Ninja
* Fixed #2862 - UDP engine aborts on networking-related errors from socket
syscalls
* Fixed #3656 - segfault on sending data from XSUB to XPUB
* Fixed #3646 - static-only test run fails
* Fixed #3668 - fixed CMAKE_CXX_FLAGS_* regexes on MSVC
* Fixed #110 - do not include winsock2.h in public zmq.h header
* Fixed #3683 - allow "configure --disable-maintainer-mode"
* Fixed #3686 - fix documentation about sockets blocking on send operations
* Fixed #3323 - fix behavior of ZMQ_CONFLATE on PUB sockets
* Fixed #3698 - fix build on IBM i/PASE/os400
* Fixed #3705 - zero-sized messages cause assertion when glibc assertion are on
* Fixed #3713 - remove dependency on math library by avoiding std::ceil
* Fixed #3694 - build targeting Windows XP is broken
* Fixed #3691 - added support for IPC on Windows 10 via AF_UNIX
* Fixed #3725 - disable by default test that requires sudo on CMake
* Fixed #3727 - fix zmq_poller documentation example
* Fixed #3729 - do not check for FD_OOB when using WSAEventSelect on Windows
* Fixed #3738 - allow renaming the library in CMake
* Fixed #1808 - use AF_UNIX instead of TCP for the internal socket on Windows 10
* Fixed #3758 - fix pthread_set_affinity detection in CMake
* Fixed #3769 - fix undefined behaviour in array.hpp
* Fixed #3772 - fix compiling under msys2-mingw
* Fixed #3775 - add -latomic to the private libs flag in pkg-config if needed
* Fixed #3778 - fix documentation of zmq_poller's thread safety
* Fixed #3792 - do not allow creation of new sockets after zmq_ctx_shutdown
* Fixed #3805 - improve performance of CURVE by reducing copies
* Fixed #3814 - send subscribe/cancel as commands to ZMTP 3.1 peers
* Fixed #3847 - fix building without PGM and NORM
* Fixed #3849 - install .cmake file in arch-dependent subdirectory
* Fixed #4005 - allow building on Windows ARM/ARM64
0MQ version 4.3.2 stable, released on 2019/07/08
================================================
* CVE-2019-13132: a remote, unauthenticated client connecting to a
libzmq application, running with a socket listening with CURVE
encryption/authentication enabled, may cause a stack overflow and
overwrite the stack with arbitrary data, due to a buffer overflow in
the library. Users running public servers with the above configuration
are highly encouraged to upgrade as soon as possible, as there are no
known mitigations. All versions from 4.0.0 and upwards are affected.
Thank you Fang-Pen Lin for finding the issue and reporting it!
* New DRAFT (see NEWS for 4.2.0) zmq_socket_monitor_versioned API that supports
a versioned monitoring events protocol as a parameter. Passing 1 results in
the same behaviour as zmq_socket_monitor.
Version 2 of the events protocol allows new events, new metadata, different
socket types for the monitors and more. It is described in details in
doc/zmq_socket_monitor_versioned.txt
* New DRAFT (see NEWS for 4.2.0) zmq_socket_monitor_pipes_stats that triggers
a new ZMQ_EVENT_PIPES_STATS to be delivered via zmq_socket_monitor_versioned
v2 API, which contains the current status of all the queues owned by the
monitored socket. See doc/zmq_socket_monitor_versioned.txt for details.
* New DRAFT (see NEWS for 4.2.0) zmq_poller_fd that returns the FD of a thread
safe socket. See doc/zmq_poller.txt for details.
* New DRAFT (see NEWS for 4.2.0) socket options:
- ZMQ_XPUB_MANUAL_LAST_VALUE is similar to ZMQ_XPUB_MANUAL but allows to avoid
duplicates when using last value caching.
- ZMQ_SOCKS_USERNAME and ZMQ_SOCKS_PASSWORD that implement SOCKS5 proxy
authentication.
See doc/zmq_setsockopt.txt and doc/zmq_getsockopt.txt for details.
* Implemented background thread names for Windows, when the Visual Studio
debugger is being used.
* Fixed #3358 - test_security_zap failing due to SIGBUS on SPARC64, hard-coded
IPC socket binds in tests cause race conditions
* Fixed #3361 - enabling GSSAPI support (when using autools) does not work due
to regression introduced in 4.2.3
* Fixed #3362 - remove documentation for ZMQ_THREAD_PRIORITY context option
getter, it's not implemented
* Fixed #3363 - tests fail to build due to stricter compiler printf validation
in new versions of GCC
* Fixed #3367 - try to infer cacheline size at build time, first with
getconf LEVEL1_DCACHE_LINESIZE, and then by reading
/sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size
(autoconf only), and only then falling back to the previous
default of 64 bytes. Avoids false sharing on POWER and s390x.
Import ax_func_posix_memalign.m4 as a more reliable check for
posix_memalign presence on some unix platforms.
Prefer c++11 atomic primitives to compiler intrinsics, when
both are available, as the former is more reliable.
Set test_pair_ipc and test_rebind_ipc to XFAIL on GNU/Hurd due
to non-functioning getsockname on AF_UNIX.
* Fixed #3370 - Make queue length and HWM state observable
* Fixed #3373 - performance regression in zmq_poll on CentOS 6/7
* Fixed #3375 - assign names to all pthreads created by the library to ease
debugging
* Fixed #3376 - assigned random TIPC port is not returned by ZMQ_LAST_ENDPOINT
* Fixed #3385 - TCP port in ZMQ_LAST_ENDPOINT depends on global locale
* Fixed #3404 - use std::condition_variable_any when possible
* Fixed #3436 - reconnect interval exponential backoff and may lead to integer
overflows
* Fixed #3440 - improve zmq_proxy performance by batching of up to 1000
consecutive messages (if any) and add perf/proxy_thr tool
* Fixed #3451 - fix support of /dev/poll on Solaris
* Fixed #3452 - strnlen may not be available
* Fixed #1462 - test failure in test_filter_ipc due to invalid system groups
* Fixed #3269 - Boost.ASIO integration stopped working with v4.3.0
* Fixed #3479 - ZeroMQ does not build for QNX 6.6 with CMake
* Fixed #3481 - add <ios> include to fix uClibc++ compilation
* Fixed #3491 - build broken on Fedora 30
* Fixed #3494 - ZeroMQConfig.cmake fails if shared libraries are not built
* Fixed #3498 - syntax error on Windows related to socket descriptor type
* Fixed #3500 - PLAIN HELLO message incorrectly uses WELCOME literal, regression
introduced in 4.3.0
* Fixed #3517 - configure errors because of syntax errors in the use of test
shell command
* Fixed #3521 - document how to achieve high performance with the PGM transport
* Fixed #3526 - failure case behavior unclear in zmq_msg_send documentation
* Fixed #3537 - fix build on z/OS by using pthread_equal instead of comparing
variables directly
* Fixed #3546 - CMake links with librt on MinGW which is not available
* Many coding style, duplication, testing and static analysis improvements.
0MQ version 4.3.1 stable, released on 2019/01/12
================================================
* A vulnerability has been found that would allow attackers to direct a peer to
jump to and execute from an address indicated by the attacker.
* CVE-2019-6250: A vulnerability has been found that would allow attackers to
direct a peer to jump to and execute from an address indicated by the
attacker.
This issue has been present since v4.2.0. Older releases are not affected.
NOTE: The attacker needs to know in advance valid addresses in the peer's
memory to jump to, so measures like ASLR are effective mitigations.

View File

@ -38,7 +38,7 @@ Freenode network (irc.freenode.net).
## Copyright
Copyright (c) 2007-2016 Contributors as noted in the AUTHORS file.
The project license is specified in COPYING and COPYING.LESSER.
The project license is specified in LICENSE.
The names "ØMQ", "ZeroMQ", "0MQ", and the ØMQ logo are registered trademarks
of iMatix Corporation ("iMatix") and refers to either (a) the original libzmq

142
README.md
View File

@ -1,8 +1,9 @@
# ZeroMQ
[![Build Status](https://travis-ci.org/zeromq/libzmq.png?branch=master)](https://travis-ci.org/zeromq/libzmq)
[![Build Status](https://github.com/zeromq/libzmq/actions/workflows/CI.yaml/badge.svg)](https://github.com/zeromq/libzmq/actions/workflows/CI.yaml)
[![Build status](https://ci.appveyor.com/api/projects/status/e2ks424yrs1un3wt?svg=true)](https://ci.appveyor.com/project/zeromq/libzmq)
[![Coverage Status](https://coveralls.io/repos/github/zeromq/libzmq/badge.svg?branch=master)](https://coveralls.io/github/zeromq/libzmq?branch=master)
[![Conan Center](https://shields.io/conan/v/zeromq)](https://conan.io/center/zeromq)
## Welcome
@ -13,8 +14,104 @@ abstraction of asynchronous message queues, multiple messaging patterns,
message filtering (subscriptions), seamless access to multiple transport
protocols and more.
## Supported platforms <a name="#platforms"/>
## Building and installation
Libzmq is mainly written in C++98 with some optional C++11-fragments. For
configuration either autotools or CMake is employed. See below for some lists
of platforms, where libzmq has been successfully compiled on.
### Supported platforms with primary CI
| OS and version | Architecture | Compiler and version | Build system | Remarks |
|----------------------------------------|-------------------------|-------------------------------|--------------|---------------------------------------------------------------------------------------------------------------------------------------|
| Android NDK r25 | arm, arm64, x86, x86_64 | llvm (see NDK) | autotools | DRAFT |
| Ubuntu 14.04.5 LTS (trusty) | amd64 | clang 5.0.0 | autotools | STABLE, extras: GSSAPI, PGM, NORM, C++98 mode only |
| Ubuntu 14.04.5 LTS (trusty) | amd64 | gcc 4.8.4 | autotools | STABLE, DRAFT, extras: GSSAPI, PGM, NORM, TIPC, IPV6, also POLLER=poll, POLLER=select, also valgrind and address sanitizer executions |
| Ubuntu 14.04.5 LTS (trusty) | amd64 | gcc 4.8.4 | CMake 3.12.2 | STABLE |
| Windows Server 2012 R2 | x86 | Visual Studio 2008 | CMake 3.12.2 | DRAFT |
| Windows Server 2012 R2 | x86 | Visual Studio 2010 SP1 | CMake 3.12.2 | DRAFT |
| Windows Server 2012 R2 | x86 | Visual Studio 2012 Update 5 | CMake 3.12.2 | DRAFT |
| Windows Server 2012 R2 | x86, amd64 | Visual Studio 2013 Update 5 | CMake 3.12.2 | DRAFT, STABLE (x86 Release only), also POLLER=epoll |
| Windows Server 2012 R2 | x86 | Visual Studio 2015 Update 3 | CMake 3.12.2 | DRAFT |
| Windows Server 2016 | x86 | Visual Studio 2017 15.9.6 | CMake 3.13.3 | DRAFT |
| cygwin 3.0.0 on Windows Server 2012 R2 | amd64 | gcc 7.4.0 | CMake 3.6.2 | DRAFT |
| MSYS2 ? on Windows Server 2012 R2 | amd64 | gcc 6.4.0 | CMake ? | DRAFT |
| Mac OS X 10.13 | amd64 | Xcode 9.4.1, Apple LLVM 9.1.0 | autotools | STABLE, DRAFT |
| Mac OS X 10.13 | amd64 | Xcode 9.4.1, Apple LLVM 9.1.0 | CMake 3.11.4 | DRAFT |
Note: the platforms are regularly updated by the service providers, so this information might get out of date
without any changes on the side of libzmq. For Appveyor, refer to https://www.appveyor.com/updates/ regarding
platform updates. For travis-ci, refer to https://changelog.travis-ci.com/ regarding platform updates.
### Supported platforms with secondary CI
| OS and version | Architecture | Compiler and version | Build system | Remarks |
|------------------------------|----------------------------|----------------------|--------------|---------|
| CentOS 6 | x86, amd64 | ? | autotools | |
| CentOS 7 | amd64 | ? | autotools | |
| Debian 8.0 | x86, amd64 | ? | autotools | |
| Debian 9.0 | ARM64, x86, amd64 | ? | autotools | |
| Fedora 28 | ARM64, ARM32, amd64 | ? | autotools | |
| Fedora 29 | ARM64, ARM32, amd64 | ? | autotools | |
| Fedora Rawhide | ARM64, ARM32, amd64 | ? | autotools | |
| RedHat Enterprise Linux 7 | amd64, ppc64 | ? | autotools | |
| SuSE Linux Enterprise 12 SP4 | ARM64, amd64, ppc64, s390x | ? | autotools | |
| SuSE Linux Enterprise 15 | amd64 | ? | autotools | |
| xUbuntu 12.04 | x86, amd64 | ? | autotools | |
| xUbuntu 14.04 | x86, amd64 | ? | autotools | |
| xUbuntu 16.04 | x86, amd64 | ? | autotools | |
| xUbuntu 18.04 | x86, amd64 | ? | autotools | |
| xUbuntu 18.10 | x86, amd64 | ? | autotools | |
### Supported platforms with known active users
At the time of writing, no explicit reports have been available. Please report your experiences by opening a PR
adding an entry or moving an entry from the section below.
Under "last report", please name either the SHA1 in case of an unreleased version, or the version number in
case of a released version.
| OS and version | Architecture | Compiler and version | Build system | Last report | Remarks |
|----------------|-------------------|----------------------|--------------|-------------------------|---------|
| Solaris 10 | x86, amd64, sparc | GCC 8.1.0 | CMake | 2019/03/18 | |
| DragonFly BSD | amd64 | gcc 8.3 | autotools | 2018/08/07 git-72854e63 | |
| IBM i | ppc64 | gcc 6.3 | autotools | 2019/10/02 git-25320a3 | |
| QNX 7.0 | x86_64 | gcc 5.4.0 | CMake | 4.3.2 | |
| Windows 10 | ARM64 | Visual Studio 2019 | CMake | 2021/11/15 git-2375ca8b | |
| Windows 10 | ARM64 | clang | CMake | 2021/11/15 git-2375ca8b | |
### Supported platforms without known active users
Note: this list is incomplete and inaccurate and still needs some work.
| OS and version | Architecture | Compiler and version | Build system | Remarks |
|------------------------|--------------|--------------------------|------------------|---------|
| Any Linux distribution | x86, amd64 | gcc ?+, clang ?+, icc ?+ | autotools, CMake | |
| SunOS, Solaris | x86, amd64 | SunPro | autotools, CMake | |
| GNU/kFreeBSD | ? | ? | autotools, CMake | |
| FreeBSD | ? | ? | autotools, CMake | |
| NetBSD | ? | ? | autotools, CMake | |
| OpenBSD | ? | ? | autotools, CMake | |
| DragonFly BSD | amd64 | gcc 8.3 | autotools, CMake | |
| HP-UX | ? | ? | autotools, CMake | |
| GNU/Hurd | ? | ? | autotools | |
| VxWorks 6.8 | ? | ? | ? | |
| Windows CE | ? | ? | ? | |
| Windows UWP | ? | ? | ? | |
| OpenVMS | ? | ? | ? | |
### Unsupported platforms
| OS and version | Architecture | Compiler and version | Remarks |
|----------------|--------------|----------------------|-------------------------------------------------------------------------|
| QNX 6.3 | ? | gcc 3.3.5 | see #3371, support was added by a user, but not contributed to upstream |
For more details, see [here](SupportedPlatforms.md).
For some platforms (Linux, Mac OS X), [prebuilt binary packages are supplied by the ZeroMQ organization](#installation).
For other platforms, you need to [build your own binaries](#build).
## Installation of binary packages <a name="installation"/>
### Linux
@ -58,10 +155,26 @@ For OSX users, packages are available via brew.
brew install zeromq
### Build from sources
## Installation of package manager <a name="package manager"/>
### vcpkg
vcpkg is a full platform package manager, you can easily install libzmq via vcpkg.
git clone https://github.com/microsoft/vcpkg.git
./bootstrap-vcpkg.bat # For powershell
./bootstrap-vcpkg.sh # For bash
./vcpkg install zeromq
## Build from sources <a name="build"/>
To build from sources, see the INSTALL file included with the distribution.
### Android
To build from source, see [README](./builds/android/README.md) file in the
android build directory.
## Resources
Extensive documentation is provided with the distribution. Refer to
@ -75,31 +188,14 @@ Announcements mailing list: zeromq-announce@lists.zeromq.org
Git repository: http://github.com/zeromq/libzmq
ZeroMQ developers can also be found on the IRC channel #zeromq, on the
Freenode network (irc.freenode.net).
Libera Chat network (irc.libera.chat).
## License
The project license is specified in COPYING and COPYING.LESSER.
The project license is specified in LICENSE.
libzmq is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License (LGPL) as published
by the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
As a special exception, the Contributors give you permission to link
this library with independent modules to produce an executable,
regardless of the license terms of these independent modules, and to
copy and distribute the resulting executable under terms of your choice,
provided that you also meet, for each linked independent module, the
terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library.
If you modify this library, you must extend this exception to your
version of the library.
libzmq is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
the terms of the Mozilla Public License Version 2.0.
## Contributing

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Andre Caron
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "AndreLouisCaron", with
commit author "Andre Caron <andre.l.caron@gmail.com>", are copyright of Andre Caron.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Andre Caron
2017/03/19

View File

@ -1,13 +0,0 @@
# Permission to Relicense under MPLv2
This is a statement by Hendrik Beskow
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2).
A portion of the commits made by the Github handle "Asmod4n", with
commit author "Asmod4n Asmod4n@users.noreply.github.com", are copyright of Hendrik Beskow.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Hendrik Beskow
2017/04/21

View File

@ -1,13 +0,0 @@
# Permission to Relicense under MPLv2
This is a statement by Bernd Prager
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2).
A portion of the commits made by the Github handle "bprager", with
commit author "Bernd Prager <bernd@prager.ws>", are copyright of Bernd Prager.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Bernd Prager
2017/03/22

View File

@ -1,16 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Bill Torpey that grants permission to
relicense its copyrights in the libzmq C++ library (ZeroMQ) under the
Mozilla Public License v2 (MPLv2) or any other Open Source Initiative
approved license chosen by the current ZeroMQ BDFL (Benevolent
Dictator for Life).
A portion of the commits made by the Github handle "wallstprog", with
commit author "Bill Torpey <wallstprog@gmail.com>", are
copyright of Bill Torpey. This document hereby grants the libzmq
project team to relicense libzmq, including all past, present and
future contributions of the author listed above.
Bill Torpey
2018/11/02

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Caleb Epstein
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "Bklyn", with
commit author "Caleb Epstein <cae@bklyn.org>", are copyright of Caleb Epstein.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Caleb Epstein
2017/03/21

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Brian Buchanan
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "bwbuchanan", with
commit author "Brian Buchanan &lt;bwb@holo.org&gt;" or "Brian Buchanan &lt;brian@tiogalake.com&gt;", are copyright of Brian Buchanan.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Brian Buchanan
2017/03/23

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Byron Mallett
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "mystfit", with
commit author "Byron Mallett <byronated@gmail.com>", are copyright of Byron Mallett .
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Byron Mallett
2018/9/1

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Christoph Schulz
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "Christoph Schulz", with
commit author "Christoph Schulz <schulzcbs@gmail.com>", are copyright of Christoph Schulz.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Christoph Schulz
2018/09/10

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Chuck Remes
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "chuckremes", with
commit author "Chuck Remes", are copyright of Chuck Remes.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Chuck Remes
2017/03/21

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Fabrice Fontaine
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "ffontaine", with
commit author "Fabrice Fontaine <fontaine.fabrice@gmail.com>", are copyright of Fabrice Fontaine.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Fabrice Fontaine
2018-09-13

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Francesco Montorsi that grants permission to relicense
its copyrights in the libzmq C++ library (ZeroMQ) under the Mozilla Public
License v2 (MPLv2) or any other Open Source Initiative approved license
chosen by the current ZeroMQ BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "f18m", with
commit author "Francesco Montorsi <francesco.montorsi@gmail.com>", are copyright
of Francesco Montorsi. This document hereby grants the libzmq project
team to relicense libzmq, including all past, present and future
contributions of the author listed above.
Francesco Montorsi
2018/09/14

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Franco Fichtner that grants permission to relicense
its copyrights in the libzmq C++ library (ZeroMQ) under the Mozilla Public
License v2 (MPLv2) or any other Open Source Initiative approved license
chosen by the current ZeroMQ BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "fichtner", with
commit author "Franco Fichtner <franco@lastsummer.de>", are copyright
of Franco Fichtner. This document hereby grants the libzmq project
team to relicense libzmq, including all past, present and future
contributions of the author listed above.
Franco Fichtner
2017/03/21

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Gavin McNiff
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "gavinmcniff", with
commit author "Gavin McNiff <gavin@mcniff.ie>", are copyright of Gavin McNiff .
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Gavin McNiff
2017/03/20

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Ghislain PUTOIS
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "ghpu", with
commit author "Ghislain PUTOIS", are copyright of Ghislain PUTOIS.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Ghislain PUTOIS
2017/03/20

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Giuseppe Corbelli
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "cowo78" with
commit author "Giuseppe Corbelli <cowo78@gmail.com>", are copyright of Giuseppe Corbelli.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Giuseppe Corbelli
2017/03/21

View File

@ -1,17 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Harald Achitz
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "a4z", with
commit author "Harald Achitz <harald.achitz@gmail.com>" or
"Harald Achitz <harald.achitz@tritech.se>" or
"Harald Achitz <harald.achitz@getinge.com>", are copyright of Harald Achitz.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Harald Achitz
2017/03/21

View File

@ -1,17 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Erik Hugne
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "Hugne", with
commit author "erik.hugne@gmail.com", are copyright of Erik Hugne.
Commits made by author "erik.hugne@ericsson.com" are NOT covered by this
statement.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Erik Hugne
2017/03/22

View File

@ -1,16 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Jim Hague that grants permission to relicense
its copyrights in the libzmq C++ library (ZeroMQ) under the Mozilla
Public License v2 (MPLv2) or any other Open Source Initiative approved
license chosen by the current ZeroMQ BDFL (Benevolent Dictator for
Life).
A portion of the commits made by the Github handle "banburybill", with
commit author "Jim Hague <jim.hague@acm.org>", are copyright of Jim
Hague. This document hereby grants the libzmq project team to
relicense libzmq, including all past, present and future contributions
of the author listed above.
Jim Hague
2017/03/20

View File

@ -1,16 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Johan Mabille
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "JohanMabille", with
commit author "Johan Mabille johan.mabille@gmail.com", are copyright of Johan Mabille.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Johan Mabille
2017/03/20

View File

@ -1,14 +0,0 @@
Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Léonard Michelet
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current
ZeroMQ BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "leonarf", with
commit author "Andre Caron andre.l.caron@gmail.com", are copyright of Léonard Michelet.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Michelet Léonard 2017/03/29

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Leonardo J. Consoni
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "Bitiquinho", with
commit author "Leonardo José Consoni <consoni_2519@hotmail.com>", are copyright of Leonardo J. Consoni.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Leonardo José Consoni
2017/03/19

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Lionel Orry
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "chickenkiler", with
commit author "Lionel Orry <lionel.orry@gmail.com>", are copyright of Lionel Orry.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Lionel Orry
2017/03/23

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by "Osiris Pedroso"
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "opedroso", with
commit author "Osiris Pedroso <opedroso@gmail.com>", are copyright of "Osiris Pedroso".
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Osiris Pedroso
2017/03/21

View File

@ -1,23 +0,0 @@
# Permission to Relicense under MPLV2
This directory collects grants from individuals and firms that hold
copyrights in ZeroMQ to permit licensing the ZeroMQ code under
the [Mozilla Public License, version
2](https://www.mozilla.org/en-US/MPL/2.0/). See [GitHub Pull
Request #1917](https://github.com/zeromq/libzmq/pull/1917),
the [0MQ Licensing Page](http://zeromq.org/area:licensing) and
[original iMatix zeromq-dev license
grant](http://lists.zeromq.org/pipermail/zeromq-dev/2016-April/030288.html)
for some background information.
Please create a separate file in this directory for each individual
or firm holding copyright in ZeroMQ, named after the individual or
firm holding the copyright.
Each patch must be made with a GitHub handle that is clearly
associated with the copyright owner, to guarantee the identity of
the signatory. Please avoid changing the files created by other
individuals or firms granting a copyright license over their
copyrights (if rewording is required contact them and ask them to
submit an updated version). This makes it easier to verify that
the license grant was made by an authorized GitHub account.

View File

@ -1,13 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Robert Gagnon that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other Open Source Initiative approved
license chosen by the current ZeroMQ BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "rgagnon24", with commit author
"Robert Gagnon rgagnon24+zmq@gmail.com", are copyright of Robert Gagnon. This document hereby grants the
libzmq project team to relicense libzmq, including all past, present and future contributions of the
author listed above.
Robert Gagnon
2017/03/19

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Sébastien Rombauts
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "SRombauts", with
commit author "Sébastien Rombauts", are copyright of Sébastien Rombauts.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Sébastien Rombauts
2017/03/21

View File

@ -1,15 +0,0 @@
Permission to Relicense under MPLv2 or any other OSI approved license
chosen by the current ZeroMQ BDFL
This is a statement by Stoian Ivanov that grants permission to relicense
its copyrights in the libzmq C++ library (ZeroMQ) under the Mozilla Public
License v2 (MPLv2) or any other Open Source Initiative approved license
chosen by the current ZeroMQ BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "sdrsdr", with commit
author "Stoian Ivanov sdr@mail.bg", are copyright of Stoian Ivanov. This
document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Stoian Ivanov
2017-03-23

View File

@ -1,16 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Sylvain Corlay
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "SylvainCorlay", with
commit author "Sylvain Corlay sylvain.corlay@gmail.com", are copyright of Sylvain Corlay .
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Sylvain Corlay
2017/03/20

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Timothee Besset
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "TTimo", with
commit author "Timothee Besset <ttimo@ttimo.net>", are copyright of Timothee Besset.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Timothee Besset
2017/03/19

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Vincent Tellier
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "vtellier", with
commit author "Vincent Tellier", are copyright of Vincent Tellier .
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Vincent Louis Théophile Tellier
2017/03/20

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Volodymyr Korniichuk
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "ezhikus", with
commit author "VolodymyrKorn@gmail.com", are copyright of Volodymyr Korniichuk.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Volodymyr Korniichuk
2017/03/21

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Wenbin Hou
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "Wenbin Hou", with
commit author "Wenbin Hou <houwenbin@pku.edu.cn>", are copyright of Wenbin Hou.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Wenbin Hou
2018/05/16

View File

@ -1,16 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen
# by the current ZeroMQ BDFL
This is a statement by Nikolay Amiantov that grants permission to relicense his
copyrights in the libzmq C++ library (ZeroMQ) under the Mozilla Public License
v2 (MPLv2) or any other Open Source Initiative approved license chosen by the
current ZeroMQ BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "abbradar", with commit
author "Nikolay Amiantov <ab@fmap.me>", are copyright of Nikolay Amiantov.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed
above.
Nikolay Amiantov
2017/03/24

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Alex Grönholm
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "agronholm", with
commit author "Alex Grönholm <alex.gronholm+git@nextday.fi>", are copyright of Alex Grönholm.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Alex Grönholm
2017/03/19

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Adrian Muraru
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "rlenferink", with
commit author "Adrian Muraru <adi.muraru@gmail.com>", are copyright of Adrian Muraru.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Adrian Muraru
2017/03/20

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Ming Ji
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "answeroo", with
commit author "answeroo <jiming@yafco.com>", are copyright of Ming Ji.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Ming Ji
2018/08/20

View File

@ -1,17 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Anton Dimitrov that grants permission to
relicense its copyrights in the libzmq C++ library (ZeroMQ) under the
Mozilla Public License v2 (MPLv2) or any other Open Source Initiative
approved license chosen by the current ZeroMQ BDFL (Benevolent
Dictator for Life).
A portion of the commits made by the Github handle "antonrd", with
commit author "Anton Dimitrov <dimitrov.anton@gmail.com>", are
copyright of Anton Dimitrov. This document hereby grants the libzmq
project team to relicense libzmq, including all past, present and
future contributions of the author listed above.
Anton Dimitrov
2018/10/01

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Matthew Arsenault
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "arsenm", with
commit author "Matt Arsenault <arsenm2@gmail.com>", are copyright of Matthew Arsenault.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Matthew Arsenault
2017/10/12

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Adam Seering
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commit made by the Github handle "aseering", with
commit author "Adam Seering <aseering@gmail.com>", are copyright of Adam Seering.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Adam Seering
2017/03/20

View File

@ -1,16 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Björn Töpel that grants permission to relicense
its copyrights in the libzmq C++ library (ZeroMQ) under the Mozilla
Public License v2 (MPLv2) or any other Open Source Initiative approved
license chosen by the current ZeroMQ BDFL (Benevolent Dictator for
Life).
A portion of the commits made by the Github handle "bjoto", with
commit author "Bjorn Topel <bjorn.topel@gmail.com>", are copyright of
Björn Töpel. This document hereby grants the libzmq project team to
relicense libzmq, including all past, present and future contributions
of the author listed above.
Björn Töpel
2017/03/26

View File

@ -1,16 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Jovan Bunjevacki that grants permission to
relicense its copyrights in the libzmq C++ library (ZeroMQ) under the
Mozilla Public License v2 (MPLv2) or any other Open Source Initiative
approved license chosen by the current ZeroMQ BDFL (Benevolent
Dictator for Life).
A portion of the commits made by the Github handle "bjovke", with
commit author "Jovan Bunjevacki <bjovan@gmail.com>", are
copyright of Jovan Bunjevacki. This document hereby grants the libzmq
project team to relicense libzmq, including all past, present and
future contributions of the author listed above.
Jovan Bunjevacki
2017/04/04

View File

@ -1,15 +0,0 @@
## Brocade Communications Systems Inc.
This is a statement by Brocade Communications Systems Inc. (Brocade)
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2).
A portion of the commits made by the Github handle "bluca", with
commit author "Luca Boccassi <luca.boccassi@gmail.com>" or
"Luca Boccassi <lboccass@brocade.com>", are copyright of Brocade.
This permission to relicense includes all past, present and future
contributions of Brocade employees.
Luca Boccassi
Software Engineer, Brocade Communications Systems Inc.
2016-05-16

View File

@ -1,13 +0,0 @@
# Permission to Relicense under MPLv2
This is a statement by Bruno Bodin
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2).
A portion of the commits made by the Github handle "bbdb68", with
commit author "Bruno Bodin <brunobodin@gmail.com>", are copyright of Bruno Bodin .
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Bruno Bodin
2017/04/04

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Constantin Rack
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "c-rack", with
commit author "Constantin Rack <constantin.rack@gmail.com>", are copyright of Constantin Rack.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Constantin Rack
2017/03/20

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Eric Camachat
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "camachat", with
commit author "Eric Camachat <eric@camachat.org>", are copyright of Eric Camachat.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Eric L. Camachat
March 20, 2017

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Christopher Dolan
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "cdolan", with
commit author "Christopher Dolan <chris@codingstream.org>", are copyright of Christopher Dolan.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Christopher Dolan
2017/03/19

View File

@ -1,14 +0,0 @@
# Permission to Relicense under MPLv2
This is a statement by Chris Staite that grants permission to relicense its
copyrights in the libzmq C++ library (ZeroMQ) under the Mozilla Public License
v2 (MPLv2).
A portion of the commits made by the Github handle "chrisstaite", with commit
author "Chris <chris@yourdreamnet.co.uk>", are copyright of Chris Staite.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed
above.
Chris Staite
2017/03/28

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by "chugga\_fan"
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "chugga\_fan", with
commit author "chugga\_fan chuggafans@gmail.com", are copyright of "chugga\_fan" .
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
"chugga\_fan"
2017/03/19

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Christophe Juniet
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "cjuniet", with
commit author "Christophe Juniet <c.juniet@gmail.com>", are copyright of Christophe Juniet.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Christophe Juniet
2017/03/20

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Christian Kamm
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "ckamm", with
commit author "Christian Kamm kamm@incasoftware.de", are copyright of Christian Kamm.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Christian Kamm
2017/03/20

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other share-alike OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Chia-liang Kao
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
share-alike Open Source Initiative approved license chosen by the current
ZeroMQ BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "clkao", with
commit author "Chia-liang Kao clkao@clkao.org", are copyright of Chia-liang Kao.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Chia-liang Kao
2017/03/20

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by crocket
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "crocket", with
commit author "crocket <748856+crocket@users.noreply.github.com>", are copyright of crocket.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
crocket
2018/11/10

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Daniel Shih
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "danielhtshih", with
commit author "Daniel Shih <hotingwow@gmail.com>", are copyright of Daniel Shih.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Daniel Shih
2017/03/20

View File

@ -1,16 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Dan Riegsecker
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "danriegsecker", with
commit author "Dan Riegsecker 1baldgeek@gmail.com", are copyright of
Dan Riegsecker. This document hereby grants the libzmq project team to
relicense libzmq, including all past, present and future contributions of
the author listed above.
Dan Riegsecker
2017/03/20

View File

@ -1,16 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Diego Fons
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "dfons", with
commit author "Diego Fons <diego.fons@gmail.com>" or "Diego Fons <diego.fons@intraway.com>", are copyright of Diego Fons.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Diego Fons
2017/03/20

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by David Jelenc
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "djelenc", with
commit author "David Jelenc <david.jelenc@fri.uni-lj.si>", are copyright of David Jelenc.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
David Jelenc
2017/03/20

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Diego R.Losada
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "drodri", with
commit author "drodri <diego.rlosada@gmail.com>", are copyright of Diego Rodriguez-Losada.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Diego Rodriguez-Losada
2017/03/20

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by G. Evan Burkitt
that grants permission to relicense his copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "eburkitt", with
commit author "Evan Burkitt <evanb@edulinksys.com>", are copyright of G. Evan Burkitt.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
G. Evan Burkitt
2017/04/06

View File

@ -1,16 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Egomotion Limited
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "robertcastle", with
commit author "Robert Castle <robert@egomotion.co.uk>", are copyright of Egomotion Limited.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Robert Castle,
Director, Egomotion Limited
2017/03/21

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Eric Voskuil
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "evoskuil", with
commit author "Eric Voskuil <eric@voskuil.org>", are copyright of Eric Voskuil.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Eric Voskuil
2017/03/19

View File

@ -1,16 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Florian Ebeling that grants permission to
relicense its copyrights in the libzmq C++ library (ZeroMQ) under the
Mozilla Public License v2 (MPLv2) or any other Open Source Initiative
approved license chosen by the current ZeroMQ BDFL (Benevolent
Dictator for Life).
A portion of the commits made by the Github handle "febeling", with
commit author "Florian Ebeling <florian.ebeling@gmail.com>", are
copyright of Florian Ebeling. This document hereby grants the libzmq
project team to relicense libzmq, including all past, present and
future contributions of the author listed above.
Florian Ebeling
2017/03/20

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Ivo Danihelka
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "fidlej", with
commit author "Ivo Danihelka <ivo@danihelka.net>", are copyright of Ivo Danihelka.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Ivo Danihelka
2017/03/21

View File

@ -1,14 +0,0 @@
# Permission to Relicense under MPLv2
This is a statement by Floris Bruynooghe
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2).
A portion of the commits made by the Github handle "flub", with
commit author "Floris Bruynooghe <flub@devork.be>", are copyright of
Floris Bruynooghe .
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Floris Bruynooghe
2017/05/03

View File

@ -1,13 +0,0 @@
# Permission to Relicense under MPLv2
This is a statement by Matthias Gabriel
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2).
A portion of the commits made by the Github handle "gabm", with
commit author "Matthias Gabriel <matthias.gabriel@etit.tu-chemnitz.de>", are copyright of Matthias Gabriel.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Matthias Gabriel
2018/10/8

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Gennady Makovetski
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "gena-moscow", with
commit author "Gennady Makovetski <makovetski@gmail.com>", are copyright of Gennady Makovetski.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Gennady Makovetski
2017/03/21

View File

@ -1,17 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Anton Dimitrov that grants permission to
relicense its copyrights in the libzmq C++ library (ZeroMQ) under the
Mozilla Public License v2 (MPLv2) or any other Open Source Initiative
approved license chosen by the current ZeroMQ BDFL (Benevolent
Dictator for Life).
A portion of the commits made by the Github handle "glemercier", with
commit author "Gregory Lemercier <greglemercier@free.fr>", are
copyright of Gregory Lmercier. This document hereby grants the libzmq
project team to relicense libzmq, including all past, present and
future contributions of the author listed above.
Gregory Lemercier
2018/10/07

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Gonzalo Diethelm
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "gonzus", with
commit author "Gonzalo Diethelm <gonzalo.diethelm@diethelm.org>" or "Gonzalo Diethelm <gdiethelm@dcv.cl>", are copyright of Gonzalo Diethelm .
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Gonzalo Diethelm
2017/03/20

View File

@ -1,13 +0,0 @@
# Permission to Relicense under MPLV2 or any Open Source Initiative (OSI) approved license chosen by the current ZeroMQ BDFL
This is a statement by Nick Guiffrida that grants permission to
relicense its copyrights in the libzmq C++ library (ZeroMQ) under the
Mozilla Public License v2 (MPLv2) or any other Open Source Initiative
approved license chosen by the current ZeroMQ BDFL (Benevolent
Dictator for Life).
The commits made by the Github handle "goodfella", with commit author
"Nick Guiffrida goodfella005@gmail.com" are copyright of Nick
Guiffrida. This document hereby grants the libzmq project team to
relicense libzmq, including all past, present and future contributions
of the author listed above.

View File

@ -1,13 +0,0 @@
# Permission to Relicense under MPLv2
This is a statement by Google, Inc.
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2).
A portion of the commits made by the Github handle "tkoeppe", with
commit author "Thomas Köppe", are copyright of Google, Inc.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Thomas Köppe
2017/09/13

View File

@ -1,17 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Guido Vranken that grants permission to
relicense its copyrights in the libzmq C++ library (ZeroMQ) under the
Mozilla Public License v2 (MPLv2) or any other Open Source Initiative
approved license chosen by the current ZeroMQ BDFL (Benevolent
Dictator for Life).
A portion of the commits made by the Github handle "guidovranken", with
commit author "Guido Vranken <guidovranken@gmail.com>", are
copyright of Guido Vranken. This document hereby grants the libzmq
project team to relicense libzmq, including all past, present and
future contributions of the author listed above.
Guido Vranken
2019/01/08

View File

@ -1,13 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Henri Gourvest that grants permission to
relicense its copyrights in the libzmq C++ library (ZeroMQ) under the
Mozilla Public License v2 (MPLv2) or any other Open Source Initiative
approved license chosen by the current ZeroMQ BDFL (Benevolent
Dictator for Life).
A portion of the commits made by the Github handle "hgourvest", with
commit author "Henri Gourvest <hgourvest@progdigy.com>", are
copyright of Henri Gourvest. This document hereby grants the libzmq
project team to relicense libzmq, including all past, present and
future contributions of the author listed above.
Henri Gourvest
2018/12/8

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Szekely Gyorgy
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commits made by the Github handle "hoditohod", with
commit author "Szekely Gyorgy <hoditohod@gmail.com>", are copyright of Szekely Gyorgy.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Szekely Gyorgy
2018/08/15

View File

@ -1,9 +0,0 @@
# Permission to Relicense under MPLv2
This is a statement by Antonio Vanegas that grants permission to relicense its copyrights in the libzmq C++ library (ZeroMQ) under the Mozilla Public License v2 (MPLv2).
A portion of the commits made by the Github handle "hpsaturn", with commit author "Antonio Vanegas", are copyright of Antonio Vanegas.
This document hereby grants the libzmq project team to relicense libzmq, including all past, present and future contributions of the author listed above.
Antonio Vanegas
2018/10/27

View File

@ -1,15 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Ian Barber
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2) or any other
Open Source Initiative approved license chosen by the current ZeroMQ
BDFL (Benevolent Dictator for Life).
A portion of the commit made by the Github handle "ianbarber", with
commit author "Ian Barber <ianbarber@gmail.com>", are copyright of Ian Barber.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Ian Barber
2017/03/27

View File

@ -1,23 +0,0 @@
# Permission to Relicense under MPLV2
This document collects grants from firms that hold copyrights in ZeroMQ. Please add new firms at the start. Each patch must be made with a GitHub handle that guarantees identity of the signatory.
## iMatix Corporation
This is a statement by iMatix Corporation sprl (iMatix) that grants permission to relicense its copyrights in the libzmq C++ library (ZeroMQ) under the Mozilla Public License v2 (MPLv2).
1. The original ZeroMQ codebase was developed from 2007-2009 by FastMQ Inc. (FastMQ) in Slovakia, which held all copyrights in code written by its staff.
2. On 2009-11-01, iMatix exercised an option to acquire FastMQ and its assets,
including ZeroMQ. On or before 2010-01-05 the FastMQ copyrights in ZeroMQ were
transferred to iMatix ([commit](https://github.com/zeromq/libzmq/commit/4f6baf4dde627656b63cc4e2acdb78a8577ba640)). The FastMQ legal entity was subsequently liquidated.
3. Between 2009 and 2016, iMatix has continued to add contributions to ZeroMQ under the GitHub handle 'hintjens'.
4. This grant therefore covers what remains of the original FastMQ codebase plus all later contributions.
5. iMatix hereby grants an irrevocable, global, and fully paid-up license on all its copyrights that exist in ZeroMQ, under the MPLv2.
-Pieter Hintjens
CEO, iMatix Corporation sprl
23 April 2016

View File

@ -1,17 +0,0 @@
# Permission to Relicense under MPLv2 or any other OSI approved license chosen by the current ZeroMQ BDFL
This is a statement by Jacques Germishuys that grants permission to
relicense its copyrights in the libzmq C++ library (ZeroMQ) under the
Mozilla Public License v2 (MPLv2) or any other Open Source Initiative
approved license chosen by the current ZeroMQ BDFL (Benevolent
Dictator for Life).
A portion of the commits made by the Github handle "jacquesg", with
commit author "Jacques Germishuys <jacquesg@striata.com>", are
copyright of Jacques Germishuys. This document hereby grants the libzmq
project team to relicense libzmq, including all past, present and
future contributions of the author listed above.
Jacques Germishuys
2018/12/14

View File

@ -1,13 +0,0 @@
# Permission to Relicense under MPLv2
This is a statement by Jake Cobb
that grants permission to relicense its copyrights in the libzmq C++
library (ZeroMQ) under the Mozilla Public License v2 (MPLv2).
A portion of the commits made by the Github handle "jakecobb", with
commit author "Jake Cobb &lt;jake.cobb@gmail.com&gt;", are copyright of Jake Cobb.
This document hereby grants the libzmq project team to relicense libzmq,
including all past, present and future contributions of the author listed above.
Jake Cobb
2017/04/04

Some files were not shown because too many files have changed in this diff Show More