# Generated by Makefile. Do not edit.

commit 2cb1240db64ce1ea299e00474c646a2453a8435b
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Jan 12 16:05:39 2019 +0000

    Finalise changelog for 4.3.1

 NEWS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 690cd894e6a8692a2333360765cf441e1aad823d
Merge: 3154f3e 3ce8b11
Author: Constantin Rack <c-rack@users.noreply.github.com>
Date:   Sat Jan 12 17:02:29 2019 +0100

    Merge pull request #3356 from bluca/news
    
    Problem: NEWS out of date with recent changes

commit 3ce8b11aa387e5ec2e2fa3db61b09ede994ebc4b
Author: Luca Boccassi <bluca@debian.org>
Date:   Sat Jan 12 15:11:05 2019 +0000

    Problem: NEWS out of date with recent changes
    
    Solution: update it

 NEWS | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

commit 3154f3eab7fee360991e244c2d710f274e0ad4d9
Merge: 4ca3d43 e9fd5aa
Author: Doron Somech <somdoron@gmail.com>
Date:   Wed Jan 9 14:30:28 2019 +0200

    Merge pull request #3355 from bluca/formatting
    
    Problem: small formatting issue highlighted by clang

commit e9fd5aae431add1da114beec8979f92c8040f444
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Jan 9 12:02:32 2019 +0000

    Problem: small formatting issue highlighted by clang
    
    Solution: fix it with make clang-format-diff

 src/v2_decoder.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 4ca3d430fe46ab80ae8d64bdbde95fe1a75e1805
Merge: 7302b9b 731be4b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Jan 9 12:01:43 2019 +0000

    Merge pull request #3353 from guidovranken/v2_decoder-overflow-rce-fix
    
    V2 decoder overflow RCE fix

commit 731be4bd590cfd7e3c685372c89e4129916f81ae
Author: Guido Vranken <guidovranken@gmail.com>
Date:   Wed Jan 9 12:36:28 2019 +0100

    Problem: Compilation error due to comparison between signed and unsigned expressions
    
    Solution: Cast the signed expression (which is always positive) to unsigned
    
    Signed-off-by: Guido Vranken <guidovranken@gmail.com>

 src/v2_decoder.cpp | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit dcf001906adb378fb0725ad6c1888a1ffabd5279
Author: Guido Vranken <guidovranken@gmail.com>
Date:   Tue Jan 8 23:44:04 2019 +0100

    Problem: no relicense agreement by guidovranken
    
    Solution: added relicense agreement
    
    Signed-off-by: Guido Vranken <guidovranken@gmail.com>

 RELICENSE/guidovranken.md | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit 1a2ed12716693073032d57dac4e269df3d373751
Author: Guido Vranken <guidovranken@gmail.com>
Date:   Tue Jan 8 23:39:41 2019 +0100

    Problem: pointer overflow in zmq::v2_decoder_t::size_ready leading to remote code execution (issue #3351)
    
    Solution: refactor bounds check arithmetic such that no overflow shall occur
    
    Signed-off-by: Guido Vranken <guidovranken@gmail.com>

 src/v2_decoder.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit 7302b9b8d127be5aa1f1ccebb9d01df0800182f3
Merge: fc36c7d cc686f1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Jan 2 15:55:08 2019 +0000

    Merge pull request #3345 from ssbl/unused-import
    
    Problem: unused import and inconsistent use of const

commit cc686f15f43fe79e89aa36d1f8e3e6cb8bc18585
Author: Shubham Lagwankar <shubhu105@gmail.com>
Date:   Wed Jan 2 10:25:21 2019 -0500

    Problem: unused import and inconsistent use of const
    
    Solution: remove unused import and fix const placement.

 src/radix_tree.cpp | 7 +++----
 src/radix_tree.hpp | 2 +-
 2 files changed, 4 insertions(+), 5 deletions(-)

commit fc36c7d2c41701641a1f264121100cd91aa65034
Merge: b65b523 9bd9cbb
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Dec 30 12:18:39 2018 +0100

    Merge pull request #3343 from bluca/pull_atomic_drop
    
    Problem: race condition in PUSH might break atomicity

commit 9bd9cbbeea03d9b35b9ac8d3bc0ce2f723650bf5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Dec 27 00:20:43 2018 +0100

    Problem: race condition in PUSH might break atomicity
    
    Solution: if a multi-part message cannot be delivered by a PUSH socket
    because the pipe is broken mid-way, drop the rest of the frames so that
    the atomicity property is not broken.

 src/lb.cpp                   |  19 +++++-
 src/socket_base.cpp          |  12 ++++
 tests/test_spec_pushpull.cpp | 148 ++++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 176 insertions(+), 3 deletions(-)

commit b65b523a39f205caba5f19cf462250e1d682a4ca
Merge: cb2b9a8 88bea4f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Dec 25 17:08:59 2018 +0100

    Merge pull request #3341 from sigiesec/migrate-more-tests
    
    Problem: tests without test framework

commit 88bea4fd7337e24c771339a6c357e0f9d60e810c
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Tue Dec 25 13:20:04 2018 +0100

    Problem: tests without test framework
    
    Solution: migrate to unity

 Makefile.am                 |  15 ++++---
 tests/test_diffserv.cpp     |  72 +++++++++++++++---------------
 tests/test_iov.cpp          | 105 +++++++++++++++++++++++---------------------
 tests/test_ipc_wildcard.cpp |  50 +++++++++++----------
 tests/test_issue_566.cpp    |  66 ++++++++++++++++------------
 tests/test_timeo.cpp        |  74 ++++++++++++++++---------------
 6 files changed, 202 insertions(+), 180 deletions(-)

commit cb2b9a8cd2927db7e8d13fe34d8ba2db4d357c71
Merge: 16af86d 7f34ca5
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Dec 17 11:41:39 2018 -0500

    Merge pull request #3338 from bluca/android_pkgconfig
    
    Problem: Android helper does not redirect pkg-config

commit 7f34ca52c8338ae7d67071f35bc3745d9fcff26d
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Dec 16 20:00:10 2018 +0000

    Problem: Android helper does not redirect pkg-config
    
    Solution: set the appropriate options, environment variables and paths
    so that the host pkg-config files are ignored, and the target ones are
    used instead (if any)

 builds/android/android_build_helper.sh | 4 ++++
 1 file changed, 4 insertions(+)

commit 16af86d49cfd376c08ff04218f4e7abd0268bb2a
Merge: 1c604c6 affe772
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Dec 16 17:52:00 2018 +0000

    Merge pull request #3337 from sigiesec/sigiesec/migrate-more-tests
    
    Migrate more tests to Unity

commit affe77280c3ce80aead6ec8f3de33676a12dcd7c
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sun Dec 16 17:51:55 2018 +0100

    Improved test assertion message

 tests/testutil_unity.hpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 00f4bd05be8f63519722adb4a3030b069aa5a9aa
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Dec 12 05:27:50 2018 -0500

    Problem: tests without test framework
    
    Solution: migrate to unity

 Makefile.am                          | 24 ++++++----
 tests/test_invalid_rep.cpp           | 92 +++++++++++++++++++-----------------
 tests/test_metadata.cpp              | 75 +++++++++++++++--------------
 tests/test_scatter_gather.cpp        | 85 +++++++++++++++++++--------------
 tests/test_shutdown_stress.cpp       | 63 ++++++++++++------------
 tests/test_shutdown_stress_tipc.cpp  | 66 +++++++++++++-------------
 tests/test_sodium.cpp                | 51 +++++++++++++-------
 tests/test_srcfd.cpp                 | 82 ++++++++++++++++----------------
 tests/test_stream_exceeds_buffer.cpp | 83 +++++++++++++++++---------------
 tests/testutil_unity.hpp             | 37 +++++++++++++++
 10 files changed, 371 insertions(+), 287 deletions(-)

commit 1c604c62128b67ffa73c4cf882a3c0f2c50dadb5
Merge: ed8ed72 c27afbc
Author: Constantin Rack <c-rack@users.noreply.github.com>
Date:   Sat Dec 15 09:10:31 2018 +0100

    Merge pull request #3336 from bluca/pkgconfig_requires
    
    Problem: pkg-config file cannot be used for static linking, missing dependencies in packaging

commit c27afbca2777467b8373f2e98aceed2b008fc578
Author: Luca Boccassi <bluca@debian.org>
Date:   Fri Dec 14 22:03:26 2018 +0000

    Problem: dev packages do not depend on static deps
    
    Solution: add them so that pkg-config Requires.private is
    satisfied

 packaging/debian/control     |  7 ++++++-
 packaging/redhat/zeromq.spec | 13 +++++++++++++
 2 files changed, 19 insertions(+), 1 deletion(-)

commit 28d5ce3dfabb460ab1bd4d4959f04b980df9c804
Author: Luca Boccassi <bluca@debian.org>
Date:   Fri Dec 14 21:45:27 2018 +0000

    Problem: pkg-config file cannot be used for static linking
    
    Solution: use requires.private, which pkg-config expands recursively
    so that dependencies of dependencies can be linked against when
    using pkg-config --static

 CMakeLists.txt                        |  6 ++++-
 builds/cmake/Modules/FindSodium.cmake |  8 ++++++
 configure.ac                          | 46 ++++++++++++++++++++++++++++-------
 src/libzmq.pc.in                      |  1 +
 4 files changed, 51 insertions(+), 10 deletions(-)

commit 9d06e29cb23a69f52bc5c2438eba72c7fd6f4b38
Author: Luca Boccassi <bluca@debian.org>
Date:   Fri Dec 14 21:51:32 2018 +0000

    Problem: duplicated pkg-config template
    
    Solution: use the same for both autotools and cmake

 CMakeLists.txt         |  7 ++++++-
 Makefile.am            |  1 -
 src/libzmq.pc.cmake.in | 11 -----------
 3 files changed, 6 insertions(+), 13 deletions(-)

commit ed8ed727c6f532f1a7d7bdf14b72aa83e2a4f0e9
Merge: 546f8e7 687c758
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Dec 14 18:41:59 2018 +0000

    Merge pull request #3335 from jcourreges/back-to-ld-version-script
    
    Go back to ld --version-script to hide private symbols

commit 687c75858ecb7a11abaaa69b89d3d8c215ccfe61
Author: Jeremie Courreges-Anglas <jca@wxcvbn.org>
Date:   Fri Dec 14 18:48:39 2018 +0100

    Problem: libtool -export-symbols-regexp seems to leak weak symbols
    
    Solution: go back to using -Wl,--version-script.
    
    Use ax_check_vscript.m4 from the autoconf-archive to detect support on
    multiple platforms (eg Solaris ld(1) -M).
    
    libtool -export-symbols-regexp used ld(1) --retain-symbols-file under
    the hood, the latter lets some C++ weak symbols make their way into the
    dynamic symbols table, along with the zmq_* interface.  The reason for
    such behavior is unknown to me.

 Makefile.am            |   5 +-
 configure.ac           |   2 +
 m4/ax_check_vscript.m4 | 142 +++++++++++++++++++++++++++++++++++++++++++++++++
 src/libzmq.vers        |   4 ++
 4 files changed, 152 insertions(+), 1 deletion(-)

commit 546f8e72055096bd3931c629c7f7f462e2f2c6ad
Merge: cfbbfb8 9d8c2b3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Dec 14 10:15:11 2018 +0000

    Merge pull request #3334 from jacquesg/nodelay-after-connect
    
    TCP_NODELAY is set prior to connecting

commit 9d8c2b384380bad4e5f457a6dbabb303898fded2
Author: Jacques Germishuys <jacquesg@striata.com>
Date:   Fri Dec 14 11:53:56 2018 +0200

    Problem: no relicensing grant for my contributions
    
    Solution: add it

 RELICENSE/jacquesg.md | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit a1ace32650f528a693f2e2b902ec71aa38dc1256
Author: Jacques Germishuys <jacquesg@striata.com>
Date:   Fri Dec 14 11:45:07 2018 +0200

    Problem: TCP_NODELAY is set prior to connecting, which is problematic on Windows
    
    Solution: Set TCP_NODELAY after connect()
    
    Reference: https://mail.openvswitch.org/pipermail/ovs-dev/2014-October/290251.html

 src/ip.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit cfbbfb8ab8dd871b2180effbb8ac5bd843f731ae
Merge: b70d31c a925855
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Fri Dec 14 03:13:44 2018 -0500

    Merge pull request #3333 from erickt/patch-1
    
    Fix a typo - lenght to length

commit a92585586bc10d581ca88a94fa237dab191daec6
Author: Erick Tryzelaar <erick.tryzelaar@gmail.com>
Date:   Thu Dec 13 20:32:29 2018 -0800

    Fix a typo - lenght to length
    
    Noticed there was a small typo in the documentation.

 doc/zmq_setsockopt.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b70d31c432f1dced4e65a83959787e7f4a3ba0d7
Merge: 65e72f9 4a48184
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Dec 10 12:51:22 2018 +0000

    Merge pull request #3328 from sigiesec/sigiesec/migrate-more-tests
    
    Problem: tests without test framework

commit 4a4818403249306f03f0730f757ac4ff3899c218
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Dec 10 06:04:38 2018 -0500

    Problem: tests without test framework
    
    Solution: migrate to unity

 Makefile.am                |  18 ++--
 tests/test_pair_inproc.cpp |  87 ++++++++--------
 tests/test_pair_ipc.cpp    |  46 +++++----
 tests/test_pair_tipc.cpp   |  53 +++++-----
 tests/test_rebind_ipc.cpp  |  70 ++++++-------
 tests/test_req_relaxed.cpp | 182 ++++++++++++++++++---------------
 tests/test_spec_req.cpp    | 246 +++++++++++++++++++++++----------------------
 7 files changed, 366 insertions(+), 336 deletions(-)

commit 65e72f9f0a26f1fdc99ec02be478f94507e6145d
Merge: f025129 a8b2e5a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Dec 9 16:27:05 2018 +0000

    Merge pull request #3327 from sigiesec/migrate-more-tests
    
    Problem: tests without test framework

commit a8b2e5a61722a6bbb1cc2bb6af086a4ea0c8ae4d
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Fri Dec 7 07:51:30 2018 -0500

    Problem: tests without test framework
    
    Solution: migrate to unity

 Makefile.am                       |  39 ++++++----
 tests/test_abstract_ipc.cpp       |  57 ++++++++------
 tests/test_atomics.cpp            |  41 +++++++---
 tests/test_dgram.cpp              |  87 ++++++++++++---------
 tests/test_reqrep_device.cpp      | 156 +++++++++++++++++---------------------
 tests/test_reqrep_device_tipc.cpp | 156 +++++++++++++++++---------------------
 tests/test_reqrep_inproc.cpp      |  46 ++++++-----
 tests/test_reqrep_ipc.cpp         |  86 +++++++++------------
 tests/test_reqrep_tipc.cpp        |  52 +++++++------
 tests/test_spec_rep.cpp           | 129 +++++++++++++++++--------------
 tests/test_sub_forward.cpp        |  96 +++++++++++------------
 tests/test_sub_forward_tipc.cpp   | 107 +++++++++++++-------------
 tests/test_xpub_welcome_msg.cpp   |  66 ++++++++--------
 tests/test_zmq_poll_fd.cpp        |  62 ++++++++-------
 14 files changed, 602 insertions(+), 578 deletions(-)

commit f0251297682dcddbfd2e37a608345e6056c3a700
Merge: aaaec89 a6b5c75
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Dec 8 14:14:00 2018 +0000

    Merge pull request #3326 from hgourvest/master
    
    Switching or desactivate wifi can crash Android application

commit a6b5c7519812fd4000461f17daed452be335e249
Author: Henri Gourvest <hgourvest@pogdigy.com>
Date:   Sat Dec 8 09:41:40 2018 +0100

    Problem: Switching or desactivate wifi can lead to have EINVAL error code
    returned on Android.
    Solution: Avoid killing the application, allows to take
    the appropriate measures to this situation.

 RELICENSE/hgourvest.md | 13 +++++++++++++
 src/tcp_listener.cpp   |  7 ++++++-
 2 files changed, 19 insertions(+), 1 deletion(-)

commit aaaec894d3a03b5337d8ecdd302a8afa33bbe0de
Merge: 4d1d64b 941915d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Dec 7 20:31:53 2018 +0000

    Merge pull request #3325 from jcourreges/platforms-conditionals-cleanup
    
    Platforms conditionals cleanup

commit 941915d1428f6c637e895fcc644409a30ba6ef54
Author: Jeremie Courreges-Anglas <jca@wxcvbn.org>
Date:   Fri Dec 7 20:36:51 2018 +0100

    Problem: needlessly complicated conditionals in Makefile.am
    
    Solution: the generic approach taken in 70b48a9 allows us to use the
    same LDFLAGS on most platforms.

 Makefile.am | 12 ------------
 1 file changed, 12 deletions(-)

commit 386fa6e013ffa9bdde0271c267ba41aade9e8187
Author: Jeremie Courreges-Anglas <jca@wxcvbn.org>
Date:   Fri Dec 7 20:31:25 2018 +0100

    Problem: unused Debian/kFreeBSD-specific code
    
    Solution: delete it

 Makefile.am  | 6 ------
 configure.ac | 8 --------
 2 files changed, 14 deletions(-)

commit 4d1d64b764f9a8be954ecaadb8c57475a4340a02
Merge: 36745fb 70b48a9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Dec 7 18:06:36 2018 +0000

    Merge pull request #3322 from jcourreges/libtool-export-symbols
    
    Portable solution for library symbols visibility

commit 36745fbf0d09a5731290c16f92da9dba1defc609
Merge: eda7f95 d20d107
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Dec 7 18:05:36 2018 +0000

    Merge pull request #3324 from jcourreges/jcourreges-relicense
    
    Relicensing grant for my contributions (jcourreges)

commit 70b48a9c0c55ced80607613f1f2b6159e3f959c0
Author: Jérémie Courrèges-Anglas <jca@wxcvbn.org>
Date:   Fri Dec 7 16:29:12 2018 +0100

    Problem: --version-script not used on OpenBSD
    
    Solution: switch to libtool symbol visibility support, which leads to
    more portable constructs in the autotools glue.  As noted in the libtool
    documentation "This option has no effect on some platforms."
    
    After this commit, global symbols intended to be kept private will
    disappear on platforms that were previously not handled
    using -Wl,--version-script.

 Makefile.am     | 12 +++++-------
 src/libzmq.vers |  4 ----
 2 files changed, 5 insertions(+), 11 deletions(-)

commit d20d107b484db44c53130c21ea913364a31c833f
Author: Jeremie Courreges-Anglas <jca@wxcvbn.org>
Date:   Fri Dec 7 18:54:42 2018 +0100

    Problem: no relicensing grant for my contributions
    
    Solution: add it

 RELICENSE/jcourreges.txt | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit eda7f958f945eb3b237e25237604cfb2aa6b42c2
Merge: f615b8f fb4629e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Dec 7 17:24:46 2018 +0000

    Merge pull request #3321 from jcourreges/openbsd-build-error
    
    Problem: build fails on OpenBSD due to -Wl in LDFLAGS

commit fb4629eea2d1e383928db6adf89c5763add8541d
Author: Jérémie Courrèges-Anglas <jca@wxcvbn.org>
Date:   Fri Dec 7 16:28:58 2018 +0100

    Problem: build fails on OpenBSD due to -Wl in LDFLAGS
    
    Solution: remove stray -Wl.

 Makefile.am | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

commit f615b8fdfc94d2129ee0223100c4e4a7d5d1b93d
Merge: eff190d fbf37bb
Author: Constantin Rack <c-rack@users.noreply.github.com>
Date:   Wed Nov 28 21:36:56 2018 +0100

    Merge pull request #3315 from bluca/news
    
    Problem: 4.3.0 is released, need to update ABI/version

commit fbf37bb668112e07d9f6b1022d877ad27f0454e8
Author: Luca Boccassi <bluca@debian.org>
Date:   Wed Nov 28 20:06:23 2018 +0000

    Problem: 4.3.0 is released, need to update ABI/version
    
    Solution: bump to 5.2.1 and 4.3.1 respectively

 CMakeLists.txt | 2 +-
 NEWS           | 4 ++++
 configure.ac   | 5 +++--
 include/zmq.h  | 2 +-
 4 files changed, 9 insertions(+), 4 deletions(-)

commit eff190d5031d313451505f323d3dd1c38ab9c25c
Author: Luca Boccassi <bluca@debian.org>
Date:   Wed Nov 28 20:02:27 2018 +0000

    Problem: ABI is not correct for 4.3.0
    
    Solution: bump it to 5.2.0 as new stable APIs have been added

 CMakeLists.txt | 2 +-
 configure.ac   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit d411831302d232acd01494e1dd3047d42889a7a2
Author: Luca Boccassi <bluca@debian.org>
Date:   Wed Nov 28 19:52:13 2018 +0000

    Finalise changelog for 4.3.0

 NEWS         | 2 +-
 configure.ac | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

commit fb7f8b77b828b4d5609ef580871956e3e983d837
Author: Luca Boccassi <bluca@debian.org>
Date:   Wed Nov 28 19:36:15 2018 +0000

    Problem: NEWS out of date
    
    Solution: mention new version of wepoll and Android Things fix

 NEWS | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit 6ec1a6f2af5314691f5970e1f3a121aa6c716a45
Author: Luca Boccassi <bluca@debian.org>
Date:   Wed Nov 28 19:35:04 2018 +0000

    Problem: whitespace issues introduced by last 2 PRs
    
    Solution: fix them

 configure.ac | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

commit cad2423d82a152ca17a821d58f1230d86ec8802f
Author: brubakerjeff <brubaker.jeff@gmail.com>
Date:   Tue Nov 27 04:51:31 2018 -0500

    Consolidation of libatomic checks (#3314)
    
    Problem: compiler might not support atomic warning flag
    
    Solution: check before using it

 configure.ac | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit d98325160f82cdc8511336d95ae9e95264756a03
Author: brubakerjeff <brubaker.jeff@gmail.com>
Date:   Fri Nov 23 14:27:57 2018 -0500

    Android Things 1.06 with Termux changes (#3312)
    
    * include atomic when needed
    
    * update for tipc
    
    * moved check under android
    
    * added license

 RELICENSE/jeffbrubaker.md | 14 ++++++++++++++
 configure.ac              |  5 ++++-
 2 files changed, 18 insertions(+), 1 deletion(-)

commit 1bb0d63f1e744e9026c9879d63415dc12f68b3df
Merge: 0e95c6c df91e1e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Nov 19 11:46:15 2018 +0000

    Merge pull request #3310 from sigiesec/update-wepoll-1.5.4
    
    Problem: wepoll 1.5.2 is outdated

commit df91e1e88aec3f50c0769e4054d0c02a000adfca
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Nov 19 12:02:30 2018 +0100

    Problem: wepoll 1.5.2 is outdated
    
    Solution: Update to upstream version 1.5.4

 external/wepoll/version.txt |  2 +-
 external/wepoll/wepoll.c    | 34 +++++++++++++++++++++++++---------
 2 files changed, 26 insertions(+), 10 deletions(-)

commit 0e95c6c992770fd57a858dfd91451e948b8fa3a4
Merge: d349f93 f1dd84c
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Nov 18 16:30:17 2018 +0200

    Merge pull request #3308 from bluca/draft
    
    Problems: no example for STATISTICS proxy command, no getters for some context options, new events zmq_stopwatch_intermediate proxy STATISTICS and context thread options are eligible to be made STABLE

commit f1dd84c11fb7c0f56741da81cb37974ba40ace6a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Nov 18 12:50:27 2018 +0000

    Problem: zmq_proxy STATISTICS eligible for stable
    
    Solution: do it

 NEWS                     | 3 +++
 src/proxy.cpp            | 8 --------
 tests/test_proxy.cpp     | 2 --
 tests/test_proxy_hwm.cpp | 2 --
 4 files changed, 3 insertions(+), 12 deletions(-)

commit d61c47ef6f0ec44045fd09671178dc7df8b390c2
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Nov 18 12:48:33 2018 +0000

    Problem: no example for STATISTICS in proxy manpage
    
    Solution: add it

 doc/zmq_proxy_steerable.txt | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 35c6985e68378bb3a71e150e6368973556675e2a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Nov 18 12:32:51 2018 +0000

    Problem: zmq_stopwatch_intermediate is eligible for STABLE
    
    Solution: do it

 NEWS                  | 2 ++
 include/zmq.h         | 2 --
 src/zmq_draft.h       | 4 ----
 tests/test_timers.cpp | 6 ------
 4 files changed, 2 insertions(+), 12 deletions(-)

commit 22c3ecc458c46247491ee50192424d958aa6bd05
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Nov 18 12:13:19 2018 +0000

    Problem: some context options have no getter
    
    Solution: add one so that class-based bindings can easily use them

 doc/zmq_ctx_get.txt        | 18 ++++++++++++++++++
 src/ctx.cpp                | 22 ++++++++++++++++++++--
 src/ctx.hpp                |  1 +
 tests/test_ctx_options.cpp |  6 ++++++
 4 files changed, 45 insertions(+), 2 deletions(-)

commit 92cf6c6451624859ed38bfe1857e2f636d6b099a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Nov 18 11:57:44 2018 +0000

    Problem: new ctx THREAD options are eligible for STABLE
    
    Solution: do it

 NEWS            | 6 ++++++
 include/zmq.h   | 6 +++---
 src/zmq_draft.h | 3 ---
 3 files changed, 9 insertions(+), 6 deletions(-)

commit c347aef794bb14cdf42458caf69562bce5b3430f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Nov 18 11:37:52 2018 +0000

    Problem: new DRAFT monitoring events are eligible for STABLE
    
    Solution: do it

 NEWS                           |   6 +++
 doc/zmq_socket_monitor.txt     |   7 ---
 include/zmq.h                  |  70 ++++++++++++--------------
 src/stream_engine.cpp          |   5 +-
 src/zmq_draft.h                |  37 --------------
 tests/test_monitor.cpp         |   4 --
 tests/test_security_curve.cpp  |  40 ++-------------
 tests/test_security_gssapi.cpp |  15 ------
 tests/test_security_zap.cpp    | 111 +++++++++--------------------------------
 tests/testutil_security.hpp    |  10 ----
 10 files changed, 66 insertions(+), 239 deletions(-)

commit d349f93c2b72999af83c9e7a2991a144e4442716
Merge: 25e069d 6253591
Author: Doron Somech <somdoron@gmail.com>
Date:   Tue Nov 13 16:54:45 2018 +0200

    Merge pull request #3306 from bluca/radix_autotools
    
    Problem: radix tree never used in autotools builds

commit 62535916558120e742ebbb0741d26bdd760dfe74
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Nov 13 13:17:12 2018 +0000

    Problem: radix tree never used in autotools builds
    
    Solution: add a switch and a default to autoconf

 configure.ac | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 25e069d13138f8d1eecd21cff2ab60d4a13e795a
Author: Bill Torpey <wallstprog@gmail.com>
Date:   Mon Nov 12 16:57:11 2018 -0500

    Add specific option to select radix tree implementation for subscriptions (#3304)
    
    * Add specific option to select radix tree implementation for subscriptions (defaults to ON if draft API enabled).

 CMakeLists.txt | 7 +++++++
 src/xsub.hpp   | 4 ++--
 2 files changed, 9 insertions(+), 2 deletions(-)

commit d60ed2d6260b21f5e4967cb460b379f13a2a7d17
Merge: f3fde84 4a0b6c6
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Nov 12 10:42:58 2018 +0100

    Merge pull request #3301 from bluca/tests
    
    Problems: some tests still use hard-coded TCP ports, wrong usage of CPPFLAGS, missing NEWS, no way to force C++98 builds and CI for it

commit f3fde8498d5ab60456521a9cd26015a41d9c3611
Merge: 3659c12 14ed4e6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Nov 10 19:47:00 2018 +0000

    Merge pull request #3303 from crocket/master
    
    Problem: C4 process is not easily discoverable.

commit 14ed4e6492b42fd72d1926de419031e3b47e2a9f
Author: crocket <748856+crocket@users.noreply.github.com>
Date:   Sat Nov 10 21:07:21 2018 +0900

    Problem: There is probably no relicensing grant from me, yet.
    
    Solution: Add a relicensing grant.

 RELICENSE/crocket.md | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 8919464fbc35c57760483ce86754b689091cfd95
Author: crocket <748856+crocket@users.noreply.github.com>
Date:   Sat Nov 10 20:54:50 2018 +0900

    Problem: C4 process is not easily discoverable.
    
    Solution: Add 'Contributing' section to README.md

 README.md | 4 ++++
 1 file changed, 4 insertions(+)

commit 4a0b6c6c6f3aa66a96f2911d898e73ec022ac150
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Nov 9 20:23:26 2018 +0000

    Problem: compiler warning in unittest_poller
    
    Solution: cast the unused variable

 unittests/unittest_poller.cpp | 1 +
 1 file changed, 1 insertion(+)

commit 1402f7727e9000aad421e8106295e6cdac72aa5e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Nov 9 18:54:46 2018 +0000

    Problem: no automated way to enforce C++98 compatibility
    
    Solution: if the compiler supports it, pass C++98-compat flags.
    Currently Clang supports this flag but GCC does not.
    
    Add a new flag to enable it, as building with C++98-compat but also
    with -std=gnu++11 will cause a lot of warnings due to the backward
    compat ifdefs.
    
    Add a CI job to run it and ensure we don't break compatibility.

 .travis.yml  | 13 +++++++++++++
 NEWS         |  5 +++++
 ci_build.sh  |  4 ++++
 configure.ac | 12 +++++++++++-
 4 files changed, 33 insertions(+), 1 deletion(-)

commit f215e13a716433bf1a274fba7df30ce1ad74561a
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Nov 9 18:54:08 2018 +0000

    Problem: compiler flags passed to preprocessor in autoconf
    
    Solution: use CXXFLAGS for compiler flags and CPPFLAGS for preprocessor
    flags.

 configure.ac | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

commit 79f65b43cf9860a4490e657068d8ebcbedcad82f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Nov 9 17:03:00 2018 +0000

    Problem: NEWS does not mention new perf tool
    
    Solution: add it

 NEWS | 4 ++++
 1 file changed, 4 insertions(+)

commit 0e01c27de5c547a4ba015dbf14f727f27019351e
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Nov 9 16:56:00 2018 +0000

    Problem: test_router_notify cannot be ran in parallel
    
    Solution: do not bind to an hard-coded port, use a wildcard.

 tests/test_router_notify.cpp | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

commit 828812fa724392cf4acd6bf52d1f5ea0b0773d2f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Nov 9 16:46:48 2018 +0000

    Problem: test_app_meta cannot be ran in parallel
    
    Solution: do not bind to an hard-coded port, use a wildcard.

 tests/test_app_meta.cpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 2c1c2f8b1b436a92e82d5bf66db5fe0d247057e6
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Nov 9 16:00:40 2018 +0000

    Problem: new tests and perf binaries not ignored by git
    
    Solution: add them to .gitignore

 .gitignore | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

commit 3659c1204a461254d75d48467a08d692841af7a3
Author: Shubham Lagwankar <shubhu105@gmail.com>
Date:   Fri Nov 9 05:49:40 2018 -0500

    Problem: radix tree needs benchmarks and improvements (#3290)
    
    * Problem: radix tree needs benchmarks and improvements
    
    Solution: add a benchmark and make suggested improvements

 CMakeLists.txt                    |   9 +++
 Makefile.am                       |  11 ++++
 perf/benchmark_radix_tree.cpp     | 123 ++++++++++++++++++++++++++++++++++++++
 src/radix_tree.cpp                |  29 +--------
 src/radix_tree.hpp                |   3 +-
 unittests/unittest_radix_tree.cpp |  22 -------
 6 files changed, 147 insertions(+), 50 deletions(-)

commit 05e0ab55b8b54fe6b7049b7bd3d434eef38d7e3a
Merge: a59c010 b1e2c85
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Thu Nov 8 14:04:56 2018 +0100

    Merge pull request #3299 from bluca/news
    
    Problem: #3263 not mentioned in NEWS

commit b1e2c8588e71044175191ba94306d75bc624eb00
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Nov 8 11:53:25 2018 +0000

    Problem: #3263 not mentioned in NEWS
    
    Solution: add it

 NEWS | 2 ++
 1 file changed, 2 insertions(+)

commit a59c010e331083b9c70ac14a4d633f1948b1ad9b
Merge: 63abe83 9a15fe7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Nov 7 08:35:04 2018 +0000

    Merge pull request #3298 from pijyoi/signaler_wait1
    
    Problem: using FD_SETSIZE for optimized_fd_set_t is a pessimization

commit 9a15fe7fac051c9f8ffb79eca93c38c220af07a4
Author: KIU Shueng Chuan <nixchuan@gmail.com>
Date:   Wed Nov 7 09:58:16 2018 +0800

    use required number of descriptors (1) instead of FD_SETSIZE

 src/signaler.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 63abe8338825ff26c95f12db72d245084746c3d4
Merge: 2327661 db09fab
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Nov 6 21:00:26 2018 +0000

    Merge pull request #3296 from sigiesec/reapply-session-base-refactoring
    
    Reapply session_base_t refactoring

commit db09fab47be8e4b55755479bf19dfda25239ba42
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Mon Nov 5 16:55:39 2018 +0100

    Problem: compilation broken with Sun Studio
    
    Solution: do not use make_pair

 src/session_base.cpp | 29 ++++++++++++++++-------------
 src/session_base.hpp |  4 ++--
 2 files changed, 18 insertions(+), 15 deletions(-)

commit 23276618109ecefbe2dca2b468fdbae53c2b47e1
Merge: 31b0a1d fa59857
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Nov 6 10:37:59 2018 +0000

    Merge pull request #3297 from toonetown/recv-buffer-overflow
    
    Windows apparently returns `WSAENOBUFS` from `recv`

commit fa598579e6854546579a60d1b5157c25e9c0e4ed
Author: Nathan Toone <nathan@toonetown.com>
Date:   Mon Nov 5 16:09:26 2018 -0700

    Problem: Assert being triggered when Windows returns `WSAENOBUFS` from `recv` call on large buffers.
    
    Solution: Expect `WSAENOBUFS` as a valid response.  See https://github.com/zeromq/libzmq/issues/3263

 src/tcp.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit eb74b726c26a4a9fbb82707a8cbea1d8077dceec
Author: Nathan Toone <nathan@toonetown.com>
Date:   Mon Nov 5 16:25:23 2018 -0700

    Problem: no relicense agreement by toonetown
    
    Solution: added relicense agreement

 RELICENSE/toonetown.md | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit c590873ff7a81a3c373884eab37cbe2068fbfe4a
Author: Simon Giesecke <simon.giesecke@btc-ag.com>
Date:   Wed Aug 15 14:16:38 2018 +0200

    Problem: complexity of start_connecting
    
    Solution: extract functions for each protocol

 src/session_base.cpp | 302 ++++++++++++++++++++++++++++++---------------------
 src/session_base.hpp |  27 +++++
 2 files changed, 208 insertions(+), 121 deletions(-)

commit 31b0a1dff0e2d03ab18608bf09aca22d20da55f1
Merge: 320741f 25ded9e
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Mon Nov 5 12:52:06 2018 +0100

    Merge pull request #3295 from bluca/hurd_freebsd_sun
    
    Problem: build broken with Sun Studio, tests fail on debian/kfreebsd and debian/hurd, DRAFT zmq_poll is slow

commit 25ded9e897721029b132533d331c370c1081716a
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Nov 4 22:18:54 2018 +0000

    Problem: out-of-date TODO in zmq_poll
    
    Solution: remove it

 src/zmq.cpp | 2 --
 1 file changed, 2 deletions(-)

commit ab1607f81304a3e040690dfc0e1d084af096480e
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Nov 4 22:16:36 2018 +0000

    Problem: poller implementation of zmq_poll is slow
    
    Solution: use it only if there is at least one thread-safe socket,
    which is not compatible with the older zmq_poll implementation.

 src/zmq.cpp | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

commit b6f55eac14a2db703b1fae978a51dc6668301595
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Nov 4 21:14:35 2018 +0000

    Problem: unity build broken with Sun Studio
    
    Solution: define UNITY_WEAK_PRAGMA when building with the Sun compiler
    as it does not support the weak attribute.

 configure.ac | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit ffd99fbaf535b076f1f2034179fd2eba1d4ef316
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Nov 4 20:57:15 2018 +0000

    Problem: GNU/Hurd does not implement getsockname for ipc
    
    Solution: skip tests that use ipc://* as it's impossible to get the
    address back for the client

 Makefile.am                  | 1 +
 tests/test_hwm_pubsub.cpp    | 4 ++--
 tests/test_reconnect_ivl.cpp | 4 ++--
 3 files changed, 5 insertions(+), 4 deletions(-)

commit bd9011fe3bfce524923a879298437b6d20fe305d
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Nov 4 20:13:49 2018 +0000

    Problem: build broken with Sun Studio
    
    Solution: temporary revert refactoring until it can be properly fixed.
    
    Revert "Problem: complexity of start_connecting"
    
    This reverts commit 6d7aeb056f11e6fd2429fa90bc175da0922d306b.

 src/session_base.cpp | 302 +++++++++++++++++++++------------------------------
 src/session_base.hpp |  27 -----
 2 files changed, 121 insertions(+), 208 deletions(-)

commit 54295cb342e70577f705f6d7bb3f39f6338d3e5b
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Nov 4 18:12:55 2018 +0000

    Problem: passing tests on debian/kfreebsd marked as XFAIL
    
    Solution: use a different system variable for debian/hurd and
    debian/kfreebsd so that the tests are skipped only on hurd.

 Makefile.am  | 7 +++++++
 configure.ac | 4 +++-
 2 files changed, 10 insertions(+), 1 deletion(-)

commit 205573f1a3a114e88024a09baea09076920e0c95
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Nov 4 18:12:18 2018 +0000

    Problem: typo in RUN_TEST macro breaks debian/kfreebsd build
    
    Solution: fix it

 tests/test_filter_ipc.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 320741f2c9740832929ec709f18b7ef6f60507c4
Merge: b8b98bc 1b8a821
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Nov 4 16:20:40 2018 +0000

    Merge pull request #3294 from bluca/stalebot
    
    Problem: stale bot didn't parse labels correctly

commit 1b8a82122215f855029e0ea1179cbfaf3792c4fc
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Nov 4 14:43:53 2018 +0000

    Problem: stale bot label exceptions not correct
    
    Solution: quote the labels with a space, upstream documentation
    (not displayed on the Github page) suggests this should finally work

 .github/stale.yml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

commit b8b98bc6010b61ba65d344391fb817244ca272c7
Merge: c5dab3b ecf1e31
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Nov 4 16:30:54 2018 +0200

    Merge pull request #3293 from bluca/stalebot
    
    Problem: stale issues linger on Github

commit ecf1e31db7c621e98b98b4f84eb6fd747d9b0f48
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Nov 4 14:15:26 2018 +0000

    Problem: stale issues linger on Github
    
    Solution: enable Stable Bot to automatically mark an issue as stale
    after 365 days of inactivity and close it after further 56 days.
    
    Issues marked with the following labels are excluded:
    
     - Help Request
     - Feature Request
     - Problem reproduced
     - Critical

 .github/stale.yml | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

commit c5dab3b4f316d63c09c6dc2d2dcf60612dfa6614
Merge: b03d660 d330d01
Author: Doron Somech <somdoron@gmail.com>
Date:   Sun Nov 4 16:07:53 2018 +0200

    Merge pull request #3292 from bluca/news
    
    Problem: NEWS still out of date

commit d330d01076a724162a34c1025fb3d3159389e984
Author: Luca Boccassi <bluca@debian.org>
Date:   Sun Nov 4 14:05:03 2018 +0000

    Problem: NEWS still out of date
    
    Solution: mention all relevant bug fixes, features and changes

 NEWS | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 66 insertions(+), 5 deletions(-)

commit b03d6605a1c75faf6bbab244c460690e9d080b51
Merge: cb1970e 34f23be
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Fri Nov 2 18:59:28 2018 +0100

    Merge pull request #3288 from bluca/news
    
    Problems: wrong version and outdated NEWS

commit cb1970e136f2e785dffaafd92cf09e310e29322f
Merge: efc9a30 981cff5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Nov 2 17:47:41 2018 +0000

    Merge pull request #3291 from WallStProg/master
    
    Some changes for CMakeLists.txt:

commit 981cff5c9373412e5012a30cc69c71c8ba51258c
Author: Bill Torpey <wallstprog@gmail.com>
Date:   Fri Nov 2 12:25:04 2018 -0400

    RELICENSE: Bill Torpey

 RELICENSE/BillTorpey.md | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

commit 4e8c72c32fa917cb6209aef7aa25b238e1fa441b
Author: Bill Torpey <wallstprog@gmail.com>
Date:   Fri Nov 2 12:20:38 2018 -0400

    RELICENSE: Bill Torpey

 RELICENSE/BillTorpey.md | 1 +
 1 file changed, 1 insertion(+)

commit 29c369ff0beadeab412279437883a0b8f0268e92
Author: Bill Torpey <wallstprog@gmail.com>
Date:   Fri Nov 2 11:10:14 2018 -0400

    Some changes for CMakeLists.txt:
    
    - MacOS version requires CMake version 3.0.2 (because of policy CMP0042)
    - Add option to build instrumented binaries with Address Sanitizer
    - Add option to select compiler intrinsics for atomic ops
    - Only build docs on request (saves build time)

 CMakeLists.txt | 78 +++++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 50 insertions(+), 28 deletions(-)

commit 34f23bea8231664b2baff76f357cc9cfe4ef32d5
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Nov 1 22:05:25 2018 +0000

    Problem: NEWS not up to date
    
    Solution: partially list changes since 4.2.5. Not yet complete.

 NEWS | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

commit 1f3d4dfbea7b61f2c6013a5e932b52e04cd1a89d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Nov 1 20:14:30 2018 +0000

    Problem: wrong new version
    
    Solution: bump back from 4.3.1 to 4.3.0

 NEWS                            | 2 +-
 include/zmq.h                   | 2 +-
 packaging/debian/changelog      | 2 +-
 packaging/debian/zeromq.dsc.obs | 2 +-
 packaging/redhat/zeromq.spec    | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

commit efc9a3021fb61ca92b9869f0ad8308d29a3ebfa3
Merge: fc41158 8f69122
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Thu Nov 1 11:04:15 2018 +0100

    Merge pull request #3287 from bluca/radix_draft
    
    Problem: new radix tree implementation is experimental

commit 8f69122981e625111e457796bac10b0bcde35843
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Oct 31 14:47:57 2018 +0000

    Problem: new radix tree implementation is experimental
    
    Solution: use it only for DRAFT builds for now, to leave it time to be
    tested and stabilised.

 src/xsub.hpp | 8 ++++++++
 1 file changed, 8 insertions(+)

commit fc4115887c0d8a6c775b695ef9c93a81e2b4e770
Merge: 9861d16 87d2919
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Wed Oct 31 14:45:15 2018 +0000

    Merge pull request #3286 from ssbl/master
    
    Problem: potentially large memory footprint of trie as number of subscriptions increases (issue #1400)

commit 87d2919066680768bc2739d2a94a65267bc3a14c
Author: Shubham Lagwankar <shubhu105@gmail.com>
Date:   Tue Oct 30 08:29:07 2018 -0400

    Problem: no relicense agreement by ssbl
    
    Solution: add it

 RELICENSE/ssbl.md | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit c68afb412e245cda71713dc8a9f37807c08fb33f
Author: Shubham Lagwankar <shubhu105@gmail.com>
Date:   Tue Oct 23 07:29:56 2018 -0400

    Problem: potentially large memory footprint of trie as number of
    subscriptions increases
    
    Solution: use a radix tree instead of a trie to store subscriptions

 CMakeLists.txt                    |   1 +
 Makefile.am                       |  13 +-
 src/radix_tree.cpp                | 578 ++++++++++++++++++++++++++++++++++++++
 src/radix_tree.hpp                | 148 ++++++++++
 src/xsub.hpp                      |   4 +-
 unittests/CMakeLists.txt          |   1 +
 unittests/unittest_radix_tree.cpp | 312 ++++++++++++++++++++
 7 files changed, 1054 insertions(+), 3 deletions(-)

commit 9861d16cfcea2ae6457299555aa0bb589ec43135
Merge: 3863c86 f5d1d5d
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Oct 30 17:57:45 2018 +0000

    Merge pull request #3285 from bjovke/my_work
    
    Problem: Use of pipe_t after free in zmq::socket_base_t::term_endpoint(). Issue #3245.

commit f5d1d5d1affb5664583951df3b7c8aac746c3a7c
Author: Bunjevacki, Jovan <jb185456@ncr.com>
Date:   Tue Oct 30 13:33:14 2018 +0100

    Problem: Use of pipe_t after free in zmq::socket_base_t::term_endpoint(). Issue #3245.
    
    Solution: When pipe_t is freed (terminated) remove it from _endpoints member of zmq::socket_base_t. Resolves issue #3245.

 src/pipe.cpp        | 10 ++++++++++
 src/pipe.hpp        |  7 +++++++
 src/socket_base.cpp | 17 +++++++++++++++++
 3 files changed, 34 insertions(+)

commit 3863c869cc37c73d7e158118943650f6475867c1
Merge: 7064c3a 4ce4026
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Tue Oct 30 09:41:11 2018 +0000

    Merge pull request #3284 from lhftio/udp-multicast-hops
    
    Add support for UDP multicast ttl (ZMQ_MULTICAST_HOPS)

commit 4ce402687abb89f8704b065c7fc4fd51448654f9
Author: Conrad Parker <conrad@metadecks.org>
Date:   Tue Oct 30 05:54:50 2018 +0000

    Problem: no relicense agreement by kfish
    
    Solution: add relicense agreement

 RELICENSE/kfish.md | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit 22083d7d6224cdbc5cfbf95e07bbd192e2aedf2b
Author: Conrad Parker <conrad@metadecks.org>
Date:   Thu Sep 13 10:36:26 2018 +0800

    Problem: UDP does not support ZMQ_MULTICAST_HOPS
    
    Solution: add support for ZMQ_MULTICAST_HOPS (IP_MULTICAST_TTL)

 src/udp_engine.cpp | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

commit 7064c3a55fdf5d63283c5307eba3a822ffe262ca
Merge: 7c0017c e8c816f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Oct 27 19:35:50 2018 +0100

    Merge pull request #3283 from hpsaturn/av/relicense
    
    Relicense statement for Hpsaturn

commit 7c0017c55d747f563c1e25138ef155b8cfc1f147
Merge: cbf29b5 69ac7a9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Oct 27 19:35:17 2018 +0100

    Merge pull request #3272 from hpsaturn/av/fix_for_android
    
    fix for android building

commit e8c816f2500d8adcd48bafd9cfc619464686a1c2
Author: Antonio Vanegas <hpsaturn@gmail.com>
Date:   Sat Oct 27 12:59:09 2018 -0500

    Relicense statement for Hpsaturn

 RELICENSE/hpsaturn.md | 9 +++++++++
 1 file changed, 9 insertions(+)

commit cbf29b5355ee2e59edc8f28757248319c4f45b8d
Merge: 006f1e6 a48b7a7
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Oct 26 09:11:12 2018 +0100

    Merge pull request #3281 from ojura/patch-3
    
    Relicense statement for Juraj Oršulić

commit 006f1e6773d21e5c076cc0fecdf024db0c939046
Merge: cfc9d5f 3942195
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Oct 26 09:10:57 2018 +0100

    Merge pull request #3278 from ojura/master
    
    Always include ZMQSourceRunChecks.cmake

commit a48b7a7d932489d51a322f138e2a036baba5ac0b
Author: Juraj Oršulić <juraj.orsulic@fer.hr>
Date:   Fri Oct 26 09:20:13 2018 +0200

    Relicense statement for Juraj Oršulić

 RELICENSE/ojura.md | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 39421958171510869a5c500dce19e1d9412e55b4
Author: Juraj Oršulić <juraj.orsulic@fer.hr>
Date:   Mon Oct 22 14:08:02 2018 +0200

    Update CMakeLists.txt

 CMakeLists.txt | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

commit 69ac7a934c76e080dda67243003eedd2b2e57094
Author: Antonio Vanegas <hpsaturn@gmail.com>
Date:   Tue Oct 9 16:49:19 2018 -0500

    fix for android building

 CMakeLists.txt | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit cfc9d5f5198e611d8d3ad4482d57cf6bb5b6bf59
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 8 17:17:13 2018 +0100

    Problem: trailing whitespace breaks clang-format-check
    
    Solution: fix issue introduced by #3270

 src/dgram.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit b9b325ce3b2ce94a2422c831751960197d25f0e5
Merge: c1ac158 439e57f
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 8 17:15:03 2018 +0100

    Merge pull request #3271 from gabm/Relicense
    
    Problem: gabm didn't signalise his consent to relicense libzmq

commit c1ac158f50a3369d585655e12698563baa7411b0
Author: gabm <gabm@hrz.tu-chemnitz.de>
Date:   Mon Oct 8 18:14:45 2018 +0200

    Problem: The flag that indicates the next expected message gets set even if the send fails (#3270)
    
    * ZMQ_DGRAM: flip more flag after successful send
    
    In the dgram socket we have a flag that indicates the next expected message type to ensure that always a pair of "address" + "body" messages gets sent. The first one MUST have the sendmore flag, the second MUST NOT.
    
    In case the message does not get sent because of HWM full, then the function returns EAGAIN as it should. But unfortunately the next expected message type-flag gets flipped as well. When the socket_base::send function now tries to resend the message, it became the wrong message type... If you don't stop sending pairs of messages here (like me) then the next message that gets through will be of the wrong type, which in turn crashes the udp_engine function as described in #3268

 src/dgram.cpp | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

commit 439e57f091024778ea3afe914e97040275adb380
Author: Matthias Gabriel <matthias.gabriel@etit.tu-chemnitz.de>
Date:   Mon Oct 8 15:58:30 2018 +0200

    grant relicense permission

 RELICENSE/gabm.md | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit 501d0815bf2b0abb93be8214fc66519918ef6c40
Merge: 6ee0489 ffe62d3
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sun Oct 7 20:13:32 2018 +0100

    Merge pull request #3267 from glemercier/master
    
    Problem: Compilation with strict AARCH64 compilers is broken

commit ffe62d3398d5e0191f554f61049aa7ec9fc892ae
Author: Gregory Lemercier <greglemercier@free.fr>
Date:   Sun Oct 7 18:06:54 2018 +0200

    Fix build on arm64 architectures with some strict compilers
    
    This patch fixes an issue that occurs on 64-bit architetures under
    strict compiler rules. The code initially checked that the received
    size stored in 'uint64_t' was not bigger than the max value of a
    'size_t' variable, which is legitimate on 32-bit architectures where
    'size_t' variables are stored on 32 bits. On 64-bit architectures,
    this test no longer makes sense since 'uint64_t' and 'size_t' types
    have the same size. The issue is fixed by ignoring this portion
    of code when built for arm64.

 src/v1_decoder.cpp | 2 ++
 1 file changed, 2 insertions(+)

commit 2e2806d7441cc24aaa24ef59c6f75d0d87762876
Author: Gregory Lemercier <greglemercier@free.fr>
Date:   Sun Oct 7 18:20:29 2018 +0200

    Adds relicensing grant

 RELICENSE/glemercier.md | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit 6ee048992f65c283ce0c660ce0a0ca1a17e5952b
Merge: d4adb9a b15aa40
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Mon Oct 1 15:23:05 2018 +0100

    Merge pull request #3266 from antonrd/issue-2488-zmq_msg_send-doc-fix
    
    [ISSUE 2488] Updates the zmq_msg_send doc

commit b15aa40212f6109fdea9c93370564eaa1214ed84
Author: Anton Dimitrov <dimitrov.anton@gmail.com>
Date:   Mon Oct 1 17:11:04 2018 +0300

    Adds relicensing grant

 RELICENSE/antonrd.md | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit 860c905e5af47c4284ae23c6fcfb98925e8a9022
Author: Anton Dimitrov <dimitrov.anton@gmail.com>
Date:   Mon Oct 1 17:10:47 2018 +0300

    Removes unneeded trailing spaces in doc.

 doc/zmq_msg_send.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 082457b6d07779f131b2e3c9937d0fc9a333eb39
Author: Anton Dimitrov <dimitrov.anton@gmail.com>
Date:   Mon Oct 1 17:00:21 2018 +0300

    Problem: zmq_msg_send doc incomplete return value description (issue #2488)
    
    Solution: Add more information to the doc specifying that MAX_INT is the maximum
    possible return value.

 doc/zmq_msg_send.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit d4adb9a54928acce1c864afce2c9da0e01de6ab0
Merge: 41bdf5c 1a59377
Author: Constantin Rack <c-rack@users.noreply.github.com>
Date:   Sun Sep 30 01:22:20 2018 +0200

    Merge pull request #3265 from bluca/tipc
    
    Problem: test_connect_delay_tipc randomly fails

commit 1a5937750c0f6080c3fefe64f611c1a427048dc9
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Sep 29 22:26:30 2018 +0100

    Problem: test_connect_delay_tipc randomly fails
    
    Solution: use a monitor to wait for a disconnect instead of a sleep,
    and retry to send a message until it fails since the state machine
    might be delayed due to the I/O thread being pre-empted on busy
    systems.
    Also set a receive timeout to avoid random hangs.
    
    Fixes #3124

 Makefile.am                       |  5 -----
 tests/test_connect_delay_tipc.cpp | 38 +++++++++++++++++++++++++++++++-------
 2 files changed, 31 insertions(+), 12 deletions(-)

commit 41bdf5c3891f5c40620ae1979b3d3c45026f092f
Merge: 7476e58 1275c96
Author: Constantin Rack <c-rack@users.noreply.github.com>
Date:   Sat Sep 29 12:47:42 2018 +0200

    Merge pull request #3264 from bluca/issue_pr_text
    
    Problem: have to ask manually for relicensing grant

commit 1275c9697987eba5d74513f3652df76072485814
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Sep 29 11:17:45 2018 +0100

    Problem: have to ask manually for relicensing grant
    
    Solution: add note in PR template

 .github/PULL_REQUEST_TEMPLATE.md | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 7476e5889722a8ecfc73d46e4282bcf9f1f233c7
Merge: 95beabe 36b62c1
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Sat Sep 22 13:55:45 2018 +0100

    Merge pull request #3260 from sigiesec/remove-outdated-reference
    
    Problem: INSTALL refers to deprecated VS build instructions

commit 36b62c1215edfa03aa1caee546eaa1ac2c7abd1e
Author: Simon Giesecke <simon.giesecke@gmail.com>
Date:   Sat Sep 22 14:00:49 2018 +0200

    Problem: INSTALL refers to deprecated VS build instruction
    
    Solution: remove the reference

 INSTALL | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 95beabe7cc09f51034312d5ae486d54ecb83d2a6
Merge: 9f962ea 4f49e74
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Fri Sep 21 11:52:58 2018 +0100

    Merge pull request #3257 from f18m/hwm_test_fix
    
    Remove race condition from XPUB/SUB test in test_blocking()

commit 4f49e7420b11c4230c6951b610c7cb6cc520c2c0
Author: Francesco Montorsi <francesco.montorsi@gmail.com>
Date:   Fri Sep 21 11:19:50 2018 +0200

    Remove race condition from XPUB/SUB test in test_blocking()

 .clang-format                                      |   53 +
 .clang-tidy                                        |  414 ++++
 .github/PULL_REQUEST_TEMPLATE.md                   |   40 +
 .github/issue_template.md                          |   22 +
 .gitignore                                         |  195 ++
 .hgeol                                             |    2 +
 .mailmap                                           |   81 +
 .travis.yml                                        |  152 ++
 AUTHORS                                            |  152 ++
 CMakeLists.txt                                     | 1396 ++++++++++++
 COPYING                                            |  674 ++++++
 COPYING.LESSER                                     |  181 ++
 Dockerfile                                         |   11 +
 Doxygen.cfg                                        | 2320 ++++++++++++++++++++
 INSTALL                                            |  304 +++
 Jenkinsfile                                        |  485 ++++
 Makefile.am                                        | 1110 ++++++++++
 NEWS                                               | 1693 ++++++++++++++
 README.cygwin.md                                   |   15 +
 README.doxygen.md                                  |   48 +
 README.md                                          |  102 +
 RELICENSE/AndreLouisCaron.md                       |   15 +
 RELICENSE/Asmod4n.md                               |   13 +
 RELICENSE/BerndPrager.md                           |   13 +
 RELICENSE/Bklyn.md                                 |   15 +
 RELICENSE/BrianBuchanan.md                         |   15 +
 RELICENSE/ByronMallett.md                          |   15 +
 RELICENSE/ChristophSchulz.md                       |   15 +
 RELICENSE/ChuckRemes.md                            |   15 +
 RELICENSE/FabriceFontaine.md                       |   15 +
 RELICENSE/FrancescoMontorsi.md                     |   15 +
 RELICENSE/FrancoFichtner.md                        |   15 +
 RELICENSE/GavinMcNiff.md                           |   15 +
 RELICENSE/GhislainPutois.md                        |   15 +
 RELICENSE/GiuseppeCorbelli.md                      |   15 +
 RELICENSE/HaraldAchitz.md                          |   17 +
 RELICENSE/Hugne.md                                 |   17 +
 RELICENSE/JimHague.md                              |   16 +
 RELICENSE/JohanMabille.md                          |   16 +
 RELICENSE/LeonardMichelet                          |   14 +
 RELICENSE/LeonardoConsoni.md                       |   15 +
 RELICENSE/LionelOrry.md                            |   15 +
 RELICENSE/OsirisPedroso.md                         |   15 +
 RELICENSE/README.md                                |   23 +
 RELICENSE/RobGagnon.md                             |   13 +
 RELICENSE/SebastienRombauts.md                     |   15 +
 RELICENSE/StoianIvanov.md                          |   15 +
 RELICENSE/SylvainCorlay.md                         |   16 +
 RELICENSE/TimotheeBesset.md                        |   15 +
 RELICENSE/VincentTellier.md                        |   15 +
 RELICENSE/VolodymyrKorniichuk.md                   |   15 +
 RELICENSE/WenbinHou.md                             |   15 +
 RELICENSE/abbradar.md                              |   16 +
 RELICENSE/agronholm.md                             |   15 +
 RELICENSE/amuraru.md                               |   15 +
 RELICENSE/answeroo.md                              |   15 +
 RELICENSE/arsenm.md                                |   15 +
 RELICENSE/aseering.md                              |   15 +
 RELICENSE/bjorntopel.md                            |   16 +
 RELICENSE/bjovke.md                                |   16 +
 RELICENSE/brocade_communications_systems.md        |   15 +
 RELICENSE/brunobodin.md                            |   13 +
 RELICENSE/c-rack.md                                |   15 +
 RELICENSE/camachat.md                              |   15 +
 RELICENSE/cdolan.md                                |   15 +
 RELICENSE/chrisstaite.md                           |   14 +
 RELICENSE/chugga_fan.md                            |   15 +
 RELICENSE/cjuniet.md                               |   15 +
 RELICENSE/ckamm.md                                 |   15 +
 RELICENSE/clkao.md                                 |   15 +
 RELICENSE/danielhtshih.md                          |   15 +
 RELICENSE/danriegsecker.md                         |   16 +
 RELICENSE/dfons.md                                 |   16 +
 RELICENSE/djelenc.md                               |   15 +
 RELICENSE/drodri.md                                |   15 +
 RELICENSE/eburkitt.md                              |   15 +
 RELICENSE/egomotion.md                             |   16 +
 RELICENSE/evoskuil.md                              |   15 +
 RELICENSE/febeling.md                              |   16 +
 RELICENSE/fidlej.md                                |   15 +
 RELICENSE/flub.md                                  |   14 +
 RELICENSE/gena-moscow.md                           |   15 +
 RELICENSE/gonzus.md                                |   15 +
 RELICENSE/goodfella_ltd.md                         |   13 +
 RELICENSE/google.md                                |   13 +
 RELICENSE/hoditohod.md                             |   15 +
 RELICENSE/ianbarber.md                             |   15 +
 RELICENSE/imatix.md                                |   23 +
 RELICENSE/jakecobb.md                              |   13 +
 RELICENSE/jemc.md                                  |   15 +
 RELICENSE/jimklimov.md                             |   17 +
 RELICENSE/jkryl.md                                 |   15 +
 RELICENSE/johntconklin.md                          |   15 +
 RELICENSE/jruffin.md                               |   14 +
 RELICENSE/kentzo.md                                |   15 +
 RELICENSE/kevinsapper.md                           |   13 +
 RELICENSE/kobolog.md                               |   12 +
 RELICENSE/kurdybacha.md                            |   15 +
 RELICENSE/linville.md                              |   15 +
 RELICENSE/loachfish.md                             |   15 +
 RELICENSE/lodagro.md                               |   15 +
 RELICENSE/madebr.md                                |   15 +
 RELICENSE/mattconnolly.md                          |   15 +
 RELICENSE/mauri-melato.md                          |   13 +
 RELICENSE/mditzel.md                               |   15 +
 RELICENSE/meox.md                                  |   15 +
 RELICENSE/michael-fox.md                           |   16 +
 RELICENSE/michicc.md                               |   15 +
 RELICENSE/minrk.md                                 |   15 +
 RELICENSE/mipaaa.md                                |   15 +
 RELICENSE/mkluwe.md                                |   15 +
 RELICENSE/montoyaedu.md                            |   15 +
 RELICENSE/naos_ltd.md                              |   19 +
 RELICENSE/natano.md                                |   15 +
 RELICENSE/olafmandel.md                            |   13 +
 RELICENSE/pijyoi.md                                |   13 +
 RELICENSE/ptroja.md                                |   14 +
 RELICENSE/reunanen.md                              |   15 +
 RELICENSE/reza-ebrahimi.md                         |   15 +
 RELICENSE/rikvdh.md                                |   15 +
 RELICENSE/rlenferink.md                            |   15 +
 RELICENSE/roalz.md                                 |   13 +
 RELICENSE/rodgert.md                               |   17 +
 RELICENSE/rotty.md                                 |   16 +
 RELICENSE/sabae.md                                 |   15 +
 RELICENSE/scemama.md                               |   15 +
 RELICENSE/sheremetyev.md                           |   13 +
 RELICENSE/shripchenko.md                           |   15 +
 RELICENSE/sigiesec.md                              |   17 +
 RELICENSE/simias.md                                |   15 +
 RELICENSE/soulik.md                                |   15 +
 RELICENSE/swansontec.md                            |   15 +
 RELICENSE/t-b.md                                   |   15 +
 RELICENSE/tSed.md                                  |   15 +
 RELICENSE/tabe.md                                  |   15 +
 RELICENSE/tailhook.md                              |   16 +
 RELICENSE/taotetek.md                              |   13 +
 .../templates/relicense-template-mplv2-any-osi.txt |   15 +
 .../relicense-template-mplv2-share-alike-osi.txt   |   15 +
 RELICENSE/templates/relicense-template-mplv2.txt   |   13 +
 RELICENSE/thompsa.md                               |   15 +
 RELICENSE/torehalvorsen.md                         |   15 +
 RELICENSE/twhittock.md                             |   15 +
 RELICENSE/ulikoehler.md                            |   16 +
 RELICENSE/vyskocilm.md                             |    7 +
 RELICENSE/willstrang.md                            |   15 +
 RELICENSE/xaqq.md                                  |   13 +
 RELICENSE/yuvallanger.md                           |   15 +
 acinclude.m4                                       | 1171 ++++++++++
 appveyor.yml                                       |  246 +++
 autogen.sh                                         |   49 +
 branding.bmp                                       |  Bin 0 -> 25818 bytes
 builds/Makefile.am                                 |   34 +
 builds/README                                      |   14 +
 builds/android/Dockerfile                          |   22 +
 builds/android/README.md                           |   83 +
 builds/android/android_build_helper.sh             |  316 +++
 builds/android/build.sh                            |   70 +
 builds/android/ci_build.sh                         |   30 +
 builds/cmake/Modules/ClangFormat.cmake             |   41 +
 builds/cmake/Modules/FindAsciiDoc.cmake            |   26 +
 builds/cmake/Modules/FindSodium.cmake              |   40 +
 builds/cmake/Modules/TestZMQVersion.cmake          |    8 +
 builds/cmake/Modules/ZMQSourceRunChecks.cmake      |  313 +++
 builds/cmake/Modules/ZMQSupportMacros.cmake        |    5 +
 builds/cmake/NSIS.template32.in                    |  952 ++++++++
 builds/cmake/NSIS.template64.in                    |  960 ++++++++
 builds/cmake/ZeroMQConfig.cmake.in                 |   25 +
 builds/cmake/ci_build.sh                           |  110 +
 builds/cmake/clang-format-check.sh.in              |   14 +
 builds/cmake/platform.hpp.in                       |  109 +
 builds/coverage/ci_build.sh                        |   32 +
 builds/cygwin/Makefile.cygwin                      |   48 +
 builds/deprecated-msvc/.gitignore                  |  256 +++
 builds/deprecated-msvc/Makefile.am                 |   94 +
 builds/deprecated-msvc/build/build.bat             |   33 +
 builds/deprecated-msvc/build/buildall.bat          |   16 +
 builds/deprecated-msvc/build/buildbase.bat         |   73 +
 builds/deprecated-msvc/errno.cpp                   |   32 +
 builds/deprecated-msvc/errno.hpp                   |   56 +
 builds/deprecated-msvc/platform.hpp                |   14 +
 builds/deprecated-msvc/properties/Common.props     |   21 +
 builds/deprecated-msvc/properties/DLL.props        |   16 +
 builds/deprecated-msvc/properties/Debug.props      |   29 +
 builds/deprecated-msvc/properties/DebugDEXE.props  |   21 +
 builds/deprecated-msvc/properties/DebugDLL.props   |   20 +
 builds/deprecated-msvc/properties/DebugLEXE.props  |   20 +
 builds/deprecated-msvc/properties/DebugLIB.props   |   21 +
 builds/deprecated-msvc/properties/DebugLTCG.props  |   20 +
 builds/deprecated-msvc/properties/DebugSEXE.props  |   21 +
 builds/deprecated-msvc/properties/EXE.props        |   17 +
 builds/deprecated-msvc/properties/LIB.props        |   16 +
 builds/deprecated-msvc/properties/LTCG.props       |   13 +
 builds/deprecated-msvc/properties/Link.props       |   21 +
 builds/deprecated-msvc/properties/Messages.props   |   15 +
 builds/deprecated-msvc/properties/Output.props     |   30 +
 builds/deprecated-msvc/properties/Release.props    |   41 +
 .../deprecated-msvc/properties/ReleaseDEXE.props   |   20 +
 builds/deprecated-msvc/properties/ReleaseDLL.props |   19 +
 .../deprecated-msvc/properties/ReleaseLEXE.props   |   20 +
 builds/deprecated-msvc/properties/ReleaseLIB.props |   19 +
 .../deprecated-msvc/properties/ReleaseLTCG.props   |   19 +
 .../deprecated-msvc/properties/ReleaseSEXE.props   |   20 +
 builds/deprecated-msvc/properties/Win32.props      |   20 +
 builds/deprecated-msvc/properties/x64.props        |   23 +
 builds/deprecated-msvc/readme.txt                  |   27 +
 builds/deprecated-msvc/resource.h                  |   14 +
 builds/deprecated-msvc/resource.rc                 |  Bin 0 -> 4650 bytes
 .../vs2008/inproc_lat/inproc_lat.vcproj            |   52 +
 .../vs2008/inproc_thr/inproc_thr.vcproj            |   52 +
 builds/deprecated-msvc/vs2008/libzmq.sln           |   95 +
 builds/deprecated-msvc/vs2008/libzmq/libzmq.vcproj |  338 +++
 .../vs2008/local_lat/local_lat.vcproj              |   52 +
 .../vs2008/local_thr/local_thr.vcproj              |   52 +
 .../vs2008/remote_lat/remote_lat.vcproj            |   52 +
 .../vs2008/remote_thr/remote_thr.vcproj            |   52 +
 .../vs2010/inproc_lat/inproc_lat.props             |   49 +
 .../vs2010/inproc_lat/inproc_lat.vcxproj           |   82 +
 .../vs2010/inproc_thr/inproc_thr.props             |   49 +
 .../vs2010/inproc_thr/inproc_thr.vcxproj           |   82 +
 .../deprecated-msvc/vs2010/libsodium.import.props  |   52 +
 builds/deprecated-msvc/vs2010/libsodium.import.xml |   17 +
 builds/deprecated-msvc/vs2010/libzmq.import.props  |   64 +
 builds/deprecated-msvc/vs2010/libzmq.import.xml    |   49 +
 builds/deprecated-msvc/vs2010/libzmq.sln           |  206 ++
 builds/deprecated-msvc/vs2010/libzmq/libzmq.props  |   76 +
 .../deprecated-msvc/vs2010/libzmq/libzmq.vcxproj   |  289 +++
 .../vs2010/libzmq/libzmq.vcxproj.filters           |  627 ++++++
 builds/deprecated-msvc/vs2010/libzmq/libzmq.xml    |   40 +
 .../vs2010/local_lat/local_lat.props               |   49 +
 .../vs2010/local_lat/local_lat.vcxproj             |   82 +
 .../vs2010/local_thr/local_thr.props               |   49 +
 .../vs2010/local_thr/local_thr.vcxproj             |   82 +
 .../vs2010/remote_lat/remote_lat.props             |   49 +
 .../vs2010/remote_lat/remote_lat.vcxproj           |   82 +
 .../vs2010/remote_thr/remote_thr.props             |   49 +
 .../vs2010/remote_thr/remote_thr.vcxproj           |   82 +
 .../vs2012/inproc_lat/inproc_lat.props             |   49 +
 .../vs2012/inproc_lat/inproc_lat.vcxproj           |   82 +
 .../vs2012/inproc_thr/inproc_thr.props             |   49 +
 .../vs2012/inproc_thr/inproc_thr.vcxproj           |   82 +
 .../deprecated-msvc/vs2012/libsodium.import.props  |   52 +
 builds/deprecated-msvc/vs2012/libsodium.import.xml |   17 +
 builds/deprecated-msvc/vs2012/libzmq.import.props  |   64 +
 builds/deprecated-msvc/vs2012/libzmq.import.xml    |   49 +
 builds/deprecated-msvc/vs2012/libzmq.sln           |  206 ++
 builds/deprecated-msvc/vs2012/libzmq/libzmq.props  |   76 +
 .../deprecated-msvc/vs2012/libzmq/libzmq.vcxproj   |  289 +++
 .../vs2012/libzmq/libzmq.vcxproj.filters           |  627 ++++++
 builds/deprecated-msvc/vs2012/libzmq/libzmq.xml    |   40 +
 .../vs2012/local_lat/local_lat.props               |   49 +
 .../vs2012/local_lat/local_lat.vcxproj             |   82 +
 .../vs2012/local_thr/local_thr.props               |   49 +
 .../vs2012/local_thr/local_thr.vcxproj             |   82 +
 .../vs2012/remote_lat/remote_lat.props             |   49 +
 .../vs2012/remote_lat/remote_lat.vcxproj           |   82 +
 .../vs2012/remote_thr/remote_thr.props             |   49 +
 .../vs2012/remote_thr/remote_thr.vcxproj           |   82 +
 .../vs2013/inproc_lat/inproc_lat.props             |   49 +
 .../vs2013/inproc_lat/inproc_lat.vcxproj           |   82 +
 .../vs2013/inproc_thr/inproc_thr.props             |   49 +
 .../vs2013/inproc_thr/inproc_thr.vcxproj           |   82 +
 .../deprecated-msvc/vs2013/libsodium.import.props  |   52 +
 builds/deprecated-msvc/vs2013/libsodium.import.xml |   17 +
 builds/deprecated-msvc/vs2013/libzmq.import.props  |   64 +
 builds/deprecated-msvc/vs2013/libzmq.import.xml    |   49 +
 builds/deprecated-msvc/vs2013/libzmq.sln           |  208 ++
 builds/deprecated-msvc/vs2013/libzmq/libzmq.props  |   76 +
 .../deprecated-msvc/vs2013/libzmq/libzmq.vcxproj   |  289 +++
 .../vs2013/libzmq/libzmq.vcxproj.filters           |  627 ++++++
 builds/deprecated-msvc/vs2013/libzmq/libzmq.xml    |   40 +
 .../vs2013/local_lat/local_lat.props               |   49 +
 .../vs2013/local_lat/local_lat.vcxproj             |   82 +
 .../vs2013/local_thr/local_thr.props               |   49 +
 .../vs2013/local_thr/local_thr.vcxproj             |   82 +
 .../vs2013/remote_lat/remote_lat.props             |   49 +
 .../vs2013/remote_lat/remote_lat.vcxproj           |   82 +
 .../vs2013/remote_thr/remote_thr.props             |   49 +
 .../vs2013/remote_thr/remote_thr.vcxproj           |   82 +
 .../vs2015/inproc_lat/inproc_lat.props             |   49 +
 .../vs2015/inproc_lat/inproc_lat.vcxproj           |   82 +
 .../vs2015/inproc_thr/inproc_thr.props             |   49 +
 .../vs2015/inproc_thr/inproc_thr.vcxproj           |   82 +
 .../deprecated-msvc/vs2015/libsodium.import.props  |   52 +
 builds/deprecated-msvc/vs2015/libsodium.import.xml |   17 +
 builds/deprecated-msvc/vs2015/libzmq.import.props  |   64 +
 builds/deprecated-msvc/vs2015/libzmq.import.xml    |   49 +
 builds/deprecated-msvc/vs2015/libzmq.sln           |  208 ++
 builds/deprecated-msvc/vs2015/libzmq/libzmq.props  |   76 +
 .../deprecated-msvc/vs2015/libzmq/libzmq.vcxproj   |  291 +++
 .../vs2015/libzmq/libzmq.vcxproj.filters           |  627 ++++++
 builds/deprecated-msvc/vs2015/libzmq/libzmq.xml    |   40 +
 .../vs2015/local_lat/local_lat.props               |   49 +
 .../vs2015/local_lat/local_lat.vcxproj             |   82 +
 .../vs2015/local_thr/local_thr.props               |   49 +
 .../vs2015/local_thr/local_thr.vcxproj             |   82 +
 .../vs2015/remote_lat/remote_lat.props             |   49 +
 .../vs2015/remote_lat/remote_lat.vcxproj           |   82 +
 .../vs2015/remote_thr/remote_thr.props             |   49 +
 .../vs2015/remote_thr/remote_thr.vcxproj           |   82 +
 builds/deprecated-msvc/vs2015_xp/libzmq.vcxproj    |  258 +++
 builds/deprecated-msvc/vs2015_xp/platform.hpp      |   15 +
 .../vs2015_xp/test_zmq/test_multithread.cpp        |  229 ++
 .../vs2015_xp/test_zmq/test_zmq.vcxproj            |  155 ++
 .../vs2017/inproc_lat/inproc_lat.props             |   49 +
 .../vs2017/inproc_lat/inproc_lat.vcxproj           |   82 +
 .../vs2017/inproc_thr/inproc_thr.props             |   49 +
 .../vs2017/inproc_thr/inproc_thr.vcxproj           |   82 +
 .../deprecated-msvc/vs2017/libsodium.import.props  |   52 +
 builds/deprecated-msvc/vs2017/libsodium.import.xml |   17 +
 builds/deprecated-msvc/vs2017/libzmq.import.props  |   64 +
 builds/deprecated-msvc/vs2017/libzmq.import.xml    |   49 +
 builds/deprecated-msvc/vs2017/libzmq.sln           |  208 ++
 builds/deprecated-msvc/vs2017/libzmq/libzmq.props  |   76 +
 .../deprecated-msvc/vs2017/libzmq/libzmq.vcxproj   |  289 +++
 .../vs2017/libzmq/libzmq.vcxproj.filters           |  627 ++++++
 builds/deprecated-msvc/vs2017/libzmq/libzmq.xml    |   40 +
 .../vs2017/local_lat/local_lat.props               |   49 +
 .../vs2017/local_lat/local_lat.vcxproj             |   82 +
 .../vs2017/local_thr/local_thr.props               |   49 +
 .../vs2017/local_thr/local_thr.vcxproj             |   82 +
 .../vs2017/remote_lat/remote_lat.props             |   49 +
 .../vs2017/remote_lat/remote_lat.vcxproj           |   82 +
 .../vs2017/remote_thr/remote_thr.props             |   49 +
 .../vs2017/remote_thr/remote_thr.vcxproj           |   82 +
 builds/gyp/.gitignore                              |    5 +
 builds/gyp/build.bat                               |    4 +
 builds/gyp/platform.hpp                            |   80 +
 builds/gyp/project-tests.gsl                       |   19 +
 builds/gyp/project-tests.gypi                      |  895 ++++++++
 builds/gyp/project-tests.xml                       |   83 +
 builds/gyp/project.gyp                             |  295 +++
 builds/mingw32/Makefile.mingw32                    |   49 +
 builds/mingw32/platform.hpp                        |   43 +
 builds/nuget/libzmq.autopkg                        |   52 +
 builds/nuget/readme.nuget                          |   20 +
 builds/openwrt/Makefile                            |   70 +
 builds/valgrind/ci_build.sh                        |   30 +
 builds/valgrind/valgrind.supp                      |   22 +
 builds/valgrind/vg                                 |    1 +
 builds/vxworks/platform.hpp                        |  306 +++
 builds/zos/README.md                               |  463 ++++
 builds/zos/cxxall                                  |   62 +
 builds/zos/makeclean                               |   36 +
 builds/zos/makelibzmq                              |   54 +
 builds/zos/maketests                               |  102 +
 builds/zos/platform.hpp                            |  300 +++
 builds/zos/runtests                                |  188 ++
 builds/zos/test_fork.cpp                           |   95 +
 builds/zos/zc++                                    |   42 +
 ci_build.sh                                        |   74 +
 ci_deploy.sh                                       |   34 +
 configure.ac                                       |  860 ++++++++
 doc/Makefile.am                                    |   65 +
 doc/asciidoc.conf                                  |   56 +
 doc/zmq.txt                                        |  279 +++
 doc/zmq_atomic_counter_dec.txt                     |   62 +
 doc/zmq_atomic_counter_destroy.txt                 |   62 +
 doc/zmq_atomic_counter_inc.txt                     |   61 +
 doc/zmq_atomic_counter_new.txt                     |   62 +
 doc/zmq_atomic_counter_set.txt                     |   61 +
 doc/zmq_atomic_counter_value.txt                   |   62 +
 doc/zmq_bind.txt                                   |  103 +
 doc/zmq_close.txt                                  |   59 +
 doc/zmq_connect.txt                                |  108 +
 doc/zmq_ctx_destroy.txt                            |   67 +
 doc/zmq_ctx_get.txt                                |  111 +
 doc/zmq_ctx_new.txt                                |   50 +
 doc/zmq_ctx_set.txt                                |  197 ++
 doc/zmq_ctx_shutdown.txt                           |   52 +
 doc/zmq_ctx_term.txt                               |   68 +
 doc/zmq_curve.txt                                  |   92 +
 doc/zmq_curve_keypair.txt                          |   56 +
 doc/zmq_curve_public.txt                           |   62 +
 doc/zmq_disconnect.txt                             |   75 +
 doc/zmq_errno.txt                                  |   50 +
 doc/zmq_getsockopt.txt                             |  967 ++++++++
 doc/zmq_gssapi.txt                                 |   78 +
 doc/zmq_has.txt                                    |   44 +
 doc/zmq_init.txt                                   |   52 +
 doc/zmq_inproc.txt                                 |   88 +
 doc/zmq_ipc.txt                                    |  106 +
 doc/zmq_msg_close.txt                              |   56 +
 doc/zmq_msg_copy.txt                               |   72 +
 doc/zmq_msg_data.txt                               |   48 +
 doc/zmq_msg_get.txt                                |   83 +
 doc/zmq_msg_gets.txt                               |   83 +
 doc/zmq_msg_init.txt                               |   64 +
 doc/zmq_msg_init_data.txt                          |   89 +
 doc/zmq_msg_init_size.txt                          |   58 +
 doc/zmq_msg_more.txt                               |   65 +
 doc/zmq_msg_move.txt                               |   52 +
 doc/zmq_msg_recv.txt                               |  124 ++
 doc/zmq_msg_routing_id.txt                         |   61 +
 doc/zmq_msg_send.txt                               |  127 ++
 doc/zmq_msg_set.txt                                |   46 +
 doc/zmq_msg_set_routing_id.txt                     |   46 +
 doc/zmq_msg_size.txt                               |   48 +
 doc/zmq_null.txt                                   |   27 +
 doc/zmq_pgm.txt                                    |  164 ++
 doc/zmq_plain.txt                                  |   37 +
 doc/zmq_poll.txt                                   |  135 ++
 doc/zmq_poller.txt                                 |  269 +++
 doc/zmq_poller_add.txt                             |    1 +
 doc/zmq_poller_add_fd.txt                          |    1 +
 doc/zmq_poller_destroy.txt                         |    1 +
 doc/zmq_poller_modify.txt                          |    1 +
 doc/zmq_poller_modify_fd.txt                       |    1 +
 doc/zmq_poller_new.txt                             |    1 +
 doc/zmq_poller_remove.txt                          |    1 +
 doc/zmq_poller_remove_fd.txt                       |    1 +
 doc/zmq_poller_wait_all.txt                        |    1 +
 doc/zmq_proxy.txt                                  |   99 +
 doc/zmq_proxy_steerable.txt                        |  111 +
 doc/zmq_recv.txt                                   |   91 +
 doc/zmq_recvmsg.txt                                |  121 +
 doc/zmq_send.txt                                   |  104 +
 doc/zmq_send_const.txt                             |  103 +
 doc/zmq_sendmsg.txt                                |  121 +
 doc/zmq_setsockopt.txt                             | 1375 ++++++++++++
 doc/zmq_socket.txt                                 |  616 ++++++
 doc/zmq_socket_monitor.txt                         |  294 +++
 doc/zmq_strerror.txt                               |   56 +
 doc/zmq_tcp.txt                                    |  142 ++
 doc/zmq_term.txt                                   |   66 +
 doc/zmq_timers.txt                                 |  162 ++
 doc/zmq_tipc.txt                                   |   83 +
 doc/zmq_udp.txt                                    |  116 +
 doc/zmq_unbind.txt                                 |   90 +
 doc/zmq_version.txt                                |   54 +
 doc/zmq_vmci.txt                                   |   97 +
 doc/zmq_z85_decode.txt                             |   51 +
 doc/zmq_z85_encode.txt                             |   58 +
 external/unity/license.txt                         |   21 +
 external/unity/unity.c                             | 1570 +++++++++++++
 external/unity/unity.h                             |  503 +++++
 external/unity/unity_internals.h                   |  872 ++++++++
 external/unity/version.txt                         |    1 +
 external/wepoll/README.md                          |  202 ++
 external/wepoll/license.txt                        |   28 +
 external/wepoll/version.txt                        |    1 +
 external/wepoll/wepoll.c                           | 2170 ++++++++++++++++++
 external/wepoll/wepoll.h                           |  117 +
 include/zmq.h                                      |  743 +++++++
 include/zmq_utils.h                                |   50 +
 installer.ico                                      |  Bin 0 -> 2842 bytes
 m4/ax_check_compile_flag.m4                        |   74 +
 m4/ax_code_coverage.m4                             |  264 +++
 m4/ax_cxx_compile_stdcxx.m4                        |  562 +++++
 m4/ax_cxx_compile_stdcxx_11.m4                     |   40 +
 m4/ax_valgrind_check.m4                            |  233 ++
 packaging/README                                   |    4 +
 packaging/debian/changelog                         |    5 +
 packaging/debian/compat                            |    1 +
 packaging/debian/control                           |   64 +
 packaging/debian/copyright                         |  116 +
 packaging/debian/libzmq3-dev.install               |    4 +
 packaging/debian/libzmq3-dev.manpages              |    2 +
 packaging/debian/libzmq5.docs                      |    2 +
 packaging/debian/libzmq5.install                   |    1 +
 packaging/debian/rules                             |   67 +
 packaging/debian/source/format                     |    1 +
 packaging/debian/zeromq.dsc.obs                    |   15 +
 packaging/nuget/package.bat                        |   14 +
 packaging/nuget/package.config                     |    6 +
 packaging/nuget/package.gsl                        |  264 +++
 packaging/nuget/package.nuspec                     |   98 +
 packaging/nuget/package.targets                    |  129 ++
 packaging/nuget/package.xml                        |   22 +
 packaging/obs/_service                             |   98 +
 packaging/redhat/zeromq.spec                       |  234 ++
 perf/inproc_lat.cpp                                |  238 ++
 perf/inproc_thr.cpp                                |  247 +++
 perf/local_lat.cpp                                 |  116 +
 perf/local_thr.cpp                                 |  161 ++
 perf/remote_lat.cpp                                |  129 ++
 perf/remote_thr.cpp                                |  138 ++
 src/address.cpp                                    |  110 +
 src/address.hpp                                    |  102 +
 src/array.hpp                                      |  135 ++
 src/atomic_counter.hpp                             |  239 ++
 src/atomic_ptr.hpp                                 |  307 +++
 src/blob.hpp                                       |  204 ++
 src/client.cpp                                     |  113 +
 src/client.hpp                                     |   74 +
 src/clock.cpp                                      |  265 +++
 src/clock.hpp                                      |   80 +
 src/command.hpp                                    |  204 ++
 src/condition_variable.hpp                         |  353 +++
 src/config.hpp                                     |   96 +
 src/ctx.cpp                                        |  684 ++++++
 src/ctx.hpp                                        |  265 +++
 src/curve_client.cpp                               |  291 +++
 src/curve_client.hpp                               |   84 +
 src/curve_client_tools.hpp                         |  307 +++
 src/curve_mechanism_base.cpp                       |  179 ++
 src/curve_mechanism_base.hpp                       |   79 +
 src/curve_server.cpp                               |  493 +++++
 src/curve_server.hpp                               |   91 +
 src/dbuffer.hpp                                    |  141 ++
 src/dealer.cpp                                     |  144 ++
 src/dealer.hpp                                     |   84 +
 src/decoder.hpp                                    |  194 ++
 src/decoder_allocators.cpp                         |  155 ++
 src/decoder_allocators.hpp                         |  133 ++
 src/devpoll.cpp                                    |  203 ++
 src/devpoll.hpp                                    |  115 +
 src/dgram.cpp                                      |  172 ++
 src/dgram.hpp                                      |   75 +
 src/dish.cpp                                       |  351 +++
 src/dish.hpp                                       |  123 ++
 src/dist.cpp                                       |  232 ++
 src/dist.hpp                                       |  115 +
 src/encoder.hpp                                    |  181 ++
 src/epoll.cpp                                      |  218 ++
 src/epoll.hpp                                      |  118 +
 src/err.cpp                                        |  452 ++++
 src/err.hpp                                        |  181 ++
 src/fd.hpp                                         |   67 +
 src/fq.cpp                                         |  150 ++
 src/fq.hpp                                         |   85 +
 src/gather.cpp                                     |   91 +
 src/gather.hpp                                     |   67 +
 src/generic_mtrie.hpp                              |  127 ++
 src/generic_mtrie_impl.hpp                         |  475 ++++
 src/gssapi_client.cpp                              |  236 ++
 src/gssapi_client.hpp                              |   92 +
 src/gssapi_mechanism_base.cpp                      |  402 ++++
 src/gssapi_mechanism_base.hpp                      |  132 ++
 src/gssapi_server.cpp                              |  248 +++
 src/gssapi_server.hpp                              |   92 +
 src/i_decoder.hpp                                  |   60 +
 src/i_encoder.hpp                                  |   57 +
 src/i_engine.hpp                                   |   68 +
 src/i_mailbox.hpp                                  |   57 +
 src/i_poll_events.hpp                              |   53 +
 src/io_object.cpp                                  |  116 +
 src/io_object.hpp                                  |   84 +
 src/io_thread.cpp                                  |  118 +
 src/io_thread.hpp                                  |   93 +
 src/ip.cpp                                         |  680 ++++++
 src/ip.hpp                                         |   76 +
 src/ip_resolver.cpp                                |  720 ++++++
 src/ip_resolver.hpp                                |  114 +
 src/ipc_address.cpp                                |  108 +
 src/ipc_address.hpp                                |   69 +
 src/ipc_connecter.cpp                              |  280 +++
 src/ipc_connecter.hpp                              |  136 ++
 src/ipc_listener.cpp                               |  430 ++++
 src/ipc_listener.hpp                               |  119 +
 src/kqueue.cpp                                     |  230 ++
 src/kqueue.hpp                                     |  110 +
 src/lb.cpp                                         |  165 ++
 src/lb.hpp                                         |   86 +
 src/libzmq.pc.cmake.in                             |   11 +
 src/libzmq.pc.in                                   |   11 +
 src/libzmq.vers                                    |    4 +
 src/likely.hpp                                     |   42 +
 src/macros.hpp                                     |   21 +
 src/mailbox.cpp                                    |  106 +
 src/mailbox.hpp                                    |   88 +
 src/mailbox_safe.cpp                               |  118 +
 src/mailbox_safe.hpp                               |   90 +
 src/mechanism.cpp                                  |  360 +++
 src/mechanism.hpp                                  |  148 ++
 src/mechanism_base.cpp                             |   82 +
 src/mechanism_base.hpp                             |   56 +
 src/metadata.cpp                                   |   58 +
 src/metadata.hpp                                   |   69 +
 src/msg.cpp                                        |  606 +++++
 src/msg.hpp                                        |  305 +++
 src/mtrie.cpp                                      |   37 +
 src/mtrie.hpp                                      |   52 +
 src/mutex.hpp                                      |  216 ++
 src/norm_engine.cpp                                |  717 ++++++
 src/norm_engine.hpp                                |  189 ++
 src/null_mechanism.cpp                             |  230 ++
 src/null_mechanism.hpp                             |   73 +
 src/object.cpp                                     |  478 ++++
 src/object.hpp                                     |  149 ++
 src/options.cpp                                    | 1175 ++++++++++
 src/options.hpp                                    |  308 +++
 src/own.cpp                                        |  212 ++
 src/own.hpp                                        |  148 ++
 src/pair.cpp                                       |  138 ++
 src/pair.hpp                                       |   72 +
 src/pgm_receiver.cpp                               |  314 +++
 src/pgm_receiver.hpp                               |  143 ++
 src/pgm_sender.cpp                                 |  256 +++
 src/pgm_sender.hpp                                 |  122 +
 src/pgm_socket.cpp                                 |  687 ++++++
 src/pgm_socket.hpp                                 |  128 ++
 src/pipe.cpp                                       |  555 +++++
 src/pipe.hpp                                       |  255 +++
 src/plain_client.cpp                               |  224 ++
 src/plain_client.hpp                               |   73 +
 src/plain_common.hpp                               |   53 +
 src/plain_server.cpp                               |  253 +++
 src/plain_server.hpp                               |   66 +
 src/poll.cpp                                       |  204 ++
 src/poll.hpp                                       |  111 +
 src/poller.hpp                                     |   68 +
 src/poller_base.cpp                                |  140 ++
 src/poller_base.hpp                                |  196 ++
 src/polling_util.cpp                               |   51 +
 src/polling_util.hpp                               |  181 ++
 src/pollset.cpp                                    |  254 +++
 src/pollset.hpp                                    |  117 +
 src/precompiled.cpp                                |   30 +
 src/precompiled.hpp                                |  134 ++
 src/proxy.cpp                                      |  646 ++++++
 src/proxy.hpp                                      |   42 +
 src/pub.cpp                                        |   69 +
 src/pub.hpp                                        |   61 +
 src/pull.cpp                                       |   76 +
 src/pull.hpp                                       |   69 +
 src/push.cpp                                       |   80 +
 src/push.hpp                                       |   69 +
 src/radio.cpp                                      |  286 +++
 src/radio.hpp                                      |  115 +
 src/random.cpp                                     |  170 ++
 src/random.hpp                                     |   51 +
 src/raw_decoder.cpp                                |   74 +
 src/raw_decoder.hpp                                |   69 +
 src/raw_encoder.cpp                                |   50 +
 src/raw_encoder.hpp                                |   57 +
 src/reaper.cpp                                     |  149 ++
 src/reaper.hpp                                     |   90 +
 src/rep.cpp                                        |  133 ++
 src/rep.hpp                                        |   68 +
 src/req.cpp                                        |  333 +++
 src/req.hpp                                        |  117 +
 src/router.cpp                                     |  523 +++++
 src/router.hpp                                     |  131 ++
 src/scatter.cpp                                    |   86 +
 src/scatter.hpp                                    |   69 +
 src/select.cpp                                     |  630 ++++++
 src/select.hpp                                     |  172 ++
 src/server.cpp                                     |  181 ++
 src/server.hpp                                     |   89 +
 src/session_base.cpp                               |  764 +++++++
 src/session_base.hpp                               |  197 ++
 src/signaler.cpp                                   |  413 ++++
 src/signaler.hpp                                   |   89 +
 src/socket_base.cpp                                | 1850 ++++++++++++++++
 src/socket_base.hpp                                |  367 ++++
 src/socket_poller.cpp                              |  686 ++++++
 src/socket_poller.hpp                              |  150 ++
 src/socks.cpp                                      |  290 +++
 src/socks.hpp                                      |  133 ++
 src/socks_connecter.cpp                            |  476 ++++
 src/socks_connecter.hpp                            |  171 ++
 src/stdint.hpp                                     |   80 +
 src/stream.cpp                                     |  291 +++
 src/stream.hpp                                     |   95 +
 src/stream_engine.cpp                              | 1248 +++++++++++
 src/stream_engine.hpp                              |  248 +++
 src/sub.cpp                                        |   84 +
 src/sub.hpp                                        |   59 +
 src/tcp.cpp                                        |  383 ++++
 src/tcp.hpp                                        |   73 +
 src/tcp_address.cpp                                |  323 +++
 src/tcp_address.hpp                                |   99 +
 src/tcp_connecter.cpp                              |  446 ++++
 src/tcp_connecter.hpp                              |  139 ++
 src/tcp_listener.cpp                               |  355 +++
 src/tcp_listener.hpp                               |   95 +
 src/thread.cpp                                     |  329 +++
 src/thread.hpp                                     |  130 ++
 src/timers.cpp                                     |  184 ++
 src/timers.hpp                                     |  109 +
 src/tipc_address.cpp                               |  175 ++
 src/tipc_address.hpp                               |   80 +
 src/tipc_connecter.cpp                             |  283 +++
 src/tipc_connecter.hpp                             |  137 ++
 src/tipc_listener.cpp                              |  235 ++
 src/tipc_listener.hpp                              |  103 +
 src/trie.cpp                                       |  323 +++
 src/trie.hpp                                       |   85 +
 src/tweetnacl.c                                    |  993 +++++++++
 src/tweetnacl.h                                    |   80 +
 src/udp_address.cpp                                |  208 ++
 src/udp_address.hpp                                |   73 +
 src/udp_engine.cpp                                 |  560 +++++
 src/udp_engine.hpp                                 |   72 +
 src/v1_decoder.cpp                                 |  154 ++
 src/v1_decoder.hpp                                 |   63 +
 src/v1_encoder.cpp                                 |   77 +
 src/v1_encoder.hpp                                 |   56 +
 src/v2_decoder.cpp                                 |  167 ++
 src/v2_decoder.hpp                                 |   71 +
 src/v2_encoder.cpp                                 |   80 +
 src/v2_encoder.hpp                                 |   56 +
 src/v2_protocol.hpp                                |   49 +
 src/version.rc.in                                  |   93 +
 src/vmci.cpp                                       |  100 +
 src/vmci.hpp                                       |   66 +
 src/vmci_address.cpp                               |  167 ++
 src/vmci_address.hpp                               |   71 +
 src/vmci_connecter.cpp                             |  300 +++
 src/vmci_connecter.hpp                             |  137 ++
 src/vmci_listener.cpp                              |  266 +++
 src/vmci_listener.hpp                              |   98 +
 src/windows.hpp                                    |   97 +
 src/wire.hpp                                       |  103 +
 src/xpub.cpp                                       |  362 +++
 src/xpub.hpp                                       |  122 +
 src/xsub.cpp                                       |  261 +++
 src/xsub.hpp                                       |   97 +
 src/ypipe.hpp                                      |  211 ++
 src/ypipe_base.hpp                                 |   54 +
 src/ypipe_conflate.hpp                             |  119 +
 src/yqueue.hpp                                     |  215 ++
 src/zap_client.cpp                                 |  314 +++
 src/zap_client.hpp                                 |  101 +
 src/zmq.cpp                                        | 1443 ++++++++++++
 src/zmq_draft.h                                    |  172 ++
 src/zmq_utils.cpp                                  |  321 +++
 tests/CMakeLists.txt                               |  248 +++
 tests/README.md                                    |   45 +
 tests/test_abstract_ipc.cpp                        |   67 +
 tests/test_address_tipc.cpp                        |  150 ++
 tests/test_ancillaries.cpp                         |   71 +
 tests/test_app_meta.cpp                            |  167 ++
 tests/test_atomics.cpp                             |   48 +
 tests/test_base85.cpp                              |  203 ++
 tests/test_bind_after_connect_tcp.cpp              |   73 +
 tests/test_bind_src_address.cpp                    |   66 +
 tests/test_capabilities.cpp                        |   99 +
 tests/test_client_server.cpp                       |  145 ++
 tests/test_conflate.cpp                            |   90 +
 tests/test_connect_delay_tipc.cpp                  |  232 ++
 tests/test_connect_resolve.cpp                     |  104 +
 tests/test_connect_rid.cpp                         |  258 +++
 tests/test_ctx_destroy.cpp                         |  213 ++
 tests/test_ctx_options.cpp                         |  262 +++
 tests/test_dgram.cpp                               |   99 +
 tests/test_diffserv.cpp                            |   84 +
 tests/test_disconnect_inproc.cpp                   |  151 ++
 tests/test_filter_ipc.cpp                          |  223 ++
 tests/test_fork.cpp                                |   98 +
 tests/test_getsockopt_memset.cpp                   |   64 +
 tests/test_heartbeats.cpp                          |  451 ++++
 tests/test_hwm.cpp                                 |  319 +++
 tests/test_hwm_pubsub.cpp                          |  303 +++
 tests/test_immediate.cpp                           |  231 ++
 tests/test_inproc_connect.cpp                      |  363 +++
 tests/test_invalid_rep.cpp                         |   97 +
 tests/test_iov.cpp                                 |  156 ++
 tests/test_ipc_wildcard.cpp                        |   65 +
 tests/test_issue_566.cpp                           |   99 +
 tests/test_last_endpoint.cpp                       |   75 +
 tests/test_many_sockets.cpp                        |  102 +
 tests/test_metadata.cpp                            |  130 ++
 tests/test_mock_pub_sub.cpp                        |  226 ++
 tests/test_monitor.cpp                             |  116 +
 tests/test_msg_ffn.cpp                             |  146 ++
 tests/test_msg_flags.cpp                           |  126 ++
 tests/test_pair_inproc.cpp                         |   81 +
 tests/test_pair_ipc.cpp                            |   60 +
 tests/test_pair_tcp.cpp                            |  101 +
 tests/test_pair_tipc.cpp                           |   67 +
 tests/test_pair_vmci.cpp                           |   68 +
 tests/test_poller.cpp                              |  662 ++++++
 tests/test_probe_router.cpp                        |  121 +
 tests/test_proxy.cpp                               |  503 +++++
 tests/test_proxy_hwm.cpp                           |  423 ++++
 tests/test_proxy_single_socket.cpp                 |  119 +
 tests/test_proxy_terminate.cpp                     |  131 ++
 tests/test_pub_invert_matching.cpp                 |  126 ++
 tests/test_radio_dish.cpp                          |  527 +++++
 tests/test_rebind_ipc.cpp                          |   84 +
 tests/test_reconnect_ivl.cpp                       |  122 +
 tests/test_req_correlate.cpp                       |  132 ++
 tests/test_req_relaxed.cpp                         |  220 ++
 tests/test_reqrep_device.cpp                       |  153 ++
 tests/test_reqrep_device_tipc.cpp                  |  151 ++
 tests/test_reqrep_inproc.cpp                       |   60 +
 tests/test_reqrep_ipc.cpp                          |  112 +
 tests/test_reqrep_tcp.cpp                          |  226 ++
 tests/test_reqrep_tipc.cpp                         |   66 +
 tests/test_reqrep_vmci.cpp                         |   68 +
 tests/test_router_handover.cpp                     |  171 ++
 tests/test_router_mandatory.cpp                    |  245 +++
 tests/test_router_mandatory_hwm.cpp                |  128 ++
 tests/test_router_mandatory_tipc.cpp               |   76 +
 tests/test_router_notify.cpp                       |  328 +++
 tests/test_scatter_gather.cpp                      |   84 +
 tests/test_security_curve.cpp                      |  691 ++++++
 tests/test_security_gssapi.cpp                     |  367 ++++
 tests/test_security_null.cpp                       |  250 +++
 tests/test_security_plain.cpp                      |  213 ++
 tests/test_security_zap.cpp                        |  419 ++++
 tests/test_setsockopt.cpp                          |  156 ++
 tests/test_shutdown_stress.cpp                     |  100 +
 tests/test_shutdown_stress_tipc.cpp                |   98 +
 tests/test_socket_null.cpp                         |  146 ++
 tests/test_sockopt_hwm.cpp                         |  206 ++
 tests/test_sodium.cpp                              |   99 +
 tests/test_spec_dealer.cpp                         |  235 ++
 tests/test_spec_pushpull.cpp                       |  280 +++
 tests/test_spec_rep.cpp                            |  169 ++
 tests/test_spec_req.cpp                            |  268 +++
 tests/test_spec_router.cpp                         |  207 ++
 tests/test_srcfd.cpp                               |  126 ++
 tests/test_stream.cpp                              |  309 +++
 tests/test_stream_disconnect.cpp                   |  269 +++
 tests/test_stream_empty.cpp                        |   79 +
 tests/test_stream_exceeds_buffer.cpp               |  124 ++
 tests/test_stream_timeout.cpp                      |  205 ++
 tests/test_sub_forward.cpp                         |  109 +
 tests/test_sub_forward_tipc.cpp                    |  107 +
 tests/test_system.cpp                              |  106 +
 tests/test_term_endpoint.cpp                       |  191 ++
 tests/test_term_endpoint_tipc.cpp                  |  125 ++
 tests/test_thread_safe.cpp                         |  119 +
 tests/test_timeo.cpp                               |   93 +
 tests/test_timers.cpp                              |  228 ++
 tests/test_unbind_wildcard.cpp                     |  211 ++
 tests/test_use_fd.cpp                              |  289 +++
 tests/test_xpub_manual.cpp                         |  457 ++++
 tests/test_xpub_nodrop.cpp                         |  118 +
 tests/test_xpub_verbose.cpp                        |  338 +++
 tests/test_xpub_welcome_msg.cpp                    |   81 +
 tests/test_zmq_poll_fd.cpp                         |   99 +
 tests/testutil.hpp                                 |  473 ++++
 tests/testutil_security.hpp                        |  691 ++++++
 tests/testutil_unity.hpp                           |  280 +++
 tools/curve_keygen.cpp                             |   64 +
 unittests/CMakeLists.txt                           |   67 +
 unittests/unittest_ip_resolver.cpp                 |  962 ++++++++
 unittests/unittest_mtrie.cpp                       |  457 ++++
 unittests/unittest_poller.cpp                      |  276 +++
 unittests/unittest_resolver_common.hpp             |   73 +
 unittests/unittest_udp_address.cpp                 |  326 +++
 unittests/unittest_ypipe.cpp                       |   87 +
 version.sh                                         |   21 +
 837 files changed, 125709 insertions(+)

commit 9f962ea0cc3bf918aa1958bc1d828a0f8ce9031b
Author: Luca Boccassi <luca.boccassi@gmail.com>
Date:   Thu Sep 20 20:41:13 2018 +0100

    Merge pull request #3255 from f18m/hwm_test_fix
    
    Fix for test_hwm_pubsub

 .clang-format                                      |   53 +
 .clang-tidy                                        |  414 ++++
 .github/PULL_REQUEST_TEMPLATE.md                   |   40 +
 .github/issue_template.md                          |   22 +
 .gitignore                                         |  195 ++
 .hgeol                                             |    2 +
 .mailmap                                           |   81 +
 .travis.yml                                        |  152 ++
 AUTHORS                                            |  152 ++
 CMakeLists.txt                                     | 1396 ++++++++++++
 COPYING                                            |  674 ++++++
 COPYING.LESSER                                     |  181 ++
 Dockerfile                                         |   11 +
 Doxygen.cfg                                        | 2320 ++++++++++++++++++++
 INSTALL                                            |  304 +++
 Jenkinsfile                                        |  485 ++++
 Makefile.am                                        | 1110 ++++++++++
 NEWS                                               | 1693 ++++++++++++++
 README.cygwin.md                                   |   15 +
 README.doxygen.md                                  |   48 +
 README.md                                          |  102 +
 RELICENSE/AndreLouisCaron.md                       |   15 +
 RELICENSE/Asmod4n.md                               |   13 +
 RELICENSE/BerndPrager.md                           |   13 +
 RELICENSE/Bklyn.md                                 |   15 +
 RELICENSE/BrianBuchanan.md                         |   15 +
 RELICENSE/ByronMallett.md                          |   15 +
 RELICENSE/ChristophSchulz.md                       |   15 +
 RELICENSE/ChuckRemes.md                            |   15 +
 RELICENSE/FabriceFontaine.md                       |   15 +
 RELICENSE/FrancescoMontorsi.md                     |   15 +
 RELICENSE/FrancoFichtner.md                        |   15 +
 RELICENSE/GavinMcNiff.md                           |   15 +
 RELICENSE/GhislainPutois.md                        |   15 +
 RELICENSE/GiuseppeCorbelli.md                      |   15 +
 RELICENSE/HaraldAchitz.md                          |   17 +
 RELICENSE/Hugne.md                                 |   17 +
 RELICENSE/JimHague.md                              |   16 +
 RELICENSE/JohanMabille.md                          |   16 +
 RELICENSE/LeonardMichelet                          |   14 +
 RELICENSE/LeonardoConsoni.md                       |   15 +
 RELICENSE/LionelOrry.md                            |   15 +
 RELICENSE/OsirisPedroso.md                         |   15 +
 RELICENSE/README.md                                |   23 +
 RELICENSE/RobGagnon.md                             |   13 +
 RELICENSE/SebastienRombauts.md                     |   15 +
 RELICENSE/StoianIvanov.md                          |   15 +
 RELICENSE/SylvainCorlay.md                         |   16 +
 RELICENSE/TimotheeBesset.md                        |   15 +
 RELICENSE/VincentTellier.md                        |   15 +
 RELICENSE/VolodymyrKorniichuk.md                   |   15 +
 RELICENSE/WenbinHou.md                             |   15 +
 RELICENSE/abbradar.md                              |   16 +
 RELICENSE/agronholm.md                             |   15 +
 RELICENSE/amuraru.md                               |   15 +
 RELICENSE/answeroo.md                              |   15 +
 RELICENSE/arsenm.md                                |   15 +
 RELICENSE/aseering.md                              |   15 +
 RELICENSE/bjorntopel.md                            |   16 +
 RELICENSE/bjovke.md                                |   16 +
 RELICENSE/brocade_communications_systems.md        |   15 +
 RELICENSE/brunobodin.md                            |   13 +
 RELICENSE/c-rack.md                                |   15 +
 RELICENSE/camachat.md                              |   15 +
 RELICENSE/cdolan.md                                |   15 +
 RELICENSE/chrisstaite.md                           |   14 +
 RELICENSE/chugga_fan.md                            |   15 +
 RELICENSE/cjuniet.md                               |   15 +
 RELICENSE/ckamm.md                                 |   15 +
 RELICENSE/clkao.md                                 |   15 +
 RELICENSE/danielhtshih.md                          |   15 +
 RELICENSE/danriegsecker.md                         |   16 +
 RELICENSE/dfons.md                                 |   16 +
 RELICENSE/djelenc.md                               |   15 +
 RELICENSE/drodri.md                                |   15 +
 RELICENSE/eburkitt.md                              |   15 +
 RELICENSE/egomotion.md                             |   16 +
 RELICENSE/evoskuil.md                              |   15 +
 RELICENSE/febeling.md                              |   16 +
 RELICENSE/fidlej.md                                |   15 +
 RELICENSE/flub.md                                  |   14 +
 RELICENSE/gena-moscow.md                           |   15 +
 RELICENSE/gonzus.md                                |   15 +
 RELICENSE/goodfella_ltd.md                         |   13 +
 RELICENSE/google.md                                |   13 +
 RELICENSE/hoditohod.md                             |   15 +
 RELICENSE/ianbarber.md                             |   15 +
 RELICENSE/imatix.md                                |   23 +
 RELICENSE/jakecobb.md                              |   13 +
 RELICENSE/jemc.md                                  |   15 +
 RELICENSE/jimklimov.md                             |   17 +
 RELICENSE/jkryl.md                                 |   15 +
 RELICENSE/johntconklin.md                          |   15 +
 RELICENSE/jruffin.md                               |   14 +
 RELICENSE/kentzo.md                                |   15 +
 RELICENSE/kevinsapper.md                           |   13 +
 RELICENSE/kobolog.md                               |   12 +
 RELICENSE/kurdybacha.md                            |   15 +
 RELICENSE/linville.md                              |   15 +
 RELICENSE/loachfish.md                             |   15 +
 RELICENSE/lodagro.md                               |   15 +
 RELICENSE/madebr.md                                |   15 +
 RELICENSE/mattconnolly.md                          |   15 +
 RELICENSE/mauri-melato.md                          |   13 +
 RELICENSE/mditzel.md                               |   15 +
 RELICENSE/meox.md                                  |   15 +
 RELICENSE/michael-fox.md                           |   16 +
 RELICENSE/michicc.md                               |   15 +
 RELICENSE/minrk.md                                 |   15 +
 RELICENSE/mipaaa.md                                |   15 +
 RELICENSE/mkluwe.md                                |   15 +
 RELICENSE/montoyaedu.md                            |   15 +
 RELICENSE/naos_ltd.md                              |   19 +
 RELICENSE/natano.md                                |   15 +
 RELICENSE/olafmandel.md                            |   13 +
 RELICENSE/pijyoi.md                                |   13 +
 RELICENSE/ptroja.md                                |   14 +
 RELICENSE/reunanen.md                              |   15 +
 RELICENSE/reza-ebrahimi.md                         |   15 +
 RELICENSE/rikvdh.md                                |   15 +
 RELICENSE/rlenferink.md                            |   15 +
 RELICENSE/roalz.md                                 |   13 +
 RELICENSE/rodgert.md                               |   17 +
 RELICENSE/rotty.md                                 |   16 +
 RELICENSE/sabae.md                                 |   15 +
 RELICENSE/scemama.md                               |   15 +
 RELICENSE/sheremetyev.md                           |   13 +
 RELICENSE/shripchenko.md                           |   15 +
 RELICENSE/sigiesec.md                              |   17 +
 RELICENSE/simias.md                                |   15 +
 RELICENSE/soulik.md                                |   15 +
 RELICENSE/swansontec.md                            |   15 +
 RELICENSE/t-b.md                                   |   15 +
 RELICENSE/tSed.md                                  |   15 +
 RELICENSE/tabe.md                                  |   15 +
 RELICENSE/tailhook.md                              |   16 +
 RELICENSE/taotetek.md                              |   13 +
 .../templates/relicense-template-mplv2-any-osi.txt |   15 +
 .../relicense-template-mplv2-share-alike-osi.txt   |   15 +
 RELICENSE/templates/relicense-template-mplv2.txt   |   13 +
 RELICENSE/thompsa.md                               |   15 +
 RELICENSE/torehalvorsen.md                         |   15 +
 RELICENSE/twhittock.md                             |   15 +
 RELICENSE/ulikoehler.md                            |   16 +
 RELICENSE/vyskocilm.md                             |    7 +
 RELICENSE/willstrang.md                            |   15 +
 RELICENSE/xaqq.md                                  |   13 +
 RELICENSE/yuvallanger.md                           |   15 +
 acinclude.m4                                       | 1171 ++++++++++
 appveyor.yml                                       |  246 +++
 autogen.sh                                         |   49 +
 branding.bmp                                       |  Bin 0 -> 25818 bytes
 builds/Makefile.am                                 |   34 +
 builds/README                                      |   14 +
 builds/android/Dockerfile                          |   22 +
 builds/android/README.md                           |   83 +
 builds/android/android_build_helper.sh             |  316 +++
 builds/android/build.sh                            |   70 +
 builds/android/ci_build.sh                         |   30 +
 builds/cmake/Modules/ClangFormat.cmake             |   41 +
 builds/cmake/Modules/FindAsciiDoc.cmake            |   26 +
 builds/cmake/Modules/FindSodium.cmake              |   40 +
 builds/cmake/Modules/TestZMQVersion.cmake          |    8 +
 builds/cmake/Modules/ZMQSourceRunChecks.cmake      |  313 +++
 builds/cmake/Modules/ZMQSupportMacros.cmake        |    5 +
 builds/cmake/NSIS.template32.in                    |  952 ++++++++
 builds/cmake/NSIS.template64.in                    |  960 ++++++++
 builds/cmake/ZeroMQConfig.cmake.in                 |   25 +
 builds/cmake/ci_build.sh                           |  110 +
 builds/cmake/clang-format-check.sh.in              |   14 +
 builds/cmake/platform.hpp.in                       |  109 +
 builds/coverage/ci_build.sh                        |   32 +
 builds/cygwin/Makefile.cygwin                      |   48 +
 builds/deprecated-msvc/.gitignore                  |  256 +++
 builds/deprecated-msvc/Makefile.am                 |   94 +
 builds/deprecated-msvc/build/build.bat             |   33 +
 builds/deprecated-msvc/build/buildall.bat          |   16 +
 builds/deprecated-msvc/build/buildbase.bat         |   73 +
 builds/deprecated-msvc/errno.cpp                   |   32 +
 builds/deprecated-msvc/errno.hpp                   |   56 +
 builds/deprecated-msvc/platform.hpp                |   14 +
 builds/deprecated-msvc/properties/Common.props     |   21 +
 builds/deprecated-msvc/properties/DLL.props        |   16 +
 builds/deprecated-msvc/properties/Debug.props      |   29 +
 builds/deprecated-msvc/properties/DebugDEXE.props  |   21 +
 builds/deprecated-msvc/properties/DebugDLL.props   |   20 +
 builds/deprecated-msvc/properties/DebugLEXE.props  |   20 +
 builds/deprecated-msvc/properties/DebugLIB.props   |   21 +
 builds/deprecated-msvc/properties/DebugLTCG.props  |   20 +
 builds/deprecated-msvc/properties/DebugSEXE.props  |   21 +
 builds/deprecated-msvc/properties/EXE.props        |   17 +
 builds/deprecated-msvc/properties/LIB.props        |   16 +
 builds/deprecated-msvc/properties/LTCG.props       |   13 +
 builds/deprecated-msvc/properties/Link.props       |   21 +
 builds/deprecated-msvc/properties/Messages.props   |   15 +
 builds/deprecated-msvc/properties/Output.props     |   30 +
 builds/deprecated-msvc/properties/Release.props    |   41 +
 .../deprecated-msvc/properties/ReleaseDEXE.props   |   20 +
 builds/deprecated-msvc/properties/ReleaseDLL.props |   19 +
 .../deprecated-msvc/properties/ReleaseLEXE.props   |   20 +
 builds/deprecated-msvc/properties/ReleaseLIB.props |   19 +
 .../deprecated-msvc/properties/ReleaseLTCG.props   |   19 +
 .../deprecated-msvc/properties/ReleaseSEXE.props   |   20 +
 builds/deprecated-msvc/properties/Win32.props      |   20 +
 builds/deprecated-msvc/properties/x64.props        |   23 +
 builds/deprecated-msvc/readme.txt                  |   27 +
 builds/deprecated-msvc/resource.h                  |   14 +
 builds/deprecated-msvc/resource.rc                 |  Bin 0 -> 4650 bytes
 .../vs2008/inproc_lat/inproc_lat.vcproj            |   52 +
 .../vs2008/inproc_thr/inproc_thr.vcproj            |   52 +
 builds/deprecated-msvc/vs2008/libzmq.sln           |   95 +
 builds/deprecated-msvc/vs2008/libzmq/libzmq.vcproj |  338 +++
 .../vs2008/local_lat/local_lat.vcproj              |   52 +
 .../vs2008/local_thr/local_thr.vcproj              |   52 +
 .../vs2008/remote_lat/remote_lat.vcproj            |   52 +
 .../vs2008/remote_thr/remote_thr.vcproj            |   52 +
 .../vs2010/inproc_lat/inproc_lat.props             |   49 +
 .../vs2010/inproc_lat/inproc_lat.vcxproj           |   82 +
 .../vs2010/inproc_thr/inproc_thr.props             |   49 +
 .../vs2010/inproc_thr/inproc_thr.vcxproj           |   82 +
 .../deprecated-msvc/vs2010/libsodium.import.props  |   52 +
 builds/deprecated-msvc/vs2010/libsodium.import.xml |   17 +
 builds/deprecated-msvc/vs2010/libzmq.import.props  |   64 +
 builds/deprecated-msvc/vs2010/libzmq.import.xml    |   49 +
 builds/deprecated-msvc/vs2010/libzmq.sln           |  206 ++
 builds/deprecated-msvc/vs2010/libzmq/libzmq.props  |   76 +
 .../deprecated-msvc/vs2010/libzmq/libzmq.vcxproj   |  289 +++
 .../vs2010/libzmq/libzmq.vcxproj.filters           |  627 ++++++
 builds/deprecated-msvc/vs2010/libzmq/libzmq.xml    |   40 +
 .../vs2010/local_lat/local_lat.props               |   49 +
 .../vs2010/local_lat/local_lat.vcxproj             |   82 +
 .../vs2010/local_thr/local_thr.props               |   49 +
 .../vs2010/local_thr/local_thr.vcxproj             |   82 +
 .../vs2010/remote_lat/remote_lat.props             |   49 +
 .../vs2010/remote_lat/remote_lat.vcxproj           |   82 +
 .../vs2010/remote_thr/remote_thr.props             |   49 +
 .../vs2010/remote_thr/remote_thr.vcxproj           |   82 +
 .../vs2012/inproc_lat/inproc_lat.props             |   49 +
 .../vs2012/inproc_lat/inproc_lat.vcxproj           |   82 +
 .../vs2012/inproc_thr/inproc_thr.props             |   49 +
 .../vs2012/inproc_thr/inproc_thr.vcxproj           |   82 +
 .../deprecated-msvc/vs2012/libsodium.import.props  |   52 +
 builds/deprecated-msvc/vs2012/libsodium.import.xml |   17 +
 builds/deprecated-msvc/vs2012/libzmq.import.props  |   64 +
 builds/deprecated-msvc/vs2012/libzmq.import.xml    |   49 +
 builds/deprecated-msvc/vs2012/libzmq.sln           |  206 ++
 builds/deprecated-msvc/vs2012/libzmq/libzmq.props  |   76 +
 .../deprecated-msvc/vs2012/libzmq/libzmq.vcxproj   |  289 +++
 .../vs2012/libzmq/libzmq.vcxproj.filters           |  627 ++++++
 builds/deprecated-msvc/vs2012/libzmq/libzmq.xml    |   40 +
 .../vs2012/local_lat/local_lat.props               |   49 +
 .../vs2012/local_lat/local_lat.vcxproj             |   82 +
 .../vs2012/local_thr/local_thr.props               |   49 +
 .../vs2012/local_thr/local_thr.vcxproj             |   82 +
 .../vs2012/remote_lat/remote_lat.props             |   49 +
 .../vs2012/remote_lat/remote_lat.vcxproj           |   82 +
 .../vs2012/remote_thr/remote_thr.props             |   49 +
 .../vs2012/remote_thr/remote_thr.vcxproj           |   82 +
 .../vs2013/inproc_lat/inproc_lat.props             |   49 +
 .../vs2013/inproc_lat/inproc_lat.vcxproj           |   82 +
 .../vs2013/inproc_thr/inproc_thr.props             |   49 +
 .../vs2013/inproc_thr/inproc_thr.vcxproj           |   82 +
 .../deprecated-msvc/vs2013/libsodium.import.props  |   52 +
 builds/deprecated-msvc/vs2013/libsodium.import.xml |   17 +
 builds/deprecated-msvc/vs2013/libzmq.import.props  |   64 +
 builds/deprecated-msvc/vs2013/libzmq.import.xml    |   49 +
 builds/deprecated-msvc/vs2013/libzmq.sln           |  208 ++
 builds/deprecated-msvc/vs2013/libzmq/libzmq.props  |   76 +
 .../deprecated-msvc/vs2013/libzmq/libzmq.vcxproj   |  289 +++
 .../vs2013/libzmq/libzmq.vcxproj.filters           |  627 ++++++
 builds/deprecated-msvc/vs2013/libzmq/libzmq.xml    |   40 +
 .../vs2013/local_lat/local_lat.props               |   49 +
 .../vs2013/local_lat/local_lat.vcxproj             |   82 +
 .../vs2013/local_thr/local_thr.props               |   49 +
 .../vs2013/local_thr/local_thr.vcxproj             |   82 +
 .../vs2013/remote_lat/remote_lat.props             |   49 +
 .../vs2013/remote_lat/remote_lat.vcxproj           |   82 +
 .../vs2013/remote_thr/remote_thr.props             |   49 +
 .../vs2013/remote_thr/remote_thr.vcxproj           |   82 +
 .../vs2015/inproc_lat/inproc_lat.props             |   49 +
 .../vs2015/inproc_lat/inproc_lat.vcxproj           |   82 +
 .../vs2015/inproc_thr/inproc_thr.props             |   49 +
 .../vs2015/inproc_thr/inproc_thr.vcxproj           |   82 +
 .../deprecated-msvc/vs2015/libsodium.import.props  |   52 +
 builds/deprecated-msvc/vs2015/libsodium.import.xml |   17 +
 builds/deprecated-msvc/vs2015/libzmq.import.props  |   64 +
 builds/deprecated-msvc/vs2015/libzmq.import.xml    |   49 +
 builds/deprecated-msvc/vs2015/libzmq.sln           |  208 ++
 builds/deprecated-msvc/vs2015/libzmq/libzmq.props  |   76 +
 .../deprecated-msvc/vs2015/libzmq/libzmq.vcxproj   |  291 +++
 .../vs2015/libzmq/libzmq.vcxproj.filters           |  627 ++++++
 builds/deprecated-msvc/vs2015/libzmq/libzmq.xml    |   40 +
 .../vs2015/local_lat/local_lat.props               |   49 +
 .../vs2015/local_lat/local_lat.vcxproj             |   82 +
 .../vs2015/local_thr/local_thr.props               |   49 +
 .../vs2015/local_thr/local_thr.vcxproj             |   82 +
 .../vs2015/remote_lat/remote_lat.props             |   49 +
 .../vs2015/remote_lat/remote_lat.vcxproj           |   82 +
 .../vs2015/remote_thr/remote_thr.props             |   49 +
 .../vs2015/remote_thr/remote_thr.vcxproj           |   82 +
 builds/deprecated-msvc/vs2015_xp/libzmq.vcxproj    |  258 +++
 builds/deprecated-msvc/vs2015_xp/platform.hpp      |   15 +
 .../vs2015_xp/test_zmq/test_multithread.cpp        |  229 ++
 .../vs2015_xp/test_zmq/test_zmq.vcxproj            |  155 ++
 .../vs2017/inproc_lat/inproc_lat.props             |   49 +
 .../vs2017/inproc_lat/inproc_lat.vcxproj           |   82 +
 .../vs2017/inproc_thr/inproc_thr.props             |   49 +
 .../vs2017/inproc_thr/inproc_thr.vcxproj           |   82 +
 .../deprecated-msvc/vs2017/libsodium.import.props  |   52 +
 builds/deprecated-msvc/vs2017/libsodium.import.xml |   17 +
 builds/deprecated-msvc/vs2017/libzmq.import.props  |   64 +
 builds/deprecated-msvc/vs2017/libzmq.import.xml    |   49 +
 builds/deprecated-msvc/vs2017/libzmq.sln           |  208 ++
 builds/deprecated-msvc/vs2017/libzmq/libzmq.props  |   76 +
 .../deprecated-msvc/vs2017/libzmq/libzmq.vcxproj   |  289 +++
 .../vs2017/libzmq/libzmq.vcxproj.filters           |  627 ++++++
 builds/deprecated-msvc/vs2017/libzmq/libzmq.xml    |   40 +
 .../vs2017/local_lat/local_lat.props               |   49 +
 .../vs2017/local_lat/local_lat.vcxproj             |   82 +
 .../vs2017/local_thr/local_thr.props               |   49 +
 .../vs2017/local_thr/local_thr.vcxproj             |   82 +
 .../vs2017/remote_lat/remote_lat.props             |   49 +
 .../vs2017/remote_lat/remote_lat.vcxproj           |   82 +
 .../vs2017/remote_thr/remote_thr.props             |   49 +
 .../vs2017/remote_thr/remote_thr.vcxproj           |   82 +
 builds/gyp/.gitignore                              |    5 +
 builds/gyp/build.bat                               |    4 +
 builds/gyp/platform.hpp                            |   80 +
 builds/gyp/project-tests.gsl                       |   19 +
 builds/gyp/project-tests.gypi                      |  895 ++++++++
 builds/gyp/project-tests.xml                       |   83 +
 builds/gyp/project.gyp                             |  295 +++
 builds/mingw32/Makefile.mingw32                    |   49 +
 builds/mingw32/platform.hpp                        |   43 +
 builds/nuget/libzmq.autopkg                        |   52 +
 builds/nuget/readme.nuget                          |   20 +
 builds/openwrt/Makefile                            |   70 +
 builds/valgrind/ci_build.sh                        |   30 +
 builds/valgrind/valgrind.supp                      |   22 +
 builds/valgrind/vg                                 |    1 +
 builds/vxworks/platform.hpp                        |  306 +++
 builds/zos/README.md                               |  463 ++++
 builds/zos/cxxall                                  |   62 +
 builds/zos/makeclean                               |   36 +
 builds/zos/makelibzmq                              |   54 +
 builds/zos/maketests                               |  102 +
 builds/zos/platform.hpp                            |  300 +++
 builds/zos/runtests                                |  188 ++
 builds/zos/test_fork.cpp                           |   95 +
 builds/zos/zc++                                    |   42 +
 ci_build.sh                                        |   74 +
 ci_deploy.sh                                       |   34 +
 configure.ac                                       |  860 ++++++++
 doc/Makefile.am                                    |   65 +
 doc/asciidoc.conf                                  |   56 +
 doc/zmq.txt                                        |  279 +++
 doc/zmq_atomic_counter_dec.txt                     |   62 +
 doc/zmq_atomic_counter_destroy.txt                 |   62 +
 doc/zmq_atomic_counter_inc.txt                     |   61 +
 doc/zmq_atomic_counter_new.txt                     |   62 +
 doc/zmq_atomic_counter_set.txt                     |   61 +
 doc/zmq_atomic_counter_value.txt                   |   62 +
 doc/zmq_bind.txt                                   |  103 +
 doc/zmq_close.txt                                  |   59 +
 doc/zmq_connect.txt                                |  108 +
 doc/zmq_ctx_destroy.txt                            |   67 +
 doc/zmq_ctx_get.txt                                |  111 +
 doc/zmq_ctx_new.txt                                |   50 +
 doc/zmq_ctx_set.txt                                |  197 ++
 doc/zmq_ctx_shutdown.txt                           |   52 +
 doc/zmq_ctx_term.txt                               |   68 +
 doc/zmq_curve.txt                                  |   92 +
 doc/zmq_curve_keypair.txt                          |   56 +
 doc/zmq_curve_public.txt                           |   62 +
 doc/zmq_disconnect.txt                             |   75 +
 doc/zmq_errno.txt                                  |   50 +
 doc/zmq_getsockopt.txt                             |  967 ++++++++
 doc/zmq_gssapi.txt                                 |   78 +
 doc/zmq_has.txt                                    |   44 +
 doc/zmq_init.txt                                   |   52 +
 doc/zmq_inproc.txt                                 |   88 +
 doc/zmq_ipc.txt                                    |  106 +
 doc/zmq_msg_close.txt                              |   56 +
 doc/zmq_msg_copy.txt                               |   72 +
 doc/zmq_msg_data.txt                               |   48 +
 doc/zmq_msg_get.txt                                |   83 +
 doc/zmq_msg_gets.txt                               |   83 +
 doc/zmq_msg_init.txt                               |   64 +
 doc/zmq_msg_init_data.txt                          |   89 +
 doc/zmq_msg_init_size.txt                          |   58 +
 doc/zmq_msg_more.txt                               |   65 +
 doc/zmq_msg_move.txt                               |   52 +
 doc/zmq_msg_recv.txt                               |  124 ++
 doc/zmq_msg_routing_id.txt                         |   61 +
 doc/zmq_msg_send.txt                               |  127 ++
 doc/zmq_msg_set.txt                                |   46 +
 doc/zmq_msg_set_routing_id.txt                     |   46 +
 doc/zmq_msg_size.txt                               |   48 +
 doc/zmq_null.txt                                   |   27 +
 doc/zmq_pgm.txt                                    |  164 ++
 doc/zmq_plain.txt                                  |   37 +
 doc/zmq_poll.txt                                   |  135 ++
 doc/zmq_poller.txt                                 |  269 +++
 doc/zmq_poller_add.txt                             |    1 +
 doc/zmq_poller_add_fd.txt                          |    1 +
 doc/zmq_poller_destroy.txt                         |    1 +
 doc/zmq_poller_modify.txt                          |    1 +
 doc/zmq_poller_modify_fd.txt                       |    1 +
 doc/zmq_poller_new.txt                             |    1 +
 doc/zmq_poller_remove.txt                          |    1 +
 doc/zmq_poller_remove_fd.txt                       |    1 +
 doc/zmq_poller_wait_all.txt                        |    1 +
 doc/zmq_proxy.txt                                  |   99 +
 doc/zmq_proxy_steerable.txt                        |  111 +
 doc/zmq_recv.txt                                   |   91 +
 doc/zmq_recvmsg.txt                                |  121 +
 doc/zmq_send.txt                                   |  104 +
 doc/zmq_send_const.txt                             |  103 +
 doc/zmq_sendmsg.txt                                |  121 +
 doc/zmq_setsockopt.txt                             | 1375 ++++++++++++
 doc/zmq_socket.txt                                 |  616 ++++++
 doc/zmq_socket_monitor.txt                         |  294 +++
 doc/zmq_strerror.txt                               |   56 +
 doc/zmq_tcp.txt                                    |  142 ++
 doc/zmq_term.txt                                   |   66 +
 doc/zmq_timers.txt                                 |  162 ++
 doc/zmq_tipc.txt                                   |   83 +
 doc/zmq_udp.txt                                    |  116 +
 doc/zmq_unbind.txt                                 |   90 +
 doc/zmq_version.txt                                |   54 +
 doc/zmq_vmci.txt                                   |   97 +
 doc/zmq_z85_decode.txt                             |   51 +
 doc/zmq_z85_encode.txt                             |   58 +
 external/unity/license.txt                         |   21 +
 external/unity/unity.c                             | 1570 +++++++++++++
 external/unity/unity.h                             |  503 +++++
 external/unity/unity_internals.h                   |  872 ++++++++
 external/unity/version.txt                         |    1 +
 external/wepoll/README.md                          |  202 ++
 external/wepoll/license.txt                        |   28 +
 external/wepoll/version.txt                        |    1 +
 external/wepoll/wepoll.c                           | 2170 ++++++++++++++++++
 external/wepoll/wepoll.h                           |  117 +
 include/zmq.h                                      |  743 +++++++
 include/zmq_utils.h                                |   50 +
 installer.ico                                      |  Bin 0 -> 2842 bytes
 m4/ax_check_compile_flag.m4                        |   74 +
 m4/ax_code_coverage.m4                             |  264 +++
 m4/ax_cxx_compile_stdcxx.m4                        |  562 +++++
 m4/ax_cxx_compile_stdcxx_11.m4                     |   40 +
 m4/ax_valgrind_check.m4                            |  233 ++
 packaging/README                                   |    4 +
 packaging/debian/changelog                         |    5 +
 packaging/debian/compat                            |    1 +
 packaging/debian/control                           |   64 +
 packaging/debian/copyright                         |  116 +
 packaging/debian/libzmq3-dev.install               |    4 +
 packaging/debian/libzmq3-dev.manpages              |    2 +
 packaging/debian/libzmq5.docs                      |    2 +
 packaging/debian/libzmq5.install                   |    1 +
 packaging/debian/rules                             |   67 +
 packaging/debian/source/format                     |    1 +
 packaging/debian/zeromq.dsc.obs                    |   15 +
 packaging/nuget/package.bat                        |   14 +
 packaging/nuget/package.config                     |    6 +
 packaging/nuget/package.gsl                        |  264 +++
 packaging/nuget/package.nuspec                     |   98 +
 packaging/nuget/package.targets                    |  129 ++
 packaging/nuget/package.xml                        |   22 +
 packaging/obs/_service                             |   98 +
 packaging/redhat/zeromq.spec                       |  234 ++
 perf/inproc_lat.cpp                                |  238 ++
 perf/inproc_thr.cpp                                |  247 +++
 perf/local_lat.cpp                                 |  116 +
 perf/local_thr.cpp                                 |  161 ++
 perf/remote_lat.cpp                                |  129 ++
 perf/remote_thr.cpp                                |  138 ++
 src/address.cpp                                    |  110 +
 src/address.hpp                                    |  102 +
 src/array.hpp                                      |  135 ++
 src/atomic_counter.hpp                             |  239 ++
 src/atomic_ptr.hpp                                 |  307 +++
 src/blob.hpp                                       |  204 ++
 src/client.cpp                                     |  113 +
 src/client.hpp                                     |   74 +
 src/clock.cpp                                      |  265 +++
 src/clock.hpp                                      |   80 +
 src/command.hpp                                    |  204 ++
 src/condition_variable.hpp                         |  353 +++
 src/config.hpp                                     |   96 +
 src/ctx.cpp                                        |  684 ++++++
 src/ctx.hpp                                        |  265 +++
 src/curve_client.cpp                               |  291 +++
 src/curve_client.hpp                               |   84 +
 src/curve_client_tools.hpp                         |  307 +++
 src/curve_mechanism_base.cpp                       |  179 ++
 src/curve_mechanism_base.hpp                       |   79 +
 src/curve_server.cpp                               |  493 +++++
 src/curve_server.hpp                               |   91 +
 src/dbuffer.hpp                                    |  141 ++
 src/dealer.cpp                                     |  144 ++
 src/dealer.hpp                                     |   84 +
 src/decoder.hpp                                    |  194 ++
 src/decoder_allocators.cpp                         |  155 ++
 src/decoder_allocators.hpp                         |  133 ++
 src/devpoll.cpp                                    |  203 ++
 src/devpoll.hpp                                    |  115 +
 src/dgram.cpp                                      |  172 ++
 src/dgram.hpp                                      |   75 +
 src/dish.cpp                                       |  351 +++
 src/dish.hpp                                       |  123 ++
 src/dist.cpp                                       |  232 ++
 src/dist.hpp                                       |  115 +
 src/encoder.hpp                                    |  181 ++
 src/epoll.cpp                                      |  218 ++
 src/epoll.hpp                                      |  118 +
 src/err.cpp                                        |  452 ++++
 src/err.hpp                                        |  181 ++
 src/fd.hpp                                         |   67 +
 src/fq.cpp                                         |  150 ++
 src/fq.hpp                                         |   85 +
 src/gather.cpp                                     |   91 +
 src/gather.hpp                                     |   67 +
 src/generic_mtrie.hpp                              |  127 ++
 src/generic_mtrie_impl.hpp                         |  475 ++++
 src/gssapi_client.cpp                              |  236 ++
 src/gssapi_client.hpp                              |   92 +
 src/gssapi_mechanism_base.cpp                      |  402 ++++
 src/gssapi_mechanism_base.hpp                      |  132 ++
 src/gssapi_server.cpp                              |  248 +++
 src/gssapi_server.hpp                              |   92 +
 src/i_decoder.hpp                                  |   60 +
 src/i_encoder.hpp                                  |   57 +
 src/i_engine.hpp                                   |   68 +
 src/i_mailbox.hpp                                  |   57 +
 src/i_poll_events.hpp                              |   53 +
 src/io_object.cpp                                  |  116 +
 src/io_object.hpp                                  |   84 +
 src/io_thread.cpp                                  |  118 +
 src/io_thread.hpp                                  |   93 +
 src/ip.cpp                                         |  680 ++++++
 src/ip.hpp                                         |   76 +
 src/ip_resolver.cpp                                |  720 ++++++
 src/ip_resolver.hpp                                |  114 +
 src/ipc_address.cpp                                |  108 +
 src/ipc_address.hpp                                |   69 +
 src/ipc_connecter.cpp                              |  280 +++
 src/ipc_connecter.hpp                              |  136 ++
 src/ipc_listener.cpp                               |  430 ++++
 src/ipc_listener.hpp                               |  119 +
 src/kqueue.cpp                                     |  230 ++
 src/kqueue.hpp                                     |  110 +
 src/lb.cpp                                         |  165 ++
 src/lb.hpp                                         |   86 +
 src/libzmq.pc.cmake.in                             |   11 +
 src/libzmq.pc.in                                   |   11 +
 src/libzmq.vers                                    |    4 +
 src/likely.hpp                                     |   42 +
 src/macros.hpp                                     |   21 +
 src/mailbox.cpp                                    |  106 +
 src/mailbox.hpp                                    |   88 +
 src/mailbox_safe.cpp                               |  118 +
 src/mailbox_safe.hpp                               |   90 +
 src/mechanism.cpp                                  |  360 +++
 src/mechanism.hpp                                  |  148 ++
 src/mechanism_base.cpp                             |   82 +
 src/mechanism_base.hpp                             |   56 +
 src/metadata.cpp                                   |   58 +
 src/metadata.hpp                                   |   69 +
 src/msg.cpp                                        |  606 +++++
 src/msg.hpp                                        |  305 +++
 src/mtrie.cpp                                      |   37 +
 src/mtrie.hpp                                      |   52 +
 src/mutex.hpp                                      |  216 ++
 src/norm_engine.cpp                                |  717 ++++++
 src/norm_engine.hpp                                |  189 ++
 src/null_mechanism.cpp                             |  230 ++
 src/null_mechanism.hpp                             |   73 +
 src/object.cpp                                     |  478 ++++
 src/object.hpp                                     |  149 ++
 src/options.cpp                                    | 1175 ++++++++++
 src/options.hpp                                    |  308 +++
 src/own.cpp                                        |  212 ++
 src/own.hpp                                        |  148 ++
 src/pair.cpp                                       |  138 ++
 src/pair.hpp                                       |   72 +
 src/pgm_receiver.cpp                               |  314 +++
 src/pgm_receiver.hpp                               |  143 ++
 src/pgm_sender.cpp                                 |  256 +++
 src/pgm_sender.hpp                                 |  122 +
 src/pgm_socket.cpp                                 |  687 ++++++
 src/pgm_socket.hpp                                 |  128 ++
 src/pipe.cpp                                       |  555 +++++
 src/pipe.hpp                                       |  255 +++
 src/plain_client.cpp                               |  224 ++
 src/plain_client.hpp                               |   73 +
 src/plain_common.hpp                               |   53 +
 src/plain_server.cpp                               |  253 +++
 src/plain_server.hpp                               |   66 +
 src/poll.cpp                                       |  204 ++
 src/poll.hpp                                       |  111 +
 src/poller.hpp                                     |   68 +
 src/poller_base.cpp                                |  140 ++
 src/poller_base.hpp                                |  196 ++
 src/polling_util.cpp                               |   51 +
 src/polling_util.hpp                               |  181 ++
 src/pollset.cpp                                    |  254 +++
 src/pollset.hpp                                    |  117 +
 src/precompiled.cpp                                |   30 +
 src/precompiled.hpp                                |  134 ++
 src/proxy.cpp                                      |  646 ++++++
 src/proxy.hpp                                      |   42 +
 src/pub.cpp                                        |   69 +
 src/pub.hpp                                        |   61 +
 src/pull.cpp                                       |   76 +
 src/pull.hpp                                       |   69 +
 src/push.cpp                                       |   80 +
 src/push.hpp                                       |   69 +
 src/radio.cpp                                      |  286 +++
 src/radio.hpp                                      |  115 +
 src/random.cpp                                     |  170 ++
 src/random.hpp                                     |   51 +
 src/raw_decoder.cpp                                |   74 +
 src/raw_decoder.hpp                                |   69 +
 src/raw_encoder.cpp                                |   50 +
 src/raw_encoder.hpp                                |   57 +
 src/reaper.cpp                                     |  149 ++
 src/reaper.hpp                                     |   90 +
 src/rep.cpp                                        |  133 ++
 src/rep.hpp                                        |   68 +
 src/req.cpp                                        |  333 +++
 src/req.hpp                                        |  117 +
 src/router.cpp                                     |  523 +++++
 src/router.hpp                                     |  131 ++
 src/scatter.cpp                                    |   86 +
 src/scatter.hpp                                    |   69 +
 src/select.cpp                                     |  630 ++++++
 src/select.hpp                                     |  172 ++
 src/server.cpp                                     |  181 ++
 src/server.hpp                                     |   89 +
 src/session_base.cpp                               |  764 +++++++
 src/session_base.hpp                               |  197 ++
 src/signaler.cpp                                   |  413 ++++
 src/signaler.hpp                                   |   89 +
 src/socket_base.cpp                                | 1850 ++++++++++++++++
 src/socket_base.hpp                                |  367 ++++
 src/socket_poller.cpp                              |  686 ++++++
 src/socket_poller.hpp                              |  150 ++
 src/socks.cpp                                      |  290 +++
 src/socks.hpp                                      |  133 ++
 src/socks_connecter.cpp                            |  476 ++++
 src/socks_connecter.hpp                            |  171 ++
 src/stdint.hpp                                     |   80 +
 src/stream.cpp                                     |  291 +++
 src/stream.hpp                                     |   95 +
 src/stream_engine.cpp                              | 1248 +++++++++++
 src/stream_engine.hpp                              |  248 +++
 src/sub.cpp                                        |   84 +
 src/sub.hpp                                        |   59 +
 src/tcp.cpp                                        |  383 ++++
 src/tcp.hpp                                        |   73 +
 src/tcp_address.cpp                                |  323 +++
 src/tcp_address.hpp                                |   99 +
 src/tcp_connecter.cpp                              |  446 ++++
 src/tcp_connecter.hpp                              |  139 ++
 src/tcp_listener.cpp                               |  355 +++
 src/tcp_listener.hpp                               |   95 +
 src/thread.cpp                                     |  329 +++
 src/thread.hpp                                     |  130 ++
 src/timers.cpp                                     |  184 ++
 src/timers.hpp                                     |  109 +
 src/tipc_address.cpp                               |  175 ++
 src/tipc_address.hpp                               |   80 +
 src/tipc_connecter.cpp                             |  283 +++
 src/tipc_connecter.hpp                             |  137 ++
 src/tipc_listener.cpp                              |  235 ++
 src/tipc_listener.hpp                              |  103 +
 src/trie.cpp                                       |  323 +++
 src/trie.hpp                                       |   85 +
 src/tweetnacl.c                                    |  993 +++++++++
 src/tweetnacl.h                                    |   80 +
 src/udp_address.cpp                                |  208 ++
 src/udp_address.hpp                                |   73 +
 src/udp_engine.cpp                                 |  560 +++++
 src/udp_engine.hpp                                 |   72 +
 src/v1_decoder.cpp                                 |  154 ++
 src/v1_decoder.hpp                                 |   63 +
 src/v1_encoder.cpp                                 |   77 +
 src/v1_encoder.hpp                                 |   56 +
 src/v2_decoder.cpp                                 |  167 ++
 src/v2_decoder.hpp                                 |   71 +
 src/v2_encoder.cpp                                 |   80 +
 src/v2_encoder.hpp                                 |   56 +
 src/v2_protocol.hpp                                |   49 +
 src/version.rc.in                                  |   93 +
 src/vmci.cpp                                       |  100 +
 src/vmci.hpp                                       |   66 +
 src/vmci_address.cpp                               |  167 ++
 src/vmci_address.hpp                               |   71 +
 src/vmci_connecter.cpp                             |  300 +++
 src/vmci_connecter.hpp                             |  137 ++
 src/vmci_listener.cpp                              |  266 +++
 src/vmci_listener.hpp                              |   98 +
 src/windows.hpp                                    |   97 +
 src/wire.hpp                                       |  103 +
 src/xpub.cpp                                       |  362 +++
 src/xpub.hpp                                       |  122 +
 src/xsub.cpp                                       |  261 +++
 src/xsub.hpp                                       |   97 +
 src/ypipe.hpp                                      |  211 ++
 src/ypipe_base.hpp                                 |   54 +
 src/ypipe_conflate.hpp                             |  119 +
 src/yqueue.hpp                                     |  215 ++
 src/zap_client.cpp                                 |  314 +++
 src/zap_client.hpp                                 |  101 +
 src/zmq.cpp                                        | 1443 ++++++++++++
 src/zmq_draft.h                                    |  172 ++
 src/zmq_utils.cpp                                  |  321 +++
 tests/CMakeLists.txt                               |  248 +++
 tests/README.md                                    |   45 +
 tests/test_abstract_ipc.cpp                        |   67 +
 tests/test_address_tipc.cpp                        |  150 ++
 tests/test_ancillaries.cpp                         |   71 +
 tests/test_app_meta.cpp                            |  167 ++
 tests/test_atomics.cpp                             |   48 +
 tests/test_base85.cpp                              |  203 ++
 tests/test_bind_after_connect_tcp.cpp              |   73 +
 tests/test_bind_src_address.cpp                    |   66 +
 tests/test_capabilities.cpp                        |   99 +
 tests/test_client_server.cpp                       |  145 ++
 tests/test_conflate.cpp                            |   90 +
 tests/test_connect_delay_tipc.cpp                  |  232 ++
 tests/test_connect_resolve.cpp                     |  104 +
 tests/test_connect_rid.cpp                         |  258 +++
 tests/test_ctx_destroy.cpp                         |  213 ++
 tests/test_ctx_options.cpp                         |  262 +++
 tests/test_dgram.cpp                               |   99 +
 tests/test_diffserv.cpp                            |   84 +
 tests/test_disconnect_inproc.cpp                   |  151 ++
 tests/test_filter_ipc.cpp                          |  223 ++
 tests/test_fork.cpp                                |   98 +
 tests/test_getsockopt_memset.cpp                   |   64 +
 tests/test_heartbeats.cpp                          |  451 ++++
 tests/test_hwm.cpp                                 |  319 +++
 tests/test_hwm_pubsub.cpp                          |  277 +++
 tests/test_immediate.cpp                           |  231 ++
 tests/test_inproc_connect.cpp                      |  363 +++
 tests/test_invalid_rep.cpp                         |   97 +
 tests/test_iov.cpp                                 |  156 ++
 tests/test_ipc_wildcard.cpp                        |   65 +
 tests/test_issue_566.cpp                           |   99 +
 tests/test_last_endpoint.cpp                       |   75 +
 tests/test_many_sockets.cpp                        |  102 +
 tests/test_metadata.cpp                            |  130 ++
 tests/test_mock_pub_sub.cpp                        |  226 ++
 tests/test_monitor.cpp                             |  116 +
 tests/test_msg_ffn.cpp                             |  146 ++
 tests/test_msg_flags.cpp                           |  126 ++
 tests/test_pair_inproc.cpp                         |   81 +
 tests/test_pair_ipc.cpp                            |   60 +
 tests/test_pair_tcp.cpp                            |  101 +
 tests/test_pair_tipc.cpp                           |   67 +
 tests/test_pair_vmci.cpp                           |   68 +
 tests/test_poller.cpp                              |  662 ++++++
 tests/test_probe_router.cpp                        |  121 +
 tests/test_proxy.cpp                               |  503 +++++
 tests/test_proxy_hwm.cpp                           |  423 ++++
 tests/test_proxy_single_socket.cpp                 |  119 +
 tests/test_proxy_terminate.cpp                     |  131 ++
 tests/test_pub_invert_matching.cpp                 |  126 ++
 tests/test_radio_dish.cpp                          |  527 +++++
 tests/test_rebind_ipc.cpp                          |   84 +
 tests/test_reconnect_ivl.cpp                       |  122 +
 tests/test_req_correlate.cpp                       |  132 ++
 tests/test_req_relaxed.cpp                         |  220 ++
 tests/test_reqrep_device.cpp                       |  153 ++
 tests/test_reqrep_device_tipc.cpp                  |  151 ++
 tests/test_reqrep_inproc.cpp                       |   60 +
 tests/test_reqrep_ipc.cpp                          |  112 +
 tests/test_reqrep_tcp.cpp                          |  226 ++
 tests/test_reqrep_tipc.cpp                         |   66 +
 tests/test_reqrep_vmci.cpp                         |   68 +
 tests/test_router_handover.cpp                     |  171 ++
 tests/test_router_mandatory.cpp                    |  245 +++
 tests/test_router_mandatory_hwm.cpp                |  128 ++
 tests/test_router_mandatory_tipc.cpp               |   76 +
 tests/test_router_notify.cpp                       |  328 +++
 tests/test_scatter_gather.cpp                      |   84 +
 tests/test_security_curve.cpp                      |  691 ++++++
 tests/test_security_gssapi.cpp                     |  367 ++++
 tests/test_security_null.cpp                       |  250 +++
 tests/test_security_plain.cpp                      |  213 ++
 tests/test_security_zap.cpp                        |  419 ++++
 tests/test_setsockopt.cpp                          |  156 ++
 tests/test_shutdown_stress.cpp                     |  100 +
 tests/test_shutdown_stress_tipc.cpp                |   98 +
 tests/test_socket_null.cpp                         |  146 ++
 tests/test_sockopt_hwm.cpp                         |  206 ++
 tests/test_sodium.cpp                              |   99 +
 tests/test_spec_dealer.cpp                         |  235 ++
 tests/test_spec_pushpull.cpp                       |  280 +++
 tests/test_spec_rep.cpp                            |  169 ++
 tests/test_spec_req.cpp                            |  268 +++
 tests/test_spec_router.cpp                         |  207 ++
 tests/test_srcfd.cpp                               |  126 ++
 tests/test_stream.cpp                              |  309 +++
 tests/test_stream_disconnect.cpp                   |  269 +++
 tests/test_stream_empty.cpp                        |   79 +
 tests/test_stream_exceeds_buffer.cpp               |  124 ++
 tests/test_stream_timeout.cpp                      |  205 ++
 tests/test_sub_forward.cpp                         |  109 +
 tests/test_sub_forward_tipc.cpp                    |  107 +
 tests/test_system.cpp                              |  106 +
 tests/test_term_endpoint.cpp                       |  191 ++
 tests/test_term_endpoint_tipc.cpp                  |  125 ++
 tests/test_thread_safe.cpp                         |  119 +
 tests/test_timeo.cpp                               |   93 +
 tests/test_timers.cpp                              |  228 ++
 tests/test_unbind_wildcard.cpp                     |  211 ++
 tests/test_use_fd.cpp                              |  289 +++
 tests/test_xpub_manual.cpp                         |  457 ++++
 tests/test_xpub_nodrop.cpp                         |  118 +
 tests/test_xpub_verbose.cpp                        |  338 +++
 tests/test_xpub_welcome_msg.cpp                    |   81 +
 tests/test_zmq_poll_fd.cpp                         |   99 +
 tests/testutil.hpp                                 |  473 ++++
 tests/testutil_security.hpp                        |  691 ++++++
 tests/testutil_unity.hpp                           |  280 +++
 tools/curve_keygen.cpp                             |   64 +
 unittests/CMakeLists.txt                           |   67 +
 unittests/unittest_ip_resolver.cpp                 |  962 ++++++++
 unittests/unittest_mtrie.cpp                       |  457 ++++
 unittests/unittest_poller.cpp                      |  276 +++
 unittests/unittest_resolver_common.hpp             |   73 +
 unittests/unittest_udp_address.cpp                 |  326 +++
 unittests/unittest_ypipe.cpp                       |   87 +
 version.sh                                         |   21 +
 837 files changed, 125683 insertions(+)
